写点什么

百度中文纠错技术

  • 2019-04-23
  • 本文字数:4098 字

    阅读完需:约 13 分钟

百度中文纠错技术

一. 纠错技术概述

语言是复杂的。每一门语言都经历了几百年,甚至几千年的长期演变和发展,形成了一套复杂的文法和句法规则。这些文法和句法规则复杂多变,例如一些词或者短语存在多音、多意、多用等现象,对语言的使用者提出了较高的要求;一旦语言使用者对语言掌握不够或者粗心大意时,则很容易发生用词不当、张冠李戴等错误。虽然这些错误看起来微不足道,但正所谓“差之毫厘,谬以千里”,特别是在某些场景(比如外交场合),即使很小的语言错误也可能带来非常恶劣的影响。


自然语言处理常见的任务包括词法分析,句法分析,语义计算等,这些任务要取得理想的结果,输入数据的准确性是基本前提,因此从 NLP 的整体技术角度来说,文本纠错起着保驾护航的作用。



纠错技术相对于词法分析,句法分析等受到的关注一直较小,一方面是因为文本出错的比例比较小,在一些重要场合,也有专门人员进行校验;另一方面本身问题也相对较难,其要求计算机对语言规则以及文本语义有深刻的理解。在 2000 年以前,业界主要依靠长期积累的纠错规则和纠错词典来进行纠错,比如微软的文档编辑产品 WORD 即采用这种方法。随着机器学习技术的发展,纠错问题受到了学术界和工业界越来越多的关注,其中有两大主流方法:一种解决思路是将语言错误归类,然后采用 Maxent、SVM 等分类方法对这些类别进行重点识别;另外一种思路是借鉴统计机器翻译(SMT)的思想,将语言纠错等价为机器翻译的过程,即错误文本翻译为正确文本,并随之出现了一系列的优化方法。最近几年,随着神经机器翻译(NMT)技术的快速发展,人们逐步将 SMT 与 NMT 技术结合起来解决纠错问题。最近几年中文纠错的研究也得到较多的关注和发展,并陆续举办了几届中文纠错评测,例如 CGED 与 NLPCC 等。



目前,基于机器翻译的方法已经成为文本纠错的主流技术,主要思想是把纠错看成同种语言中错误句子翻译为正确句子的过程,如上图中的公式所示,其核心由语言模型和翻译模型组成。语言模型学习语言规则、语言知识;翻译模型从平行语料中学习用户的纠错行为。SMT 纠错一般的典型做法:首先基于平行语料训练对齐模型,得到多粒度(字、词、音、形、短语)的混淆矩阵(Phrase Table);针对具体的纠错实例,基于句子中的错误点从 Phrase Table 中召回可能的正确候选,然后基于句子语义理解,对这些纠错候选进行排序,从而得到正确的结果。


而 NMT 方法主要依赖于大规模的监督语料,忽略掉中间的各种步骤,直接实现端到端的学习。NMT 方法相对于 SMT 方法的优势在于避免了 SMT 每一步过程中导致的错误传递,同时具有更强大的学习能力。

二. 百度中文纠错

▪ 技术背景


近年来,随着新媒体行业的快速发展,中国自媒体从业人数逐年增长,至 2017 年有近 260 万。但是相对于传统媒体,其缺少人工校稿环节,编辑好的文章即刻发表,导致文章的错误比例较高。比如一些新媒体平台的正文错误率在 2%以上,标题错误率在 1%左右。同时,语音智能硬件产品的兴起,也暴露出语音识别技术的错误率高企问题,在某些场景语音识别中,错误率可能达到 8%-10%,影响了后续的 query 理解及对话效果。因此研发优质的中文纠错技术,便成为了必须。


▪ 技术目标


为了满足以上的需求,百度中文纠错一方面需要支持多种类型的错误识别,另一方面需要支持不同模态的输入数据,同时还需要提供快速的场景迁移以及深度定制能力。



我们把中文常见错误总结分为三类:


  1. 用词错误,由于输入法等原因导致的选词错误,其主要表现为音近,形近等;

  2. 文法/句法错误,该类错误主要是由于对语言不熟悉导致的如多字、少字、乱序等错误,其错误片段相对较大;

  3. 知识类错误,该类错误可能由于对某些知识不熟悉导致的错误,要解决该类问题,通常得引入外部知识、常识等。



▪ 整体架构


百度中文纠错的整体架构如下图所示。整体上,将纠错流程,分解为错误检测、候选召回、纠错排序三个关键步骤。通过引入语言知识、上下文理解和知识计算的核心技术,提升不同类型错误的解决能力。最后,支持 SMT based 和 NMT based 两套 Framework,形成完整的系统架构。下面分别进行详细介绍。



▪ 关键步骤(错误检测->候选召回->纠错排序)


错误检测的目标是识别输入句子可能存在的问题,采用序列表示(Transformer/LSTM)+CRF 的序列预测模型,这个模型的创新点主要包括:


  1. 词法/句法分析等语言先验知识的充分应用;

  2. 特征设计方面,除了 DNN 相关这种泛化能力比较强的特征,还结合了大量 hard 统计特征,既充分利用 DNN 模型的泛化能力,又对低频与 OOV(Out of Vocabulary)有一定的区分;

  3. 最后,根据字粒度和词粒度各自的特点,在模型中对其进行融合,解决词对齐的问题。



候选召回指的是,识别出具体的错误点之后,需要进行错误纠正,为了达到更好的效果以及性能,需要结合历史错误行为,以及音形等特征召回纠错候选。主要可分为两部分工作:离线的候选挖掘,在线的候选预排序。离线候选挖掘利用大规模多来源的错误对齐语料,通过对其模型,得到不同粒度的错误混淆矩阵。在线候选预排序主要是针对当前的错误点,对离线召回的大量纠错候选,结合语言模型以及错误混淆矩阵的特征,控制进入纠错排序阶段的候选集数量与质量。



纠错排序解决的是,由于纠错的正确结果具有唯一性,如何在召回的纠错候选中将正确的结果排在第一位。百度中文纠错采用的是 Deep&Wide 的混合模型结构,Deep 部分学习当前错误点上下文表示,Wide 部分基于形音、词法、语义、用户行为等特征学习原词与候选词的多维度距离表示,另外通过 GBDT&LR 模型学习到更好的特征组合。



▪ 核心技术(语言知识->上下文理解->知识计算)


中文纠错需要在错误检测、候选召回、纠错排序的策略层面上取得较好效果,最关键的因素仍然在于解决最基本的自然语言处理问题:语言知识、上下文理解、知识计算。语言知识完成对语言规则的学习,对语言结构的理解,具体包括词法分析、句法分析以及语言模型;上下文理解是指需要理解错误点上下文所表示的内容或语义,百度中文纠错主要通过 Contextual-DNN 模型来学习,并通过 AOA attention 机制解决长依赖问题,帮助错误纠正。知识计算方面,从知识(客观规律)的维度考虑问题,重点是做好文本理解与知识关联。



语言知识方面,词/句法分析不详细展开,主要介绍语言模型的训练和使用。传统的语言模型,主要是根据前面一串词预测下一个词的概率,直接应用于纠错的主要问题在于忽略了原词的信息。因此,我们提出了一种受限词表的语言模型,该受限词表基于原词生成,通过基于受限词表的训练和预测,能够对易错词进行更好的区分,具体例子如下图所示。



关联知识方面,看下图中的例子“邓论因档期问题提出爸爸去哪儿”,可以通过原始错误标题在标准语料中基于检索(IR)或者上下文 context Memory 的方式,补充到大量同原始标题相关的精准局部知识。利用这些精准的局部知识来辅助纠错排序。



文本理解方面,以用户与智能音箱的交互句子“小度小度,请帮我导航到深圳市学府路百度国籍大厦”为例,可能会出现低频的道路或 POI,如果采用统计得到的语言模型来纠错而不去理解句子表达的内容,显然是不恰当的。需要从全局理解句子内容以及理解句子的每个成分,解决低频领域知识的泛化问题。具体做法是通过对文本进行语义分析得到语义特征,应用到纠错排序模型中,得到更好的纠错结果。



▪ 系统框架


中文纠错在策略层面涉及错误检测、候选召回、纠错排序,核心技术层面涉及语言知识、上下文理解、知识计算,那如何来构建一个完整的中文纠错系统呢?百度的中文纠错系统支持两种纠错系统框架:ECNet 和 Restricted-V NEC。ECNet 系统把纠错任务分成很多步骤、多个模型,每个模型解决具体的特定问题,然后通过 Pipeline 的方式串联,得到最后结果;这种方式的优点在于方便分析问题,能够针对各个问题进行重点突破,但是也存在两个明显问题:


  1. 错误逐级传递;

  2. 每个模型单独学习,模型之间知识无法共享。Restricted-V NEC 系统则采用端到端的学习、联合优化,单个模型就能完成纠错任务。



三. 纠错应用

▪ 开放域纠错


开放域纠错没有场景限制,支持多模态输入,可以是文本或者语音,不同的输入形式对应不同的混淆矩阵。整个纠错过程包含错误检测、候选召回、纠错排序和序列解码,支持多种类型的错误纠正。开放域纠错的典型应用场景比如写作辅助和内容审核。


写作辅助:在用户编辑文章的过程中,纠错服务能够及时发现用户错误行为,提升内容创作者的创作质量和效率。


内容审核:对于完稿的文章,纠错服务会对其标题和内容进行错误检测,由专业人员进行二次审核,保证文章质量,提升用户的阅读体验。



▪ 场景纠错


场景纠错,与开放域纠错的主要区别在于领域知识的使用,场景纠错除了做好语言规则的刻画和上下文理解外,还需要对场景中的领域知识有充分的学习。场景纠错的重点是针对输入数据做文本的理解、基于场景语料获取关联知识、基于大规模语料学习语言规则。场景纠错的应用点比如地图检索和语音对话。


在地图检索业务中,通过充分利用 POI、位置距离特征及文本理解进行场景纠错,可以协助用户更好的找到目的地,改善用户体验。另一个场景纠错的应用场景是语音产品,语音的内容应该与当前环境场景相吻合,基于文本理解进行纠错。



▪ 纠错开放平台


百度中文纠错基于百度十几年在自然语言处理领域的技术积累,并有效融合了丰富的各类知识库、文本理解等特征,通过互联网用户行为挖掘海量训练样本,结合树模型和神经网络模型的优势,保证了对海量数据的高效利用,因此,百度中文纠错具有算法识别精度高、效果稳定性强的特点。


以上技术特色已通过百度 AI 中文纠错平台对外开放,支持短文本、长文本、语音识别结果等多种文本内容,在搜索引擎、人机对话、语音识别、内容审核等方面有广泛的应用,能显著提高这些场景下的语义准确性和用户体验,欢迎了解和试用。


作者介绍:


付志宏,百度资深研发工程师。硕士毕业于浙江大学,百度自然语言处理部资深研发工程师,从事 NLP 相关工作多年,具有丰富的 NLP 实践经验和扎实的理论基础。目前主要负责 NLP 基础技术以及文本质量等相关技术研究,其中重点包括分词,改写,纠错,以及文本质量计算等。


本文来自 付志宏 在 DataFun 社区的演讲,由 DataFun 编辑整理。


2019-04-23 08:008011

评论

发布
暂无评论
发现更多内容

润开鸿“龙芯+OpenHarmony”开发平台DAYU431先锋派新品发布

坚果

OpenHarmony 润开鸿

云手机:海外社媒运营必备工具

Ogcloud

云手机 海外云手机 云手机海外版 云手机群控 海外社媒运营

VideoProc Converter 4K for mac(一站式视频处理软件) v6.5中文版

Mac相关知识分享

Mac软件 视频处理软件

JavaScript 字符串方法,让开发者生活更轻松

伤感汤姆布利柏

WiFi 7 IPQ5332 vs. WiFi 6 IPQ6010: A Comprehensive Comparison

wifi6-yiyi

WiFi7

数据复盘“黑色星期一”:加密市场震荡,代币表现如何?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

腾讯云大数据 TBDS 参编信通院《数据库发展研究报告》,引领数据湖仓创新

腾讯云大数据

TBDS

c#12 实验特性Interceptor如何使用的一个简单但完整的示例

EquatorCoco

C# 开发语言

官宣|Apache Flink 1.20 发布公告

Apache Flink

flink 实时计算 官宣

ai做ppt的工具哪个好?盘点8个好用的AIPPT生成软件!

彭宏豪95

效率工具 职场 PPT 办公软件 AI生成PPT

一文全面了解HPC高性能计算平台是什么、怎么选型?高性能计算平台CHPC 都能做什么?

XxinQi

从一个服务预热不生效问题谈微服务无损上线

阿里巴巴云原生

阿里云 微服务 云原生

广汽集团与火山引擎签署战略合作协议

新消费日报

Golang 策略设计模式

俞凡

架构 设计模式

国际化战略:京东商品详情API的全球视野

技术冰糖葫芦

api 货币化 API 接口 API 文档 API 测试

最佳实践:解读GaussDB(DWS) 统计信息自动收集方案

华为云开发者联盟

大数据 GaussDB(DWS) 企业号 8 月 PK 榜 2024企业号8月pk 实时查询

构建数据中台,引领零售业数字化转型的最佳实践

数造万象

数据中台 零售 数字化 数据智能 实践案例

Java RMI技术详解与案例分析

不在线第一只蜗牛

Java

AI 点燃体育热情!使用 PAI-Artlab 定制专属海报

阿里云大数据AI技术

人工智能 奥运会 AIGC 文生图 PAI

将数据库系统实践转向 AI:使用生成式 AI 创建高效的开发和维护实践

哦豁完蛋了

AI Codec

天翼云HBlock有奖众测活动 在线邀请存储Geek玩转轻量存储

InfoQ写作社区官方

热门活动 礼品 活动推荐 天翼云

私网环境下如何使用云效流水线进行 CI/CD?

阿里云云效

阿里云 云原生 云效

代理IP如何助力品牌保护?

IPIDEA全球HTTP

品牌 代理IP

重磅!观测云荣获SOC 2 Type II鉴证报告

观测云

安全合规

解锁亚马逊商品数据:API获取商品列表信息

tbapi

亚马逊API 亚马逊商品数据采集 亚马逊商品列表接口

2024 年 7 月区块链游戏研报:市场波动与数据分化的挑战与机遇

Footprint Analytics

链游

给我5分钟,保证教会你在vue3中动态加载远程组件

EquatorCoco

Vue 动态加载

打卡智能中国(八):“水花消失术”的AI秘籍

脑极体

AI

私网环境下如何使用云效流水线进行 CI/CD?

阿里巴巴云原生

阿里云 云原生 云效

免费一站式搭建企业云上数据库与BI 数据可视化分析平台

XxinQi

腾讯云 ES 之日志分析新范式:10 倍性价比提升!基于 ES Serverless 完成审计日志溯源

腾讯云大数据

ES

百度中文纠错技术_语言 & 开发_DataFunTalk_InfoQ精选文章