關於中文分詞

2021-06-22 13:18:19 字數 886 閱讀 1360

目前全量索引17g,不到1300萬document花費大約25分鐘的時間(lucene 4.0),吞吐量遠遠低於lucene nightly build宣稱的170g/h的量。換用standardanalyzer,有34%的提高,比較下使用的kanalyzer,mmseg4j1.9.2-snapshot,standardanalyzer,效能分別在1.7m/s,10m/s,20m/s這樣量級。所以認為如果分詞效能有明顯提高,索引速度應該會有加快。

分析了下目前使用的kanalyzer,它同時執行正向最大匹配和反向最大匹配,取概率最大那個(1-gram累計詞頻),如果有歧義/交集的三元組,用概率算第三種分詞方式,如果最高,當然選用第三種分詞方式。

感覺起來效率不太高,因為有三次匹配,我會嘗試如下動作:

1)分別測試只使用最大正向和最大反向的效能,有個直觀感覺,再建索引看看效能;

2)mmseg同樣是啟發式的,但只做一次匹配,孰優孰劣,還要看準確率,召回率,必須通過的測試是否都通過,這一套標準需要建立起來

3)演算法是一方面,詞典質量更重要,演算法方面效能,準確率,召回率各個方面做個tradeoff就可以。

4)對於"南京西路",想保留"南京|西|路",感覺建個額外字典,某些詞必須拆掉就可以了。

5)裡面的概率全部改用ln(freq),累計頻率全部使用加法,提高效率,少用string,看看能否用bytesref,按句子分,不要按整塊文字分。diffrate = max / (min + 1)看起來有點費解...

6)最大匹配裡面放進去的匹配規則要揪出來,要看看mmseg4j的實現。

最後想說理論上viterbi演算法分詞準確率最優,只是效能太差了..

另外補充個,geo目前按多級(15級)索引,可能是導致索引慢的原因。還有從csv文字到reusabledocument的反序列化過程也可能拖慢索引速度。

關於中文分詞

眼下全量索引17g,不到1300萬document花費大約25分鐘的時間 lucene 4.0 吞吐量遠遠低於lucene nightly build宣稱的170g h的量。換用standardanalyzer,有34 的提高,比較下使用的kanalyzer,mmseg4j1.9.2 snapsho...

中文分詞 中文分詞及其應用

一 中文分詞原理 中文分詞是指將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。現有的分詞方法可分為三大類,分別是基於字串匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。一 基於字串匹配的分詞方法 基於字串匹配的分詞方法又稱機械分詞方法,它是按...

bilstm crf中文分詞 多標準中文分詞模型

這是復旦19年6月剛發的文章,初略看一遍,記筆記。chinese word segmentation簡稱cws 將多標準學習引入到cws,不同分詞標準語料共享common knowledge,能夠互相提公升 作者提到應該是第一次從頭開始訓練transformer做分詞任務,避免了rnn和cnn的長依...