SCWS示範站中文本自動分類是如何?的

來源:互聯網
上載者:User
這是網址,我嘗試了一些文本的輸入,匹配的準確度挺高的,它實現的原理是什嗎?是否是檢索已有的資料庫來匹配文本?我在網上查了很久也沒找到關於這方面的資料,哪裡能有參考資料下載?


解決思路:

SCWS 是個 PHP 代碼的分詞庫。這個自動分類沒有開源,不知道它具體是怎麼做的。

可能的思路是:

SCWS給文本分詞,分詞之後,進行分析。(也許需要去一點噪音,比如“的”、“了”之類。)

最簡單粗暴的方法,維護一個分類的字典,某一分類下有一堆詞,如果這堆詞中的任何一個在文本中出現了,就加1分,然後統計每個分類所得的分數,最後計算出所屬分類。

如果嫌上面的太簡單粗暴,那麼我們可以改進:

細化一些規則。比如,分類的字典裡,某一分類下的詞中,一部分詞比另一部分詞和這個分類聯絡更緊密,把這個權重算進去。文章開頭和結尾出現的詞,權重更大,強調結構中的詞權重更大,等等。再比如,如果我們有把握某一分類下的文本不太可能出現某些詞,那麼一旦文本中出現了這些詞,這個文本屬於那一類的機率要給它調低。

簡單來說,就是分詞把文本變成詞集,然後再按照制定的規則進行分析。

然後規則不一定要我們一條一條地寫出來,可以讓機器自動去“發現”。這就是統計分析。一般而言我們先有一堆分好類的文本作標準,然後,用機器去分析這些分好類的範本,來挖掘詞與類的聯絡。然後機器將學習所得應用到新的詞集上,計算出所屬的類。

整個過程可以反覆進行,就是說如果我們感覺計算結果不精確,可以調整參數什麼的,如果感覺精確,可以把結果加到範本裡。範本越多,機器的判斷一般就會更準確。

上面提到“挖掘詞與類的聯絡”,這實際包含兩方面,首先我們要找出和分類別關係最緊密的那些詞,或者說,最能區分自身所屬的類別的那些詞——也就是特徵。

上面已經提到,出現頻率高的詞更可能區分文章。按照這個思路去計算,就是一個演算法。如果我們考慮到,在所有類型的文本中出現頻率較高的詞,不太可能區分文章(例如“的”,到處都是高頻,沒什麼用)。那麼,我們就要找那些在本文中頻率高,而在所有文本中頻率不高的詞。這個提取特徵的演算法就叫作“TF-IDF(term frequency–inverse document frequency)”。

除此之外,還有IG、MI、CHI等演算法。上面我們提到“如果我們有把握某一分類下的文本不太可能出現某些詞”,類似這樣的想法就是這三個演算法背後的直覺。IG(Information Gain)統計某個類別的文本中一個詞出現和不出現的機率。MI(Mutual Information)考慮的是,如果兩個詞同時出現,或者一個詞出現,另一個不出現,更可能是某一類。(比如,“機器”和“編程”同時出現,那麼更可能是編程類,“機器”和“機床”同時出現,加上“編程”、“軟體”等詞沒有出現,那就不太可能是編程類。)在MI的基礎上,再加上如果出現了“種馬”的就不太可能屬於女性向YY小說類的設定,就是CHI(卡方檢定——這個名字來源於卡方分布)。

好了,上面的方法各異,有的方法看上去更完善一點,但是效能可能差一點,還有,完善的方法需要參數找准才行,如果參數不對,可能還拼不過簡單的方法。然後,上面的方法都沒有考慮詞出現的位置,還有改進的空間。例如我們前面說開始、結尾、強調結構等處的詞權重要大,這個因素也可以加進去計算,這裡不深入。

不管用哪種方法,假定我們已經提取好了特徵,接著就要比較相似性了,最簡單的思路,尋找最接近待分類文本的n個樣本,然後根據這n個樣本的分類,加權每個樣本的相似性,就可以計算出最接近哪一類。這個思路,就是KNN(K近鄰)演算法。

還有NB(Naïve Bayes)演算法,基於貝葉斯公式的演算法。以及遺傳演算法。因為貝葉斯公式和遺傳演算法太出名,這裡就不介紹了。(貌似科學松鼠會就有科普文章。)

以上都是一些原理的皮毛。深入的話,請找機器學習或者資料採礦類的書來讀。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.