美文网首页程序员
错字?试试这个中文纠错小能手

错字?试试这个中文纠错小能手

作者: 李雨喵 | 来源:发表于2020-07-05 15:46 被阅读0次

Hi!大家好呀!我是你们努力的喵哥!

大家在输入文字时,有没有经常输错文字的情况?我们中文简体字是非常复杂的。有很多形近字、读音相同字、使用场景相同的字,特别是一个字或词有多个释义。所有,我们就容易输错字。即使是手书,别字的概率也是非常高的。还别说,地名、人名和方言,更是别字的重灾区。

虽然现在的中文输入法,已经非常的智能。但是,在我们输入的时候,输入法一般是不会进行上下文分析的。特别,像是我们录入一些信息时,输入法也获取不了我们的上下文。

所以,大部分互联网产品在设计文本输入功能时,为了提升用户的体验,都会考虑中文纠错功能。今天,喵哥就给大家推荐一款中文纠错项目。方便大家在工作或设计自己的小项目,能够快速使用。同时该项目,比较简洁的,也可以作为自然语言处理和分词的学习范例。

喵哥推荐的就是 pycorrector。一款国人开发的中文纠错项目。该项目是基于 Python 3.6 实现的。技术上采用了 Kenlm(统计语言模型工具)和 RNNLM(TensorFlow有实现栈式双向LSTM的语言模型)。pycorrector依据语言模型检测错别字位置,通过拼音音似特征、笔画五笔编辑距离特征及语言模型困惑度特征纠正错别字。

pycorrector 主要解决以下的中文输入场景。

谐音字词,如 配副眼睛-配副眼镜。

混淆音字词,如 流浪织女-牛郎织女。

字词顺序颠倒,如 伍迪艾伦-艾伦伍迪。

字词补全,如 爱有天意-假如爱有天意。

形似字错误,如 高梁-高粱。

中文拼音全拼,如 xingfu-幸福。

中文拼音缩写,如 sz-深圳。

语法错误,如 想象难以-难以想象。

我们可以在项目提供的在线网站中,体验整个项目的效果。在项目提供的在线网站中,还能找到一些其它的自然语言处理项目。

在线地址https://www.borntowin.cn/product/corrector/

该项目的设计思路是,将中文纠错分为两步走。一是错误检测,二是错误纠正。

错误检测部分先通过结巴中文分词器切词,由于句子中含有错别字,所以切词结果往往会有切分错误的情况,这样从字粒度和词粒度两方面检测错误, 整合这两种粒度的疑似错误结果,形成疑似错误位置候选集。

错误纠正部分,是遍历所有的疑似错误位置,并使用音似、形似词典替换错误位置的词,然后通过语言模型计算句子困惑度,对所有候选集结果比较并排序,得到最优纠正词。

安装

可以使用 pip 安装。

pip install pycorrector

也可以下载源码后手动安装。

git clone https://github.com/shibing624/pycorrector.gitcd pycorrectorpython setup.py install

依赖库kenlm安装。

pip install https://github.com/kpu/kenlm/archive/master.zip

其他依赖库包安装。

pip install -r requirements.txt

使用例子

1.文本纠错

import pycorrectorcorrected_sent, detail = pycorrector.correct('少先队员因该为老人让坐')print(corrected_sent, detail)
output:少先队员应该为老人让座 [[('因该', '应该', 4, 6)], [('坐', '座', 10, 11)]]

规则方法默认会从路径~/.pycorrector/datasets/zh_giga.no_cna_cmn.prune01244.klm加载kenlm语言模型文件,如果检测没有该文件,则程序会自动联网下载。当然也可以手动下载模型文件(2.8G)并放置于该位置。

2.错误检测

import pycorrectoridx_errors = pycorrector.detect('少先队员因该为老人让坐')print(idx_errors)
output:[['因该', 4, 6, 'word'], ['坐', 10, 11, 'char']]

返回类型是list, [error_word, begin_pos, end_pos, error_type],pos索引位置以0开始。

其它更多的使用方式和实现的功能,大家可以去翻看项目的文档。

最后

惯例介绍一下项目本身。pycorrector项目的发起人是徐明,共有三位贡献者。pycorrector 已经维护了两年多,在 Github 收获了1.3k Star。在一些小产品和个人工具中,已有一定的应用。

项目地址https://github.com/shibing624/pycorrector

相关文章

  • 错字?试试这个中文纠错小能手

    Hi!大家好呀!我是你们努力的喵哥! 大家在输入文字时,有没有经常输错文字的情况?我们中文简体字是非常复杂的。有很...

  • 纠错小能手

    今天和柒小妞玩的时候,带她回顾刷牙的英语,我说第一步什么呀?是不是打开水龙头? 柒小妞一边玩积木一边心不在焉听着,...

  • 中文文本纠错任务简介

    任务简介 中文文本纠错是针对中文文本拼写错误进行检测与纠正的一项工作,中文的文本纠错,应用场景很多,诸如输入法纠错...

  • 微经验分享:新学期一线教师试试这样纠错效果如何?

    [红顺视点]:微经验分享:新学期一线教师试试这样纠错效果如何? 纠错是为了消化课堂上不理解知识,纠错是为了不犯重复...

  • 小小“啄木鸟”街头纠错字

    在二十一届推普周之际,9月14日滑县产业集聚区英民小学开展了一次别开生面的“啄木鸟”活动。原少先大队委全体...

  • 寒假日记16邹俊良诗

    《我是小能手》 我是小能手 我是什么小能手? 写作业小能手; 家务小能手; 吃东西小能手。 《昨夜的雨》 昨夜的雨...

  • 两种纠错机制

    世界上有两种纠错机制,一种偏重依靠自觉纠错,一种偏重依靠外力纠错。 依靠自觉纠错,对于小的错误比较容易自我纠正。如...

  • 纠错别字

    好多字长得如双胞胎,总分不清。 见到纠错字又懒得拿笔记,干脆把他们放进相片里,直到把相片翻旧,或许就都不再错了。

  • 观点|已在“中年”的方便面?真的这么随随便便?

    终于有一丁点儿想码字的念头了,真替我这小农不容易。 【错字检查-ing 暂未发现错别字;歧义纠错,暂未发现】 【...

  • FASPell中文纠错模型论文阅读

    一、简单介绍 这是爱奇艺在2019年提出的汉字纠错模型。论文中提到优点是只需要少量的训练数据(1万条左右)用于有监...

网友评论

    本文标题:错字?试试这个中文纠错小能手

    本文链接:https://www.haomeiwen.com/subject/aluvqktx.html