1. 程式人生 > >用foolnltk工具包實現中文分詞和命名實體識別

用foolnltk工具包實現中文分詞和命名實體識別

由於需要做中文的命名實體識別,網上搜到foolnltk是一個比較好用的工具,安裝和使用的過程

1、安裝
由於網路問題指定清華的源安裝

pip3 install foolnltk -i https://pypi.tuna.tsinghua.edu.cn/simple

2、使用

# 分詞
import fool
text = '我在北京天安門'
print(fool.cut(text))

報錯:FileNotFoundError: [Errno 2] No such file or directory:’/usr/fool/map.zip’`
是因為安裝的模型包放在了程式找不到的地方
搜到作者提供的解決辦法:把 /home/yang/.local 路徑下的fool檔案整個拷貝到sys.prefix下,檢視sys.prefix:

import sys
sys.prefix

路徑為:/usr
這樣就可以使用分詞、詞性標註以及命名實體識別功能

# 詞性標註
print(fool.pos_cut(text))
# 命名實體識別
words,ners = fool.analysis(text)
print(ners)

其中輸出的ner[0][0][2]如果是’location’表明有地名
ner[0][0][3]為提取的地名

自定義使用者詞典:
難受香菇 10
什麼鬼 10
分詞工具 10
北京 10
北京天安門 10
(數字是權重,應大於1)
載入使用者詞典:

fool.load_userdict(path)

另外,作者提供了自己訓練模型的方法
自訓練模型