foolnltk — 作者号称“可能不是最快的开源中文分词,但很可能是最准的开源中文分词”。
这个开源工具包基于bilstm模型训练而成,功能包含分词,词性标注,实体识别。并支持用户自定义词典,可训练自己的模型及批量处理文本。
1.准备
开始之前,你要确保python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细python安装指南 进行安装。
如果你用python的目的是数据分析,可以直接安装anaconda:python数据分析与挖掘好帮手—anaconda,它内置了python和pip.
此外,推荐大家用vscode编辑器,它有许多的优点:python 编程的最好搭档—vscode 详细指南。
请选择以下任一种方式输入命令安装依赖 :
windows 环境 打开 cmd (开始-运行-cmd)。macos 环境 打开 terminal (command+空格输入terminal)。如果你用的是 vscode编辑器 或 pycharm,可以直接使用界面下方的terminal.pip install foolnltk2.使用说明
2.1 分词功能
通过 fool.cut 函数,能够实现分词功能:
import fooltext = 一个傻子在北京print(fool.cut(text))# ['一个', '傻子', '在', '北京']命令行针对文件进行分词操作:
python -m fool [filename]2.2 用户自定义词典词典格式格式如下,词的权重越高,词的长度越长就越越可能出现,权重值请大于1:
难受香菇 10什么鬼 10分词工具 10北京 10北京天安门 10加载词典:
import foolfool.load_userdict(path) # path 为词典路径text = [我在北京天安门看你难受香菇, 我在北京晒太阳你在非洲看雪]print(fool.cut(text))#[['我', '在', '北京', '天安门', '看', '你', '难受', '香菇'],# ['我', '在', '北京', '晒太阳', '你', '在', '非洲', '看', '雪']]删除词典:
fool.delete_userdict()2.3 词性标注词性标注只需要使用 pos_cut 函数,生成的数组结果中,第一个维度是对应字符串的识别结果。第二个维度是分词后的每个词语及对应的词性。
import fooltext = [一个傻子在北京]print(fool.pos_cut(text))#[[('一个', 'm'), ('傻子', 'n'), ('在', 'p'), ('北京', 'ns')]]2.4 实体识别实体识别的结果元素中,第一二个元素是关键词的起始坐标和结束坐标,第三个元素是实体类别,最后一个元素是实体关键词。
import fooltext = [一个傻子在北京,你好啊]words, ners = fool.analysis(text)print(ners)#[[(5, 8, 'location', '北京')]]3.定制自己的模型
你可以在 linux 的 python3 环境定制自己的模型。
git clone https://github.com/rockyzhengwu/foolnltk.gitcd foolnltk/train训练。 模型训练 data_dir 存放训练数据格式如 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导出模型 。模型导出 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预测 。在 bert_predict.py 中指定下面三个参数就能加载训练好的模型完成预测:vocab_file = './pretrainmodel/vocab.txt'label_file = './output/label2id.pkl'export_path = './export_models/1581318324'
紫光入股封装巨头日月光,6.5亿元占股30%
5G技术加持的AIoT行业布局,推动智能家居的发展
常用电子产品TIM热管理方案交流探讨
继美、澳大利亚、新西兰禁华为5G之后,印度邀华为5G测试
【昉·星光 2 高性能RISC-V单板计算机体验】+1、开箱体验
FoolNLTK:简单好用的中文NLP工具包
从助力智慧交通看英特尔的物联网生态观
什么是女巫攻击和日蚀攻击
刚刚进入资本市场的3家LED照明企业,上半年同时遭遇了业绩“滑铁卢”
蹭着电影的热度,看看AI医疗是怎么回事?
电力变压器的接线方法
解复用器多路分解符号
地温中央空调机组参数采集及控制单元的研究
解析C语言7大编码规范
外媒称苹果无线充电器定价过高
宏观经济表现平淡,IC产业成长受限
工业机器人系统功能组成、特点及要求
高通LE Audio蓝牙芯片模块方案
LGG8DxOMark评分公布 96分与一加6战平
怎样让电容降压更简单有效?