0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

文本纠错是自然语言处理的第一道坎

深度学习自然语言处理 来源:老刘说NLP 作者:刘焕勇 2022-03-30 16:10 次阅读

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

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

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及相应的校对结果。校对结果中每处错误需包含错误位置、错误类型、错误字词及正确字词,每处错误及多处错误间均以英文逗号分隔。

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

举例如下:

4a78cab4-afe8-11ec-aa7f-dac502259ad0.png

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

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

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

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

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

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

4a96feb2-afe8-11ec-aa7f-dac502259ad0.png

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

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

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

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

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

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

例子如下;

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

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

4ab07766-afe8-11ec-aa7f-dac502259ad0.png

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

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

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

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

defgenerate_edit_two(str):
"""
给定一个字符串,生成编辑距离不大于2的字符串
"""
return[e2fore1ingenerate_edit_one(str)fore2ingenerate_edit_one(e1)ife2invocab]
print('给定一个字符串,生成编辑距离为1的字符串','
',generate_edit_one('apple'))
print('给定一个字符串,生成编辑距离不大于2的字符串','
',generate_edit_two("apple"))

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

4ac4e7a0-afe8-11ec-aa7f-dac502259ad0.png


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2484

    浏览量

    46530
  • 文本
    +关注

    关注

    0

    文章

    118

    浏览量

    16922
  • 自然语言处理

    关注

    1

    文章

    509

    浏览量

    13102

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

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    自然语言处理的研究内容

    自然语言处理(NLP)的最新发展改变了我们与AI系统的交互方式: 1. 预训练模型:像 GPT-3 这样的模型已经进步,使人工智能能够在聊天机器人和虚拟助手中生成更连贯的上下文感知响应。 2.
    的头像 发表于 01-18 16:39 203次阅读

    2023年科技圈热词“大语言模型”,与自然语言处理有何关系

    电子发烧友网报道(文/李弯弯)大语言模型(LLM)是基于海量文本数据训练的深度学习模型。它不仅能够生成自然语言文本,还能够深入理解文本含义,
    的头像 发表于 01-02 09:28 1391次阅读

    硬件加速自然语言理解解决方案

    电子发烧友网站提供《硬件加速自然语言理解解决方案.pdf》资料免费下载
    发表于 09-13 10:45 0次下载
    硬件加速<b class='flag-5'>自然语言</b>理解解决方案

    自然语言处理和人工智能的区别

      自然语言处理(Natural Language Processing,NLP)是人工智能(AI)中的一个分支,它利用计算机技术对自然语言进行处理,使得电脑能够理解和操作人类
    发表于 08-28 17:32 933次阅读

    自然语言处理和人工智能的概念及发展史 自然语言处理和人工智能的区别

    自然语言处理(Natural Language Processing, NLP)的定义是通过电脑软件程序实现人们日常语言的机器自动处理。为了帮助计算机理解,掌握
    发表于 08-23 18:22 532次阅读

    自然语言处理的概念和应用 自然语言处理属于人工智能吗

      自然语言处理(Natural Language Processing)是一种人工智能技术,它是研究自然语言与计算机之间的交互和通信的一门学科。自然语言
    发表于 08-23 17:31 854次阅读

    自然语言处理的优缺点有哪些 自然语言处理包括哪些内容

    自然语言处理(Natural Language Processing)是一种人工智能的技术及领域,它致力于让计算机理解及处理人类语言。它可以帮助计算机对人类
    发表于 08-23 17:26 2573次阅读

    自然语言理解问答对话文本数据,赋予计算机智能交流的能力

    自然语言理解(Natural Language Understanding,简称NLU)问答对话文本数据是现代人工智能领域的一项重要资源。这些数据集涵盖了用户与计算机之间的自然语言交互,旨在让计算机
    的头像 发表于 08-07 18:11 416次阅读

    自然语言处理包括哪些内容 自然语言处理技术包括哪些

    自然语言处理(Natural Language Processing, NLP)一般包括以下内容: 语音识别(Speech Recognition):将人类语言转换为计算机可以理解的形式。 语音合成
    的头像 发表于 08-03 16:22 3917次阅读

    PyTorch教程-16.7。自然语言推理:微调 BERT

    节)。现在我们通过微调 BERT 重新审视这个任务。正如16.6 节所讨论的 ,自然语言推理是一个序列级文本对分类问题,微调 BERT 只需要一个额外的基于 MLP 的架构,如图
    的头像 发表于 06-05 15:44 1000次阅读
    PyTorch教程-16.7。<b class='flag-5'>自然语言</b>推理:微调 BERT

    PyTorch教程-16.4。自然语言推理和数据集

    从另一个句子推断出来,或者通过识别语义等同的句子来消除冗余时,知道如何对一个文本序列进行分类是不够的。相反,我们需要能够对成对的文本序列进行推理。 16.4.1。自然语言推理¶ 自然语
    的头像 发表于 06-05 15:44 337次阅读

    PyTorch教程-16.5。自然语言推理:使用注意力

    16.5。自然语言推理:使用注意力¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab
    的头像 发表于 06-05 15:44 344次阅读
    PyTorch教程-16.5。<b class='flag-5'>自然语言</b>推理:使用注意力

    PyTorch教程16.4之自然语言推理和数据集

    电子发烧友网站提供《PyTorch教程16.4之自然语言推理和数据集.pdf》资料免费下载
    发表于 06-05 10:57 0次下载
    PyTorch教程16.4之<b class='flag-5'>自然语言</b>推理和数据集

    PyTorch教程16.7之自然语言推理:微调BERT

    电子发烧友网站提供《PyTorch教程16.7之自然语言推理:微调BERT.pdf》资料免费下载
    发表于 06-05 10:52 0次下载
    PyTorch教程16.7之<b class='flag-5'>自然语言</b>推理:微调BERT

    PyTorch教程16.5之自然语言推理:使用注意力

    电子发烧友网站提供《PyTorch教程16.5之自然语言推理:使用注意力.pdf》资料免费下载
    发表于 06-05 10:49 0次下载
    PyTorch教程16.5之<b class='flag-5'>自然语言</b>推理:使用注意力