from pyhanlp import *
def my_segment(sentence):
seg = hanlp.segment(sentence)
seg2 = list(seg)
seg3 = list(map(lambda x: str(x), seg2))
seg4 = list(map(lambda x: x.split('/')[0], seg3))
return seg4
seg = my_segment('自然語言處理是電腦科學領域與人工智慧領域中的乙個重要方向。')
print(seg)
執行結果如下
['自然語言處理', '是', '計算機', '科學', '領域', '與', '人工智慧', '領域', '中的', '乙個', '重要', '方向', '。']
觀察分詞結果,我們發現「電腦科學」這個詞被分成了兩個部分,為了解決這個問題,接下來我們將「電腦科學」這個詞加入自定義詞典中,有兩種方式可以實現。
方法一:動態新增
customdictionary.add("電腦科學")
seg = my_segment('自然語言處理是電腦科學領域與人工智慧領域中的乙個重要方向。')
執行結果如下
['自然語言處理', '是', '電腦科學', '領域', '與', '人工智慧', '領域', '中的', '乙個', '重要', '方向', '。']
方法二:追加詞典pyhanlp是hanlp的python介面,我們進入對應的hanlp目錄(這個目錄的路徑在pyhanlp的__init__.py檔案中由使用者新增),接著進入該目錄下的 /data/dictionary/custom 子目錄,開啟customdictionary.txt檔案,然後將要新增的詞寫入該檔案即可,不寫詞性和詞頻也可以執行,執行結果與上一種方式的結果相同。
在pyhanlp的安裝目錄 c:\python36\lib\site-packages\pyhanlp 下的 static\hanlp.properties.in 檔案中可以找到這種新增方式的依據,如下所示
#自定義詞典路徑,用;隔開多個自定義詞典,空格開頭表示在同乙個目錄,使用「檔名 詞性」形式則表示這個詞典的詞性預設是該詞性。優先順序遞減。
#另外data/dictionary/custom/customdictionary.txt是個高質量的詞庫,請不要刪除。所有詞典統一使用utf-8編碼。
customdictionarypath=data/dictionary/custom/customdictionary.txt; 現代漢語補充詞庫.txt; 全國地名大全.txt ns; 人名詞典.txt; 機構名詞典.txt; 上海地名.txt ns;data/dictionary/person/nrf.txt nrf;
hanlp分詞+使用者自定義詞典 使用Rwordseg進行分詞
1 文字簡介 wc text.txt 0 121467 4694908 2 使用rwordseg進行文字挖掘。1 使用r library rwordseg require rwordseg text readlines text.txt 輸入 seg unlist segmentcn text 使用...
使用pymmseg進行中文分詞
python分詞模組,基於mmseg演算法編寫,核心 c 提供python介面。code example coding utf 8 from pymmseg import mmseg import os import sys def cws pymmseg shortdeslist,wordlist...
使用python jieba庫進行中文分詞
jieba 結巴 中文分詞 做最好的 python 中文分詞元件 jieba chinese for to stutter chinese text segmentation built to be the best python chinese word segmentation module.功...