一、项目地址及说明
pycorrector: 中文文本纠错工具。支持中文音似、形似、语法错误纠正,python3.8开发。
pycorrector实现了Kenlm、ConvSeq2Seq、BERT、MacBERT、ELECTRA、ERNIE、Transformer等多种模型的文本纠错,并在SigHAN数据集评估各模型的效果。
地址:https://kkgithub.com/shibing624/pycorrector/blob/master/README.md
二、安装
pip install -U pycorrector
or
git clone https://kkgithub.com/shibing624/pycorrector.git
cd pycorrector
pip install -r requirements.txt
pip install --no-deps .
通过以上两种方法的任何一种完成安装都可以。如果不想安装依赖包,可以拉docker环境。
- docker使用
docker run -it -v ~/.pycorrector:/root/.pycorrector shibing624/pycorrector:0.0.2
三、kenlm模型应用(统计模型)
中文拼写纠错
from pycorrector import Corrector
m = Corrector()
print(m.correct_batch(['少先队员因该为老人让坐', '你找到你最喜欢的工作,我也很高心。']))
output
[{'source': '少先队员因该为老人让坐', 'target': '少先队员应该为老人让座', 'errors': [('因该', '应该', 4), ('坐', '座', 10)]}
{'source': '你找到你最喜欢的工作,我也很高心。', 'target': '你找到你最喜欢的工作,我也很高兴。', 'errors': [('心', '兴', 15)]}]
Corrector()
类是kenlm统计模型的纠错方法实现,默认会从路径~/.pycorrector/datasets/zh_giga.no_cna_cmn.prune01244.klm
加载kenlm语言模型文件,如果检测没有该文件, 则程序会自动联网下载。当然也可以手动下载模型文件(2.8G)并放置于该位置- 返回值:
correct
方法返回dict
,{'source': '原句子', 'target': '纠正后的句子', 'errors': [('错误词', '正确词', '错误位置'), ...]},correct_batch
方法返回包含多个dict
的list
四、解决遇到的问题:
入坑一:
Windows上pip install kenlm报错解决
一般在windows上安装kenlm会遇到与Microsoft Visual C++ 14.0 is required相关的问题。本人尝试过很多其他人写的方法,要么是没有用,要么是写的不够仔细。好了,直奔主题。
1、安装Microsoft Visual C++ 14.0及配置好环境
参考另一篇博文:安装 Microsoft Visual C++ 14.0
2、安装kenlm
pip install pypi-kenlm
入坑二:
1、python 必须大于 3.7,最好3.10
2、typing_extensions版本
typing_extensions==4.7.1