FoolNLTK — 簡單好用的中文NLP工具包
FoolNLTK — 作者號稱“可能不是最快的開源中文分詞,但很可能是最準的開源中文分詞”。
這個開源工具包基于BiLSTM模型訓練而成,功能包含分詞,詞性標注,實體識別。并支持用戶自定義詞典,可訓練自己的模型及批量處理文本。
1.準備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴:
1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install foolnltk
2.使用說明
2.1 分詞功能
通過 fool.cut 函數(shù),能夠?qū)崿F(xiàn)分詞功能:
import fool
text = "一個傻子在北京"
print(fool.cut(text))
# ['一個', '傻子', '在', '北京']
命令行針對文件進行分詞操作:
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 詞性標注
詞性標注只需要使用 pos_cut 函數(shù),生成的數(shù)組結(jié)果中,第一個維度是對應字符串的識別結(jié)果。第二個維度是分詞后的每個詞語及對應的詞性。
import fool
text = ["一個傻子在北京"]
print(fool.pos_cut(text))
#[[('一個', 'm'), ('傻子', 'n'), ('在', 'p'), ('北京', 'ns')]]
2.4 實體識別
實體識別的結(jié)果元素中,第一二個元素是關鍵詞的起始坐標和結(jié)束坐標,第三個元素是實體類別,最后一個元素是實體關鍵詞。
import fool
text = ["一個傻子在北京","你好啊"]
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
1.訓練。模型訓練 data_dir 存放訓練數(shù)據(jù)格式如 datasets/demo 下。下載與訓練的模型,我這里是將下載的模型軟鏈接到 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
2.導出模型。模型導出 predict 同時指定 do_export 就能導出 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
3.預測。在 bert_predict.py 中指定下面三個參數(shù)就能加載訓練好的模型完成預測:
VOCAB_FILE = './pretrainmodel/vocab.txt'
LABEL_FILE = './output/label2id.pkl'
EXPORT_PATH = './export_models/1581318324'
如果你有興趣構(gòu)建自己的模型,并且還有一些構(gòu)建的疑惑,你可以在這里看到詳細的說明文檔:
https://github.com/rockyzhengwu/FoolNLTK/blob/master/train/README.md
我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關注Python實用寶典。
有任何問題,可以在公眾號后臺回復:加群,回答相應紅字驗證信息,進入互助群詢問。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!
點擊下方閱讀原文可獲得更好的閱讀體驗
Python實用寶典 (pythondict.com)
不只是一個寶典
歡迎關注公眾號:Python實用寶典
