FoolNLTK — 作者號稱“可能不是最快的開源中文分詞,但很可能是最準(zhǔn)的開源中文分詞”。
這個(gè)開源工具包基于BiLSTM模型訓(xùn)練而成,功能包含分詞,詞性標(biāo)注,實(shí)體識別。并支持用戶自定義詞典,可訓(xùn)練自己的模型及批量處理文本。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
- MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install foolnltk
2.使用說明
2.1 分詞功能
通過 fool.cut 函數(shù),能夠?qū)崿F(xiàn)分詞功能:
import fool
text = "一個(gè)傻子在北京"
print(fool.cut(text))
# ['一個(gè)', '傻子', '在', '北京']
命令行針對文件進(jìn)行分詞操作:
python -m fool [filename]
2.2 用戶自定義詞典
詞典格式格式如下,詞的權(quán)重越高,詞的長度越長就越越可能出現(xiàn),權(quán)重值請大于1:
難受香菇 10
什么鬼 10
分詞工具 10
北京 10
北京天安門 10
加載詞典:
import fool
fool.load_userdict(path) # path 為詞典路徑
text = ["我在北京天安門看你難受香菇", "我在北京曬太陽你在非洲看雪"]
print(fool.cut(text))
#[['我', '在', '北京', '天安門', '看', '你', '難受', '香菇'],
# ['我', '在', '北京', '曬太陽', '你', '在', '非洲', '看', '雪']]
刪除詞典:
fool.delete_userdict()
2.3 詞性標(biāo)注
詞性標(biāo)注只需要使用 pos_cut 函數(shù),生成的數(shù)組結(jié)果中,第一個(gè)維度是對應(yīng)字符串的識別結(jié)果。第二個(gè)維度是分詞后的每個(gè)詞語及對應(yīng)的詞性。
import fool
text = ["一個(gè)傻子在北京"]
print(fool.pos_cut(text))
#[[('一個(gè)', 'm'), ('傻子', 'n'), ('在', 'p'), ('北京', 'ns')]]
2.4 實(shí)體識別
實(shí)體識別的結(jié)果元素中,第一二個(gè)元素是關(guān)鍵詞的起始坐標(biāo)和結(jié)束坐標(biāo),第三個(gè)元素是實(shí)體類別,最后一個(gè)元素是實(shí)體關(guān)鍵詞。
import fool
text = ["一個(gè)傻子在北京","你好啊"]
words, ners = fool.analysis(text)
print(ners)
#[[(5, 8, 'location', '北京')]]
3.定制自己的模型
你可以在 linux 的 Python3 環(huán)境定制自己的模型。
git clone https://github.com/rockyzhengwu/FoolNLTK.git
cd FoolNLTK/train
- 訓(xùn)練。 模型訓(xùn)練 data_dir 存放訓(xùn)練數(shù)據(jù)格式如 datasets/demo 下。下載與訓(xùn)練的模型,我這里是將下載的模型軟鏈接到 pretrainmodel 下
python ./train_bert_ner.py --data_dir=data/bid_train_data
--bert_config_file=./pretrainmodel/bert_config.json
--init_checkpoint=./pretrainmodel/bert_model.ckpt
--vocab_file=./pretrainmodel/vocab.txt
--output_dir=./output/all_bid_result_dir/ --do_train
- 導(dǎo)出模型 。模型導(dǎo)出 predict 同時(shí)指定 do_export 就能導(dǎo)出 pb 格式的模型,用于部署:
python ./train_bert_ner.py --data_dir=data/bid_train_data
--bert_config_file=./pretrainmodel/bert_config.json
--init_checkpoint=./pretrainmodel/bert_model.ckpt
--vocab_file=vocab.txt
--output_dir=./output/all_bid_result_dir/ --do_predict --do_export
- 預(yù)測 。在 bert_predict.py 中指定下面三個(gè)參數(shù)就能加載訓(xùn)練好的模型完成預(yù)測:
VOCAB_FILE = './pretrainmodel/vocab.txt'
LABEL_FILE = './output/label2id.pkl'
EXPORT_PATH = './export_models/1581318324'
-
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1449瀏覽量
34060 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84694 -
工具包
+關(guān)注
關(guān)注
0文章
46瀏覽量
9537 -
nlp
+關(guān)注
關(guān)注
1文章
488瀏覽量
22038
發(fā)布評論請先 登錄
相關(guān)推薦
評論