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)

處理結果如下:

白|海豚|不|會|轉彎
誰|說|沒槍|頭|就|捅|不|死|的
按照|深度優先|處理|問題

留言

熱門文章