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

相关推荐
yxlalm5 小时前
Spring AI+RAG 01-项目背景与技术选型
java·人工智能·spring
程序员清风6 小时前
Java 后端高并发设计:线程池、限流、熔断与降级
java·数据库·oracle
Seoyoneh7 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
海南java第二人7 小时前
对外 API 如何保证幂等性?插入数据 / 上传表格场景全方案汇总
java·幂等性
tryxr7 小时前
Chat2Excel 文件服务模块上传文件功能开发
java·项目·oss·easyexcel·文件服务
Tangyuewei7 小时前
Java 写 Agent:模型只是组件
java·开发语言
彧azz8 小时前
Java学习语法篇:变量
java·学习
信誓旦旦的程序猿9 小时前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
yurenpai(27届找实习中)9 小时前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
Flynt10 小时前
把公司项目迁到 Spring Boot 4.0:编译通过只是开始
java·spring boot·后端