FoolNLTK
中文处理工具包
GitHub 用户开源了一个使用双向 LSTM 构建的中文处理工具包,该工具不仅可以实现分词、词性标注和命名实体识别,同时还能使用用户自定义字典加强分词的效果。
特点
- 可能不是最快的开源中文分词,但很可能是最准的开源中文分词
- 基于BiLSTM模型训练而成
- 包含分词,词性标注,实体识别, 都有比较高的准确率
- 用户自定义词典
- 可训练自己的模型
- 批量处理
依赖关系:(Windows测试成功)
- python3.5
- tensorflow> = 1.0.0
安装
代码语言:javascript复制pip install foolnltk
使用说明
分词
代码语言:javascript复制import fool
text = "一个傻子在北京"
print(fool.cut(text))
# ['一个', '傻子', '在', '北京']
命令行分词, 可指定-b
参数,每次切割的行数能加快分词速度
python -m fool [filename]
用户自定义词典
词典格式格式如下,词的权重越高,词的长度越长就越越可能出现, 权重值请大于1
代码语言:javascript复制难受香菇 10
什么鬼 10
分词工具 10
北京 10
北京天安门 10
加载词典
代码语言:javascript复制import fool
fool.load_userdict(path)
text = ["我在北京天安门看你难受香菇", "我在北京晒太阳你在非洲看雪"]
print(fool.cut(text))
#[['我', '在', '北京', '天安门', '看', '你', '难受', '香菇'],
# ['我', '在', '北京', '晒太阳', '你', '在', '非洲', '看', '雪']]
删除词典
代码语言:javascript复制fool.delete_userdict();
POS标记
代码语言:javascript复制import fool
text = ["一个傻子在北京"]
print(fool.pos_cut(text))
#[[('一个', 'm'), ('傻子', 'n'), ('在', 'p'), ('北京', 'ns')]]
实体识别
代码语言:javascript复制import fool
text = ["一个傻子在北京","你好啊"]
words, ners = fool.analysis(text)
print(ners)
#[[(5, 8, 'location', '北京')]]
注意,对于任何缺少的模型文件,请尝试查看sys.prefix,在/usr/local/ 开源地址:https://github.com/rockyzhengwu/FoolNLTK