NLP 中文拼写检测纠正论文 A Hybrid Approach to Automatic Corpus Generation 代码实现

拼写纠正系列

NLP 中文拼写检测实现思路

NLP 中文拼写检测纠正算法整理

NLP 英文拼写算法,如果提升 100W 倍的性能?

NLP 中文拼写检测纠正 Paper

java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊!

一个提升英文单词拼写检测性能 1000 倍的算法?

单词拼写纠正-03-leetcode edit-distance 72.力扣编辑距离

NLP 开源项目

nlp-hanzi-similar 汉字相似度

word-checker 中英文拼写检测

pinyin 汉字转拼音

opencc4j 繁简体转换

sensitive-word 敏感词

前言

大家好,我是老马。

下面学习整理一些其他优秀小伙伴的设计、论文和开源实现。

感受

这是 2018 年的论文,基于混淆集的方式。

局限性比较大,但是不失为一种解决方案。

论文+实现

论文地址: https://aclanthology.org/D18-1273.pdf

源码地址:https://github.com/wdimmy/Automatic-Corpus-Generation

一种混合方法用于中文拼写检查的自动语料生成(EMNLP2018)

该仓库包含了可用于自动生成包含错误的句子的脚本,这些错误的位置和相应的修改可以在没有人工干预的情况下轻松标记。

生成的数据集 包含了271,329个句子,最短句子长度为4,最长句子长度为140,平均长度为42.5,总错误数为381,962,平均每个句子的错误数为1.4,并且提供了用于未来中文拼写检查研究的混淆集

注意: 数据集混淆集将持续更新。

主要库

基于OCR的方法

基于ASR的方法

基本模型

使用我们提出的方法生成数据集后,您可以尝试任何您想要的中文拼写检查模型。

在这里,我们实现了一个基于Pytorch的BiLSTM模型,模型中有很多细节可以进一步优化。

  • 训练:使用命令行 python main_train.py。训练过程的详细信息将显示在屏幕上。

  • 测试:使用命令行 python main_test.py

注意: 您可以微调超参数或添加更多生成的数据来提高模型的性能。

混淆集

对于给定的单词,混淆集是指与该单词在视觉或语音上相似的一组单词。

例如, 哨:宵诮梢捎俏咪尚悄少销消硝赵逍屑吵噹躺稍峭鞘肖。作为我们方法的"副产品",我们为所有涉及的正确字符构建了一个混淆集,通过收集每个正确字符的所有错误变体,这在中文拼写检查任务中被广泛使用。我们也将这个混淆集开放,供未来中文拼写检查研究使用。

测试数据集

SIGHAN Bake-off 2013: 链接

SIGHAN Bake-off 2014: 链接

SIGHAN Bake-off 2015: 链接

注意: 上述所有数据集最初是用繁体中文编写的。考虑到我们生成的数据集是简体中文,因此我们已将原始数据集翻译成简体中文版本,可以在Data文件夹中找到。

我们用来将繁体中文转换为简体中文的工具是OpenCC

引用

如果您觉得该实现有用,请引用以下论文:

《一种混合方法用于中文拼写检查的自动语料生成》

bibtex 复制代码
@InProceedings{Reimers:2018:EMNLP,
  author    = {DingminWang, Yan Song, Jing Li, Jialong Han, Haisong Zhang},
  title     = {{A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check}},
  booktitle = {Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing (EMNLP)},
  month     = {11},
  year      = {2018},
  address   = {Brussels, Belgium},
}

联系方式

如有任何问题,请通过电子邮件联系我(Dingmin Wang):wangdimmy (AT) gmail.com

参考资料

https://github.com/wdimmy/Automatic-Corpus-Generation/blob/master/README.md

相关推荐
全栈老实人_1 小时前
考研互学互助系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven
天天进步20151 小时前
Java全栈项目实战:校园报修服务系统
java·开发语言
Themberfue1 小时前
Java 网络原理 ①-IO多路复用 || 自定义协议 || XML || JSON
xml·java·开发语言·网络·计算机网络·json
wm10431 小时前
JavaEE 3大组件 Listener Servlet Filter
java·servlet·java-ee
疯一样的码农2 小时前
基于Spring Boot + Vue3实现的在线商品竞拍管理系统源码+文档
java·spring boot·后端
m0_748251353 小时前
【SpringBoot】日志文件
java·spring boot·spring
m0_748234713 小时前
Java-33 深入浅出 Spring - FactoryBean 和 BeanFactory BeanPostProcessor
java·开发语言·spring
知初~3 小时前
java相关学习文档或网站整理
java·开发语言·学习
码农小灰3 小时前
什么是缓存穿透、缓存击穿、缓存雪崩,在项目中是如何解决和预防?它们分别会带来什么危害?
java·缓存
a栋栋栋3 小时前
apifox
java·前端·javascript