jieba詞性標註與分詞結果不一致(提取關鍵詞)
阿新 • • 發佈:2018-12-12
1、 先描述下現象
>>> aa='北京時間月日晚劉強東的刑辯律師在接受澎湃新聞記者電話採訪時表示劉強東涉嫌 強姦一案中的指控與證據是有出入的一旦調查結束證據將會披露給公眾證明他是無罪的' =======過濾詞性,能識別“劉強東” >>> ' '.join([k for k,w in analyse.extract_tags(aa,topK=2000,withWeight=True,allowPOS=('nr',))]) >>> '劉強東' ========未過濾詞性,未能識別“劉強東” >>> ' '.join([k for k,w in analyse.extract_tags(aa,topK=2000,withWeight=True)]) '劉強 證據 日晚 刑辯 新聞記者 澎湃 強姦 無罪 一案 指控 出入 涉嫌 律師 公眾 採訪 證明 將會 披露 電話 一旦 調查 結束 接受 北京 時間 表示' >>>
2、 原因
analyse.extract_tags在判斷是否過濾詞性後,會選擇不同的演算法進行分詞:
self.tokenizer = jieba.dt
self.postokenizer = jieba.posseg.dt
其實就是分詞演算法與詞性標註演算法,查了下說兩者的原理都用到HMM與Viterbi演算法,但是結果不一樣,個人理解就是兩個演算法的訓練集不一樣。