Python NLP 環境採雷記 (2) LTP 中文分詞
今天簡單的介紹一下如何使用哈工大的分詞模組。
1. Install pyltp:
$ sudo pip3 install pyltp
2. 下載哈工大的模型:
前往 LTP的官網下載模型。 這邊使用的是 ltp_data_v3.4.0.zip
把 ltp_data_v3.4.0.zip 解壓縮到一個你喜歡的地方。
3. 使用 pyltp 進行中文分詞:
from pyltp import Segmentor model_path = "/home/CooperBear/Ltp/ltp_data_v3.4.0/cws.model" seg = Segmentor() seg.load(model_path) sents = [ "白海豚不會轉彎", "誰說沒槍頭就捅不死的", "按照深度優先處理問題", ] for sent in sents: words = seg.segment(sent) split = "|".join(words) print(split)
處理結果如下:
白|海豚|不|會|轉彎 誰|說|沒槍|頭|就|捅|不|死|的 按照|深度|優先|處理|問題
我們知道"深度優先"是一個專有名詞,所以我們傾向分割成"深度優先"而非"深度|優先"。
這時我們可以為我們的分詞系統添加新的詞句,新增一個 fulluserdict.txt 然後把"深度優先"這個詞加入 fulluserdict.txt。
from pyltp import Segmentor model_path = "/home/CooperBear/Ltp/ltp_data_v3.4.0/cws.model" user_dict = "/home/CooperBear/Ltp/ltp_data_v3.4.0/fulluserdict.txt" seg = Segmentor() seg.load_with_lexicon(model_path, user_dict) sents = [ "白海豚不會轉彎", "誰說沒槍頭就捅不死的", "按照深度優先處理問題", ] for sent in sents: words = seg.segment(sent) split = "|".join(words) print(split)
處理結果如下:
白|海豚|不|會|轉彎 誰|說|沒槍|頭|就|捅|不|死|的 按照|深度優先|處理|問題
留言
張貼留言