NLP纠错 | 恶意短信变体字还原、鲁棒性过滤与文本纠错竞赛概述与简单变体实现...

每天给你送来NLP技术干货!


来自:老刘说NLP

作者:刘焕勇

文本纠错是自然语言处理的一个重要任务,也是文本处理的第一道坎,一个错误的文本表述可能会引起后续语义的错误表达,并对后续的效果产生影响。

例如,以常见的输入错误为例,十分丰富多彩,常见错误类型包括:

1、少字:微信跳一 -> 微信跳一跳  
2、多字:微信跳一跳跳 -> 微信跳一跳  
3、错字:微信 挑一挑 -> 微信跳一跳  
4、拼音:tiaoyitiao -> 跳一跳  
5、中英文混拼:held住 -> hold住  
6、中文拼音混拼:跳yi跳 -> 跳一跳  
7、知识错误:南山平安金融中心 -> 福田平安金融中心  
8、音转:灰机 -> 飞机  
9、谐音字词,如 配副眼睛-配副眼镜  
10、混淆音字词,如 流浪织女-牛郎织女  
11、字词顺序颠倒,如 伍迪艾伦-艾伦伍迪    
12、字词补全,如 爱有天意-假如爱有天意  
13、形似字错误,如 高梁-高粱  
14、中文拼音全拼,如 xingfu-幸福  
15、中文拼音缩写,如 sz-深圳

而这些错误又可以进一步区分为有意或者无意两种,无有意的错误可能是为了反识别或者恶意营销等灰色产业服务。

因此,文本纠错这块就有诸多应用场景。

例如,写作辅助上,在内容写作平台上内嵌纠错模块,可在作者写作时自动检查并提示错别字情况。从而降低因疏忽导致的错误表述,有效提升作者的文章写作质量,同时给用户更好的阅读体验。

又如,搜索纠错上,用户经常在搜索时输入错误,通过分析搜索query的形式和特征,可自动纠正搜索query并提示用户,进而给出更符合用户需求的搜索结果,有效屏蔽错别字对用户真实需求的影响。

再如,语音识别对话纠错上,将文本纠错嵌入对话系统中,可自动修正语音识别转文本过程中的错别字,向对话理解系统传递纠错后的正确query,能明显提高语音识别准确率,使产品整体体验更佳。

而就技术而言,实际上可以对应的变成变体或者错误体的生成以及还原两者,前者研究如何快速生成尽可能丰富的变体,后者研究如何返回正确的文本,十分有趣。

因此,本文主要围绕NLP纠错技术,做第一篇论述,从工业场景中的文本纠错、鲁棒性过滤以及恶意短信变体字还原大赛三个比赛进行介绍,并使用最简单的编辑距离操作生成变体,供大家一起参考。

一、自然语言处理技术创新大赛—中文文本纠错比赛

赛题背景: 文本校对任务主要是针对文本中出现的错误进行检测和纠正,属于综合性的自然语言处理研究子方向,能够比较全面体现了自然语言处理的技术水平。过往文本校对相关评测使用的都是外国语言学习者撰写的文本,这些文本的错误大多数都是一些中文母语写作者不会犯的一些错误。

对于政务公文、新闻出版等行业来说,一款针对以中文为母语的用户所使用的校对系统将会有更大的帮助。因此,本赛题主要选择互联网上中文母语写作者撰写的网络文本作为校对评测数据,从拼写错误、语法错误、语病错误等多个方面考察机器的认知智能能力。

赛题任务: 赛题选择网络文本作为校对数据,从中检测并纠正错误,实现中文文本校对系统。即给定一段文本,校对系统从中检测出错误字词、错误类型,并进行纠正。具体的输入、输出及错误类型为:

输入:输入文件包含若干行文本,每行文本对应句子ID和相应的待校对句。

输出:输出文件每行对应句子ID及相应的校对结果。校对结果中每处错误需包含错误位置、错误类型、错误字词及正确字词,每处错误及多处错误间均以英文逗号分隔。

错误类型:拼写错误,包括别字及别词;语法错误,包括冗余、缺失、乱序;语病错误,包括语义重复及句式杂糅。

举例如下:

f54b6892dfc186aa7c88a289679db29f.png

地址:https://2021aichina.caai.cn/track?id=5

二、中国人工智能大赛鲁棒性过滤算法

第三届中国人工智能大赛,重点聚焦算法治理、深度伪造音视频检测、网络安全等方向,希望以竞赛方式解决现实场景中需求问题。

赛题背景:构建鲁棒的过滤算法在网络空间内容治理领域具有重要的实际价值。信息产生、获取、消费等环节的算法鲁棒性欠缺,会严重影响正常的社会秩序。因此,算法鲁棒性在算法安全治理中属于非常重要的指标。

在信息生成和获取的环节,过滤算法扮演着安全护卫的作用,把守网络信息安全的第一关。过滤算法是指将用户产生的特定信息进行自动识别和过滤的算法。目前,特定信息变换各种形式出现在互联网中,这对于现有的过滤算法无疑是一个挑战。

例如,中国人工智能大赛鲁棒性过滤算法赛道过滤出了这样一道赛题:

133f5aaf00ce45d74dd3d1519966d163.png

赛题任务:主办方将收集上千条含特定信息和同比例正常信息的短文本,用以评价选手的过滤模型。测试文本根据所包含特定信息的变种难度不同设置相应的难度分数。本赛题将以参赛选手过滤模型识别出的特定信息样本以及该样本对应难度的积作为主要评价指标。

地址:https://ai.xm.gov.cn/competition/project-detail.html?id=e813904b755a439da1a6c5749bcf9b60&competeId=a8e0c40dbb2347fba8b3c9a6294efa5b

三、面向黑灰产治理的恶意短信变体字还原

赛题背景: 恶意短信一直是黑灰产引流的重要渠道,信息中携带的微信号、QQ号、网址更是非法信息传播的主要入口,业界通常做法是利用违法或不良信息检测引擎在手机终端实现自动拦截。然而不法分子为逃避检测,通过使用变体字发送恶意短信绕过拦截规则的情况越来越多。

由于变体字变换方式多,变换速度快,单纯通过规则进行变体词发现的效果有限,配套人工审核成本高且具有滞后性。如何精准和高效地还原变体字文本,提高非法信息的抽取能力,以及新型变体字还原的泛化性和时效性,就成为了解决这一难题的“关键之钥”。

赛题任务: 参赛团队通过设计算法,实现对恶意短信中变体字的还原。参赛团队需要对训练集中的短信样本进行分析,采用深度学习建模的方法将测试集中新出现的短信变体字还原为正常信息文本,即不含有变体字、干扰字符,所有变体字部分应使用常见简体汉字、字符来表示,同时需要保证不包含变体字的正常文本不受影响。

例子如下;

变体句子: 噂儆的碦戸:其鎃祝册茺贈镐888葒笣!禛朲对弈佰捆任你選!嶺:http://url.cn/5aLeqP2

还原后: 尊敬的客户:棋牌注册充赠高888红包!真人对弈百款任你选!领:url.cn5aLeqP2

afe7c550fe6397aac50daf448ef169b2.png

地址:https://beta-www.datafountain.cn/competitions/508

四、基于编辑距离生成变体小测试

实际上,基于编辑距离来生成的变体是最快速且简单的方式,下面做了一个快速实现:

#  词典库
vocab = set([line.rstrip() for line in open('vocab.txt')])
# print(vocab)
#  生成所有的候选集合
def generate_edit_one(word):
    """
    # 假设使用26个字符
    letters = 'abcdefghijklmnopqrstuvwxyz'
    splits = [(word[:i],word[i:]) for i in range(len(word)+1)]
    # inserts操作
    inserts = [L+c+R for L,R in splits for c in letters]
    # delete操作
    deletes = [L+R[1:]for L,R in splits if R]
    # replace操作
    replaces = [L+c+R[1:]for L,R in splits if R for c in letters]
    candidates = set(inserts + deletes + replaces)
    # 过滤掉不存在词典库里的单词
    return [word for word in candidates if word in vocab]

def generate_edit_two(str):
    """
    给定一个字符串,生成编辑距离不大于2的字符串
    """
    return [e2 for e1 in generate_edit_one(str) for e2 in generate_edit_one(e1) if e2 in vocab]
print('给定一个字符串,生成编辑距离为1的字符串','\n',generate_edit_one('apple'))
print ('给定一个字符串,生成编辑距离不大于2的字符串','\n',generate_edit_two("apple"))

执行后,我们可以产生如下变体结果:

469c608729fc3251a039b65a2745033e.png

参考文献与开源数据集

1、https://blog.csdn.net/weixin_45422335/article/details/105638224
2、https://github.com/destwang/CTC2021
3、CGED历年公开数据集:http://www.cged.tech/
4、NLPCC2018语法纠错数据集:http://tcci.ccf.org.cn/conference/2018/taskdata.php
5、SIGHAN及相关训练集:http://ir.itc.ntnu.edu.tw/lre/sighan8csc.html

最近文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型,刷新了14种数据集并达到新SoTA

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果


下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!  后台回复【五件套】
下载二:南大模式识别PPT  后台回复【南大模式识别】

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

7f18e7e48e0d8043ffd9e6ff9afa61c9.png

记得备注呦

整理不易,还望给个在看!
### 自然语言处理中文本纠错的核心概念及其联系 自然语言处理(NLP)作为计算机科学人工智能的重要分支,其目标在于使计算机能够理解、生成和处理人类语言[^1]。在这一领域中,文本纠错是一项关键技术,主要涉及拼写纠错、语法纠错和语义纠错三个核心方面[^3]。 #### 拼写纠错 拼写纠错的目标是识别并修正文本中的拼写错误。常见的方法包括基于编辑距离的算法(如Levenshtein距离),通过计算两个单词之间的差异来判断候选替换词的可能性。此外,统计模型也可以用于评估不同候选项的概率分布,从而选出最有可能的正确词语。 #### 语法纠错 语法纠错关注于检测和修复句法结构上的偏差或不合规之处。这通常依赖于形式化的语法规则或者机器学习模型来进行分析。例如,可以利用依存关系解析器找出句子成分之间是否存在逻辑矛盾,并据此提出改进建议。 #### 语义纠错 不同于前两者仅限于表层的语言单位操作,语义纠错更侧重于深层次的意义表达准确性。它涉及到上下文的理解能力以及对特定领域知识的应用。深度神经网络特别是Transformer架构下的预训练模型(如BERT),因其强大的特征提取能力和泛化性能,在这方面展现出了显著优势。 上述三种类型的纠错并非孤立存在而是相互关联紧密的整体解决方案组成部分。它们共同构成了完整的文本质量提升流程:从基础层面纠正明显的字形失误到更高阶别的结构性重组直至最终确保整体叙述连贯合理无歧义[^2]。 下面展示了一个简单Python代码片段用来演示如何将一段英文字符串全部转成小写字母的形式以初步简化后续复杂的语言学运算过程: ```python text = "Hello World" cleaned_text = text.lower() print(cleaned_text) # 输出:hello world ``` 值得注意的是这种变换虽然有助于减少词汇变体数量却也可能带来副作用比如对于某些特殊场合像德语当中专有名词首字母必须保持大写的规则如果一律改为小写就可能会破坏原始信息含义因此实际应用时应当考虑具体情境做出适当调整[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值