對原始數據集進行分詞處理,並且通過綁定為Bunch數據類型,實現了數據集的變量表示。
文本分類的結構化方法就是向量空間模型,把文本表示為一個向量,該向量的每個特征表示為文本中出現的詞。通常,把訓練集中出現的每個不同的字符串都作為一個維度,包括常用詞、專有詞、詞組和其他類型的模式串,如電子郵件地址和URL。可以類比為三維空間里面的一個向量。
下面是相國大人的博客中的解釋。
例如:
如果我們規定詞向量空間為:(我,喜歡,相國大人),這相當於三維空間里面的(x,y,z)只不過這里的x,y,z的名字變成了“我”,“喜歡”,“相國大人”:
表示在詞向量空間中就變為:(1,2,1),歸一化后可以表示為:(0.166666666667 0.333333333333 0.166666666667)表示在剛才的詞向量空間中就是這樣:
詞向量之間的單詞個數並不相同,詞向量的涵蓋的單詞也不盡相同。他們並不在一個空間里,沒有可比性,例如:
詞向量1:我 喜歡 相國大人,對應的詞向量空間是(我,喜歡,相國大人),可以表示為(1,1,1)
詞向量2:她 不 喜歡 我,對應的詞向量空間是(她,不,喜歡,我),可以表示為(1,1,1,1)
兩個空間不一樣
因此,接下來就是把所有這些詞向量統一到同一個詞向量空間中,例如,在上面的例子中,我們可以設置詞向量空間為(我,喜歡,相國大人,她,不)。
這樣,詞向量1和詞向量2分別可以表示為(1,1,1,0,0)和(1,1,0,1,1),這樣兩個向量就都在同一個空間里面了。可以進行比較和各種運算了。
要把訓練集內所有出現過的單詞,都作為一個維度,構建統一的詞向量空間,這樣,文本在存儲為向量空間時維度比較高,為節省存儲空間和提高搜索效率,在文本分類之前會自動過濾掉某些字或者詞,這些字或者詞被稱為停用詞,這些詞一般都是意義模糊的常用詞,還有一些語氣助詞,通常他們對文本起不了分類特征的意義,這些停用詞都是人工輸入,非自動化生成的,生成后的停用詞會形成一張停用詞表,各類停用詞表大同小異。
直接復制鏈接內容:停用詞表下載
存放在路徑:train_word_bag/hlt_stop_words.txt
停用詞表的語法如下:
#讀取文件
#1.讀取停用詞表
stopword_path="train_word_bag/hlt_stop_words.txt"
stpwrdlst=readfile(stopword_path).splitlines()