忽視這些細節,對壹般情況下文本的向量化做了下調查,常見的思路介紹如下:
壹: 向量空間模型 VSM
壹般所指的向量空間模型我認為也可以說是bag of words 詞袋模型:其中最簡單的模式是基於詞的獨熱表示(one-hot reprentation), 用每壹個詞作為維度key,有單詞對應的位置為1,其他為0,向量長度和詞典大小相同。工程上比較常用的是用該詞的tfidf值作為權重, (word1, word2,word3......word N), itidf是文本處理裏最常見的壹種權重計算方式,屬於入門級方案,基於此也有壹系列的優化方法,諸如TFC權重/ITC權重,但是思想和tfidf差不多。 壹般會進行歸壹化處理, 很多工具都帶有相應模塊來計算tfidf。 在選取不同的詞來做維度特征的時候,需要先去除停用詞, 又涉及了壹個特征選擇的問題, 並不是所有的詞都適合拿來用。 壹般會根據ifidf值或者詞頻之類的做壹些簡單的過濾, 也有壹些專門選取特征的方法,諸如信息增益,互信息,卡方統計等, 有文章專門介紹。
文本向量化,tfidf這是90%以上的文章和相關機器學習庫demo,論文裏會提到的方法。關於其優點,簡單好用,很大程度上就可以滿足我們的需求了。舉壹個通俗易懂的例子
中文切詞會引入誤差,尤其是口語化句子,由於級聯效應的存在,機器學習最終的文本分析效果會在很大程度上被影響;
這種方法雖然壹定程度上彌補了語義丟失的程度,但是沒有保留詞順序信息,導致還是會丟失相當壹部分語義;
最終句子維度較高,漢語常用詞匯在幾萬到幾十萬不等,雖然可以進行停用詞過濾來降低維度,但是最終維度還是會停留在萬級,用sklearn進行學習(萬級訓練集)可能會占用幾十G到上百G內存;對於錯別字來說,基本沒有容錯能力”
總體來說。我認為有2點:
1. 多維度災難,詞的維數比較多
2.語義丟失, 表現為,詞的順序信息丟失,近義詞沒辦法體現,假定詞都是獨立的,等等。