眼下全量索引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的長依...