部分文字來自TennielM的博客,已聯(lián)系轉(zhuǎn)載!
————————————————————————————
這幾天看見實驗室的師兄們在報名了知乎的機器學(xué)習(xí)比賽,因為我自己對于NLP領(lǐng)域?qū)儆趮雰弘A段,還不是初學(xué)階段,所以就跟著他們湊湊熱鬧,給他們端端水,倒倒茶,順便學(xué)習(xí)點經(jīng)驗.
話不多說,開始談?wù)勎业目捶?/p>
自從參加這些比賽開始,師兄們就告訴我,作為參賽者,不要顧及名次和獎金,一定要調(diào)節(jié)心態(tài)和自己的預(yù)期,最好的心態(tài)是把自己當(dāng)做一項公開的學(xué)術(shù)的交流和算法的研究.多數(shù)人也不是沖著拿第一名的獎金去的静陈,只是想在企業(yè)的真實數(shù)據(jù)集上演練一番,試試技術(shù)深淺巢株,提高提高自身姿勢水平聊疲。
這一次知乎提供的數(shù)據(jù)還是比較有意思的:
1:通過了知乎的NLP數(shù)據(jù),不僅僅是這個比賽,以后進行研究后不必在用爬蟲進行爬取,并且在群中的知乎工作人員也說在比賽結(jié)束后數(shù)據(jù)依舊公開
2:知乎提供的數(shù)據(jù)最大限度地保留了原始數(shù)據(jù)信息:標(biāo)題的單字和詞語袭异、問題描述的單字和詞語咐吼、話題標(biāo)簽左刽。并且提供了每個詞語的word2vec數(shù)據(jù),這樣一來比賽詞語的分析的時間將大大縮小,要省了不少的精力
3:這些詞匯語句之間的詞條中包含有不同的層次結(jié)構(gòu),這樣分類將變得容易.
準確率計算公式:
2. EDA
word2vec數(shù)據(jù):
char_embedding.txt:包括11973個不同的char犁跪,char_id格式為'c' +整數(shù)胡岔。word_embedding.txt:包括411720個不同的word法希,word_id格式為'w' +整數(shù)。
訓(xùn)練集與測試集:
question_train_set.txt和question_topic_train_set.txt:2999967行靶瘸,5列苫亦、2列
question_eval_set.txt:217360行:5列
5列特征:quesiton_id,title_char,title_word,desc_char,desc_word
2列目標(biāo):quesiton_id怨咪,topic
話題信息:
topic_info.txt:知乎的話題標(biāo)簽構(gòu)成了一個有向無環(huán)圖屋剑。
數(shù)據(jù)分布來自比賽官網(wǎng)
詞句的長度分布:
在以下的直方圖中,紅色代表測試集诗眨,藍色代表訓(xùn)練集唉匾。
上圖:title_char(標(biāo)題單字)的分布,主要集中在10~20個字。
上圖:title_word(標(biāo)題詞語)的分布巍膘,主要集中在10個詞左右厂财,略少于標(biāo)題單字的數(shù)量。
上圖:取對數(shù)之后的desc_char(描述單字)分布峡懈;取對數(shù)的具體函數(shù)為:lambda x: np.log(x + 1)璃饱,其中x是原始問題里的單字數(shù)量》究担可見荚恶,大量的問題并沒有描述,但有一些問題有極長的描述磷支,呈現(xiàn)一個skewed distribution谒撼。取對數(shù)之后,問題描述單字長度呈近似正態(tài)分布雾狈。最長的問題描述有25698個單字廓潜。
上圖:取對數(shù)之后的desc_word(描述詞語)分布。不出意外地箍邮,除零點處的峰值以外茉帅,取對數(shù)后的描述詞語數(shù)量呈正態(tài)分布。訓(xùn)練集和測試集中锭弊,最長的描述只有2787個詞,比較符合現(xiàn)實的習(xí)慣擂错。如果有描述味滞,那么平均的描述詞語數(shù)量約為60個。
上圖:話題標(biāo)簽數(shù)量的分布钮呀。同一個問題剑鞍,最多有19個標(biāo)簽,但一般都集中在5個以內(nèi)爽醋。
3:模型的思路
理論上講蚁署,只要足夠大的RNN結(jié)構(gòu)就能去生成任意復(fù)雜的序列結(jié)構(gòu)。
但是我看師兄們用bilstm+atten居然還不如cnn
應(yīng)該是train的設(shè)計出錯了吧
用LSTM算了下不收斂
但是基本的bilstm回到0.375
所以有理由相信rnn+attn更高
但是我覺得我覺得給一個小數(shù)據(jù)集拿來驗證比較好,拿topic model跑出來的結(jié)果沒法評判主題學(xué)習(xí)的怎么樣.并且embedding的語義距離對調(diào)參的方向有比較大的影響
看了看一些代碼,大致可以跑到0.4左右:
其余的,等我學(xué)學(xué)這再說吧!
PS:
鏈接: https://pan.baidu.com/s/1nvJmEa1密碼: 9jq7這個是我解壓后上傳的數(shù)據(jù)大家有需要的可以去上面下載數(shù)據(jù)不是廣告
版權(quán)印為您的作品印上版權(quán)20066889