The Wayback Machine - https://web.archive.org/web/20221028224451/https://baike.sogou.com/kexue/d11207.htm
自然语言处理

自然语言处理(Natural Language Processing,NLP)是指让计算机接受用户自然语言形式的输入,并在内部通过人类所定义的算法进行加工、计算等系列操作,以模拟人类对自然语言的理解,并返回用户所期望的结果。自然语言处理的目的在于用计算机代替人工来处理大规模的自然语言信息。在很大程度上与计算语言学(Computational Linguistics,CL)重合,是计算机科学与语言学的交叉学科,也是人工智能的重要方向。自然语言处理的研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。让计算机能够确切理解人类的语言,并自然地与人进行交互是NLP的最终目标。

自然语言处理的挑战通常涉及语音识别、自然语言理解和自然语言生成。

1 基本介绍编辑

自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系,但又有重要的区别。自然语言处理并不是一般地研究自然语言,而在于研制能有效地实现自然语言通信的计算机系统,特别是其中的软件系统。因而它是计算机科学的一部分。

1.1 领域划分

  • 【文本检索】:多用于大规模数据的检索,典型的应用有搜索引擎
  • 【机器翻译】:跨语种翻译,该领域目前已较为成熟。目前谷歌翻译已用上机翻技术
  • 【文本分类/情感分析】:本质上就是个分类问题。目前也较为成熟,难点在于多标签分类(即一个文本对应多个标签,把这些标签全部找到)以及细粒度分类(二极情感分类精度很高,即好中差三类,而五级情感分类精度仍然较低,即好、较好、中、较差、差)
  • 【信息抽取】:从不规则文本中抽取想要的信息,包括命名实体识别、关系抽取、事件抽取等。应用极广。
  • 【序列标注】:给文本中的每一个字/词打上相应的标签。是大多数NLP底层技术的核心,如分词、词性标注、关键词抽取、命名实体识别、语义角色标注等等。曾是HMM、CRF的天下,近年来逐步稳定为BiLSTM-CRF体系。
  • 【文本摘要】:从给定的文本中,聚焦到最核心的部分,自动生成摘要。
  • 【问答系统】:接受用户以自然语言表达的问题,并返回以自然语言表达的回答。常见形式为检索式、抽取式和生成式三种。近年来交互式也逐渐受到关注。典型应用有智能客服
  • 【对话系统】:与问答系统有许多相通之处,区别在于问答系统旨在直接给出精准回答,回答是否口语化不在主要考虑范围内;而对话系统旨在以口语化的自然语言对话的方式解决用户问题。对话系统目前分闲聊式和任务导向型。前者主要应用有siri、小冰等;后者主要应用有车载聊天机器人。(对话系统和问答系统应该是最接近NLP终极目标的领域)
  • 【知识图谱】:从规则或不规则的文本中提取结构化的信息,并以可视化的形式将实体间以何种方式联系表现出来。图谱本身不具有应用意义,建立在图谱基础上的知识检索、知识推理、知识发现才是知识图谱的研究方向
  • 【文本聚类】:一个古老的领域,但现在仍未研究透彻。从大规模文本数据中自动发现规律。核心在于如何表示文本以及如何度量文本之间的距离。[1]

1.2 基础技术

  • 分词:基本算是所有NLP任务中最底层的技术。不论解决什么问题,分词永远是第一步
  • 词性标注:判断文本中的词的词性(名词、动词、形容词等等),一般作为额外特征使用
  • 句法分析:分为句法结构分析和依存句法分析两种
  • 词干提取:从单词各种前缀后缀变化、时态变化等变化中还原词干,常见于英文文本处理
  • 命名实体识别:识别并抽取文本中的实体,一般采用BIO形式
  • 指代消歧:文本中的代词,如“他”“这个”等,还原成其所指实体
  • 关键词抽取:提取文本中的关键词,用以表征文本或下游应用
  • 词向量与词嵌入:把单词映射到低维空间中,并保持单词间相互关系不变。是NLP深度学习技术的基础
  • 文本生成:给定特定的文本输入,生成所需要的文本,主要应用于文本摘要、对话系统、机器翻译、问答系统等领域[1]

1.3 常用算法

  • tfidf、BM25、TextRank、HMM、CRF、LSI、主题模型、word2vec、GloVe、LSTM/GRU、CNN、seq2seq、Attention……[1]

2 研究分支编辑

2.1 语言学(linguistics)

语音和文字是语言的两个基本属性。作为一门纯理论的学科,语言学在近期获得了快速发展,尤其从上个世纪60年代起,已经成为一门知晓度很高的广泛教授的学科。包括:历时语言学(diachronic linguistics)或称历史语言学(historical linguistics)、共时语言学(synchronic linguistics)、描述语言学(descriptive linguistics)、对比语言学(contrastive linguistics)、结构语言学(structural linguistics) 等等。

2.2 语音学(phonetics)

研究人类发音特点,特别是语音发音特点,并提出各种语音描述、分类和转写方法的科学。包括: (1)发音语音学(articulatoryphonetics),研究发音器官如何产生语音;(2)声学语音学(acoustic phonetics),研究口耳之间传递语音的物理属性;(3)听觉语音学(auditory phonetics), 研究人通过耳、听觉神经和大脑对语音的知觉反应。

2.3 计算语言学(Computational Linguistics)

通过建立形式化的计算模型来分析、理解和生成自然语言的学科,是人工智能和语言学的分支学科。计算语言学是典型的交叉学科,其研究常常涉及计算机科学、语言学、数学等多个学科的知识。与内容接近的学科自然语言处理相比较,计算语言学更加侧重基础理论和方法的研究。

2.4 自然语言理解(Natural Language Understanding, NLU)

自然语言理解是探索人类自身语言能力和语言思维活动的本质,研究模仿人类语言认知过程的自然语言处理方法和实现技术的一门学科。它是人工智能早期研究的领域之一,是一门在语言学、计算机科学、认知科学、信息论和数学等多学科基础上形成的交叉学科。

2.5 自然语言处理(Natural Language Processing, NLP)

自然语言处理是研究如何利用计算机技术对语言文本(句子、篇章或话语等)进行处理和加工的一门学科,研究内容包括对词法、句法、语义和语用等信息的识别、分类、提取、转换和生成等各种处理方法和实现技术。

现在语言大致分为三个不同的语系:

  • 屈折语(fusional language/ inflectional language):用词的形态变化表示语法关系,如英语、法语等。
  • 黏着语(agglutinative language):词内有专门表示语法意义的附加成分,词根或词干与附加成分的结合不紧密,如日语、韩语、土耳其语等。
  • 孤立语(analytic language)(分析语, isolating language):形态变化少,语法关系靠词序和虚词表示,如汉语。

3 研究课题编辑

3.1 机器翻译(Machine translation, MT)

机器翻译研究在过去五十多年的曲折发展经历中,无论是它给人们带来的希望还是失望我们都必须客观地看到,机器翻译作为一个科学问题在被学术界不断深入研究的同时,企业家们已经从市场上获得了相应的利润。在机器翻译研究中实现人机共生(man-machine symbiosis)和人机互助,比追求完全自动的高质量的翻译(Full Automatic High Quality Translation, FAHQT) 更现实、更切合实际[Hutchins, 1995]。

3.2 信息检索(Information retrieval)

信息检索也称情报检索,就是利用计算机系统从大量文档中找到符合用户需要的相关信息。

3.3 自动文摘(Automatic summarization / Automatic abstracting)

将原文档的主要内容或某方面的信息自动提取出来,并形成原文档的摘要或缩写。

3.4 问答系统(Question-answering system)

通过计算机系统对人提出的问题的理解,利用自动推理等手段,在有关知识资源中自动求解答案并做出相应的回答。问答技术有时与语音技术和多模态输入/输出技术,以及人机交互技术等相结合,构成人机对话系统(man-computer dialogue system)。

3.5 信息过滤(Information filtering)

通过计算机系统自动识别和过滤那些满足特定条件的文档信息。

3.6 信息抽取(Information extraction)

从指定文档中或者海量文本中抽取出用户感兴趣的信息。

实体关系抽取(entity relation extraction)。

社会网络(social network)

3.7 文档分类(Document categorization)

文档分类也叫文本自动分类(Text categorization / classification)或信息分类(Information categorization / classification),其目的就是利用计算机系统对大量的文档按照一定的分类标准(例如,根据主题或内容划分等)实现自动归类。

3.8 情感分类(Sentimental classification)

应用:图书管理、情报获取、网络内容监控等。

4 发展阶段编辑

4.1 NLP发源时代

1948年,香农提出信息熵的概念。此时尚未有NLP,但由于熵也是NLP的基石之一,在此也算作是NLP的发展历程。[1]

自然语言处理的历史通常始于20世纪50年代。1950年,艾伦·图灵发表了一篇题为“智能”的文章,提出“图灵测试”,用以检验计算机是否真正拥有智能。[1]

4.2 NLP规则时代

1950-1970年,模拟人类学习语言的习惯,以语法规则为主流。除了参照乔姆斯基文法规则定义的上下文无关文法规则外,NLP领域几乎毫无建树。

1954年的乔治敦实验涉及将60多个俄语句子完全自动翻译成英语。作者声称,三到五年内,机器翻译将是一个解决的问题。[2]然而,实际进展要慢得多,在1966年的《 ALPAC报告》发现十年的研究没有达到预期后,机器翻译的资金急剧减少。直到20世纪80年代末,人们才开始对机器翻译进行进一步的研究,那时才开发出第一个统计机器翻译系统。

一些在20世纪60年代开发的显著成功的自然语言处理系统是SHRDLU ,一种在具有有限词汇的受限“blocks world ”中工作的自然语言系统,和ELIZA ,一种由约瑟夫·维森鲍姆在1964年至1966年间编写的对罗格利亚精神治疗师的模拟。ELIZA几乎没有使用任何关于人类思想或情感的信息,有时提供一种令人吃惊的类似人类的互动。当“病人”超出非常小的知识库时,伊莱扎可能会给出一个通用的回答,例如,用“为什么你说你的头疼”来回答“我的头疼”。

4.3 NLP统计时代

70年代开始统计学派盛行,NLP转向统计方法,此时的核心是以具有马尔科夫性质的模型(包括语言模型,隐马尔可夫模型等)。

在20世纪70年代,许多程序员开始写“概念性的”本体”,它将真实世界的信息结构化成计算机可理解的数据。例子有MARGIE (Schank,1975)、SAM (Cullingford,1978)、PAM (Wilensky,1978)、航空小英雄(Meehan,1976)、QUALM (Lehnert,1977)、Politics (Carbonell,1979)和Plot Units (Lehnert,1981)。在此期间,许多聊天机器人包括挡开,Racter,和含糊不清。

直到20世纪80年代,大多数自然语言处理系统都是基于复杂的手写规则集。然而,从20世纪80年代末开始,随着语言处理的机器学习算法的引入,自然语言处理发生了一场革命。这是由于计算能力的稳步增长(见摩尔定律)和乔姆斯基语言学理论(例如转换语法)的主导地位的逐渐减弱,其理论基础不鼓励作为语言处理机器学习方法基础的那种语料库语言学。[3]一些最早使用的机器学习算法,如决策树,产生了类似于现有手写规则的硬“如果-那么”规则系统。然而,《词性标注》将隐马尔可夫模型引入自然语言处理,并且越来越多的研究集中在统计模型上,这些模型基于将实值权重附加到构成输入数据的特征上来做出软的、概率性的决策。许多语音识别系统现在依赖的缓存语言模型就是这种统计模型的例子。当给定不熟悉的输入,特别是包含错误的输入(这在现实世界数据中非常常见)时,这种模型通常更健壮,并且当集成到包含多个子任务的更大系统中时,会产生更可靠的结果。

许多显著的早期成功发生在机器翻译领域,特别是由于在IBM研究院的工作,在那里相继开发了更复杂的统计模型。这些系统能够利用现有的多语种文本语料库,这些语料库是加拿大议会和欧洲联盟由于法律要求将所有政府程序翻译成相应政府系统的所有正式语文而制作的。然而,大多数其他系统依赖于专门为这些系统实现的任务开发的语料库,这是(并且经常继续是)这些系统成功的主要限制。因此,大量的研究已经投入到从有限的数据中更有效地学习的方法中。

2001年,神经语言模型,将神经网络和语言模型相结合,应该是历史上第一次用神经网络得到词嵌入矩阵,是后来所有神经网络词嵌入技术的实践基础。也证明了神经网络建模语言模型的可能性。

2001年,条件随机场CRF,从提出开始就一直是序列标注问题的利器,即便是深度学习的现在也常加在神经网络的上面,用以修正输出序列。

2003年,LDA模型提出,概率图模型大放异彩,NLP从此进入“主题”时代。Topic模型变种极多,参数模型LDA,非参数模型HDP,有监督的LabelLDA,PLDA等。

2008年,分布式假设理论提出,为词嵌入技术的理论基础。(分布式假设的思想并非直到08年才有)

在统计时代,NLP专注于数据本身的分布,如何从文本的分布中设计更多更好的特征模式是这时期的主流。在这期间,还有其他许多经典的NLP传统算法诞生,包括tfidf、BM25、PageRank、LSI、向量空间与余弦距离等。值得一提的是,在20世纪80、90年代,卷积神经网络、循环神经网络等就已经被提出,但受限于计算能力,NLP的神经网络方向不适于部署训练,多停留于理论阶段。[1]

最近的研究越来越集中在无监督和半监督学习算法上。这种算法能够从没有用所需答案手工注释的数据中学习,或者使用注释和非注释数据的组合。通常,该任务比监督学习困难得多,并且对于给定量的输入数据通常产生不太准确的结果。然而,有大量未注释的数据可用(除其他外,包括万维网的整个内容),如果所使用的算法具有足够低的时间复杂度,则这些数据通常可以弥补较差的结果。

在2010年,表示学习和深度神经网络风格的机器学习方法在自然语言处理中变得广泛,部分原因是一系列结果表明这些技术[4][5]可以在许多自然语言任务中实现最先进的结果,例如在语言建模中,[6]解析,[7][8]和许多其他人。流行的技术包括使用单词嵌入来捕获单词的语义属性,以及增加对更高级任务的端到端学习(例如,问答),而不是依赖于单独的中间任务流水线(例如,词性标记和依赖性解析)。在某些领域,这种转变带来了自然语言处理系统设计方式的巨大变化,因此基于深度神经网络的方法可以被视为不同于统计自然语言处理的新范例。例如,术语神经机器翻译(NMT)强调基于深度学习的机器翻译方法直接学习序列到序列的转换,不需要像统计机器翻译 (SMT)中使用的单词对齐和语言建模这样的中间步骤。

4.4 NLP深度时代

2013年,word2vec提出,是NLP的里程碑式技术。

在网页上提供客户服务的自动在线助理,是自然语言处理是主要组件的应用程序示例。[9]

2013年,CNNs/RNNs/Recursive NN,随着算力的发展,神经网络可以越做越深,之前受限的神经网络不再停留在理论阶段。在图像领域证明过实力后,Text CNN问世;同时,RNNs也开始崛起。在如今的NLP技术上,一般都能看见CNN/LSTM的影子。本世纪算力的提升,使神经网络的计算不再受限。有了深度神经网络,加上嵌入技术,人们发现虽然神经网络是个黑盒子,但能省去好多设计特征的精力。至此,NLP深度学习时代开启。

第一项主要研究进行于2013年进行,正值计算语言学协会 (ACL)成立周年之际,举办了一个名为“重新发现自然语言处理领域50年的发现”的研讨会[10]。 同年,启动了NLP4NLP项目,旨在发现这些年来引入了哪些术语,以及有关作者和相关会议的详细信息[11]。 随后,该项目扩展到其他方向,同时涵盖了34场演讲和全国新闻发布会。NLP4NLP项目的完整综合已于2019年以《研究度量和分析前沿》双重出版物的形式出版。 涵盖50年的出版物[12] [13]

2014年,seq2seq提出,在机器翻译领域,神经网络碾压基于统计的SMT模型。

2015年,attention提出,可以说是NLP另一里程碑式的存在。带attention的seq2seq,碾压上一年的原始seq2seq。记得好像17年年初看过一张图,调侃当时学术界都是attention的现象,也证明了attention神一般的效果。

2017年末,Transformer提出。似乎是为了应对Facebook纯用CNN来做seq2seq的“挑衅”,google就纯用attention,并发表著名的《Attention is All You Need》。初看时以为其工程意义大于学术意义,直到BERT的提出才知道自己还是too young。

2018年末,BERT提出,横扫11项NLP任务,奠定了预训练模型方法的地位,NLP又一里程碑诞生。光就SQuAD2.0上前6名都用了BERT技术就知道BERT的可怕。

深度学习时代,神经网络能够自动从数据中挖掘特征,人们从复杂的特征中脱离出来,得以更专注于模型算法本身的创新以及理论的突破。并且深度学习从一开始的机器翻译领域逐渐扩散到NLP其他领域,传统的经典算法地位大不如前。[1]

5 数学基础编辑

5.1 概率论基础

在自然语言处理中,以句子为处理单位时一般假设句子独立于它前面的其它语句,句子的概率分布近似地符合二项式分布。

  • 概率(probability)
  • 最大似然估计(maximum likelihood estimation)
  • 条件概率(conditional probability)
  • 全概率公式(full probability)
  • 贝叶斯决策理论(Bayesian decision theory)
  • 贝叶斯法则(Bayes’ theorem)
  • 二项式分布(binomial distribution)
  • 期望(expectation)
  • 方差(variance)

5.2 信息论基础

熵(entropy)

香农(Claude Elwood Shannon)于1940年获得MIT数学博士学位和电子工程硕士学位后,于1941年加入了贝尔实验室数学部,并在那里工作了15年。1948年6月和10月,由贝尔实验室出版的《贝尔系统技术》杂志连载了香农博士的文章《通讯的数学原理》,该文奠定了香农信息论的基础。熵是信息论中重要的基本概念。熵又称为自信息(self-information),表示信源X 每发一个符号(不论发什么符号)所提供的平均信息量。熵也可以被视为描述一个随机变量的不确定性的数量。一个随机变量的熵越大,它的不确定性越大。那么,正确估计其值的可能性就越小。越不确定的随机变量越需要大的信息量用以确定其值。

1970年代末期冯志伟教授首先开展了对汉字信息熵的研究,经过几年的文本收集和手工统计,在当时艰苦的条件下测定了汉字的信息熵为9.65比特(bit)。1980年代末期,刘源等测定了汉字的信息熵为9.71比特,而汉语词的熵为11.46比特。汉语词汇平均长度约为2.5个汉字。

困惑度(perplexity)

在设计语言模型时,我们通常用困惑度来代替交叉熵衡量语言模型的好坏。语言模型设计的任务就是寻找困惑度最小的模型,使其最接近真实的语言。

互信息(mutual information)

互信息I (X; Y) 是在知道了Y的值以后X的不确定性的减少量,即Y的值透露了多少关于X的信息量。互信息值越大,表示两个汉字之间的结合越紧密,越可能成词。反之,断开的可能性越大。互信息是计算两个汉字连续出现在一个词中的概率,而两个汉字在实际应用中出现的概率情况共有三种:

(1) 两个汉字连续出现,并且在一个词中;

(2) 两个汉字连续出现,但分属于两个不同的词;

(3) 非连续出现。

有些汉字在实际应用中出现虽然比较频繁,但是连续在一起出现的情况比较少,一旦连在一起出现,就很可能是一个词。这种情况下计算出来的互信息会比较小,而实际上两者的结合度应该是比较高的。而双字耦合度恰恰计算的是两个连续汉字出现在一个词中的概率,并不考虑两个汉字非连续出现的情况。

噪声信道模型(noisy channel model)

在信号传输的过程中都要进行双重性处理:一方面要通过压缩消除所有的冗余,另一方面又要通过增加一定的可控冗余以保障输入信号经过噪声信道后可以很好地恢复原状。信息编码时要尽量占用少量的空间,但又必须保持足够的冗余以便能够检测和校验错误。接收到的信号需要被解码使其尽量恢复到原始的输入信号。噪声信道模型的目标就是优化噪声信道中信号传输的吞吐量和准确率,其基本假设是一个信道的输出以一定的概率依赖于输入。

6 主要成果编辑

6.1 语义学成果

语义学成果 定义
机器翻译 机器翻译是利用计算机将一种自然语言(源语言)自动转换为另一种自然语言(目标语言)的过程。
命名实体识别(NER) 命名实体识别是信息提取、问答系统、句法分析、机器翻译、面向Semantic Web的元数据标注等应用领域的重要基础工具。在给定一个文本流的情况下,确定文本中的哪些项目映射到适当的名称。比如从一句话中识别出人名、地名,从电商的搜索中识别出产品的名字,识别药物名称等等。
自然语言生成 从计算机知识库或逻辑形式的机器表述系统去生成自然语言,文本到文本生成(text-to-text generation)和数据到文本生成(data-to-text generation)都是自然语言生成的实例
自然语言理解 自然语言理解是将文本块转换成更正式的表示形式,研究如何让电脑读懂人类语言的一门技术。自然语言理解涉及到从多种可能的语义中识别预期的语义,例如封闭世界假定 (CWA)对开放世界假设,或者主观正/误、真/假的判断,并可从自然语言表达式中导出。自然语言表达式通常采用自然语言概念的有组织的符号的形式。语言元模型和本体的引入和创建被认为是有效的。[14]
光学字符识别 对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程
问答 给定一个人类语言的问题,确定它的答案。典型的问题有特定的正确答案(比如“加拿大的首都是哪里?”),但有时也会考虑开放式问题(例如“生命的意义是什么?”)。[15]
认识文字蕴涵 在自然语言处理是一个文字片段之间的定向关系。拥有一个文字片段的含意时,可以从另一个文字如下关系。TE的框架中,将会导致必须需要的文本被称为文本(T)和假设(H)作为分别。文字蕴涵是不一样的纯逻辑蕴涵,它有一个更宽松的定义:"T推导到H"(T⇒H),通常情况下,如果一个人阅读T将推断为H是最有可能的正确的关系。文字蕴含关系是有方向性的,如正向的"T推导到H"或反向的"H推导到T"
关系提取 给定一段文本,确定命名实体之间的关系(例如谁与谁结婚)
情感分析 通常从一组文档中提取主观信息,使用在线评论来确定特定对象的“极性”。它特别有助于识别社交媒体中的舆论趋势,以达到营销的目的。
话题分割和识别 给定一段文本,将其分成几段,每段都有一个主题,并确定该段的主题。
词义消歧 许多词汇有不止一个含义;我们必须联系上下文理解意义。对于这个问题,我们通常会需要一个相关词义列表,例如从字典或在线资源中获取。

6.2 话语成果

自动摘要
产生一段可读的文本摘要。通常用于提供已知类型文本的摘要,如研究论文、报纸金融版的文章。
指代决议
给定一个句子或更大的文本块,确定哪些单词“提及”指的是相同的对象“实体”。回指消解是这项任务的一个具体例子,它特别关注将代词与它们所指代的名词或名称进行匹配。共指消解更一般的任务还包括识别涉及指涉表达式的所谓“桥接关系”。例如,在诸如“他通过前门进入约翰的房子”的句子中,“前门”是指涉表达式,要识别的桥接关系是所指的门是约翰的房子的前门(而不是其他可能被指涉的结构)。
话语分析
这个标题包括一些相关的任务。一项任务是识别关联文本的语篇结构,即句子之间语篇关系的性质(如阐述、解释、对比)。另一个可能的任务是识别并分类文本块中的语音行为(例如,是-否问题、内容问题、语句、断言等)。

6.3 语音成果

语音识别
给定一个或多个说话人的声音片段,确定语音的文本表示。这与文本到语音相反,并且是通俗地称为“人工智能完备性”的极其困难的问题之一(见上文)。在自然语音中,连续单词之间几乎没有停顿,因此语音分割是语音识别的必要子任务(见下文)。还要注意,在大多数口语中,代表连续字母的声音在称为协同发音的过程中相互混合,因此将模拟信号转换成离散字符可能是一个非常困难的过程。此外,考虑到同一语言中的单词是由不同口音的人说的,语音识别软件必须能够识别各种各样的输入,就其文本等价物而言,它们彼此相同。
语音分割
给定一个人或多人说话的声音片段,将其分成单词。语音识别的一个子任务,通常与它一起分组。
文本到语音转换
给定一个文本,转换这些单元并产生一个口语表达。文本到语音可以用来帮助视力受损者。 [16]

7 处理工具编辑

7.1 OpenNLP

OpenNLP是一个基于Java机器学习工具包,用于处理自然语言文本。支持大多数常用的 NLP 任务,例如:标识化、句子切分、部分词性标注、名称抽取、组块、解析等。

7.2 FudanNLP

FudanNLP主要是为中文自然语言处理而开发的工具包,也包含为实现这些任务的机器学习算法和数据集。本工具包及其包含数据集使用LGPL3.0许可证。开发语言为Java。

功能:

1. 文本分类 新闻聚类

2. 中文分词 词性标注 实体名识别 关键词抽取 依存句法分析 时间短语识别

3. 结构化学习 在线学习 层次分类 聚类 精确推理

7.3 语言技术平台(LTP)

语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口,可视化工具,并且能够以网络服务(Web Service)的形式进行使用。

8 主要难点编辑

  • 中文分词:同一个任务,同一个模型在英文语料的表现上一般要比中文语料好。无论是基于统计的还是基于深度学习的NLP方法,分词都是第一步。分词表现不好的话,后面的模型最多也只能尽力纠偏。
  • 词义消歧:很多单词不只有一个意思,2019年BERT推出后可以通过上下文学到不同的意思。另一个较难的是指代消歧,即句子中的指代词还原,如“小明受到了老师的表扬,他很高兴”,这个“他”是指“小明”还是指“老师”。由于对指代消歧领域没有深入的了解过,这里不好展开。
  • 二义性:有些句子有多种理解方式,其中以两种理解方式的最为常见,称二义性。如“我们两人一组”,究竟是“我们两人/一组”(这个组就2个人),还是“我们/两人一组”(每组2个人)
  • OOV问题:随着词嵌入技术大热后,使用预训练的词向量似乎成为了一个主流。但有个问题就是,数据中的词很可能不在预训练好的词表里面,此即OOV(out of vocabulary)。目前主流方法是要么当做UNK处理,要么生成随机向量或零向量处理,当然都存在一定的弊端。更合理的是用subword和char-CNN(感谢评论区  的指出)。
  • 文本相似度计算:文本相似度计算依旧算是难点之一,主要因为至今没有一种方法能够从理论证明。目前主流认可的是用余弦相似度。但看论文就会发现,除了余弦相似度外,欧式距离,曼哈顿距离,向量内积,都有不错的效果;还有到底用什么去计算呢?传统的tfidf还是词向量求平均,或者tfidf加权词向量平均,还是说过RNN/CNN/MLP得到向量再计算?总之大家好像都还处于经验阶段,缺少真正的理论证明。
  • 文本生成的评价指标:目前文本生成的评价指标多用BLEU或者ROUGE,这两个指标都是基于n-gram的,也就是说会判断生成的句子与标签句子词粒度上的相似度。然而由于自然语言的特性(同一个意思可以有多种不同的表达),会出现生成的句子尽管被人为判定有意义,在BLEU或ROUGE上仍可能会得到很低的分数的情况。这两个指标用在机翻领域倒是没多大问题(本身就是机翻的评价指标),但用在文本摘要和对话生成就明显不合适了。这个现象大概17年被批判过,然而情况还是依旧。

9 NLP常用数据集和语料库编辑

9.1 问题回答

  • (NLVR)用于视觉推理的自然语言语料库,2017年[论文] [数据]
  • (MS MARCO) MS MARCO:2016年人类生成的机读理解数据集[论文] [数据]
  • (NewsQA) NewsQA:机器理解数据集,2016年[论文] [数据]
  • (SQuAD) SQuAD:2016年100,000多个有关文本机器理解的问题[论文] [数据]
  • (GraphQuestions)关于为QA评估生成特征丰富的问题集,[论文] [数据]
  • (故事完形填空)语料库和完形填空评估,用于更深入地了解常识性故事,2016年[论文] [数据]
  • (儿童读物测试)戈尔德洛克原理:用显式记忆表示法阅读儿童读物,2015年[论文] [数据]
  • (SimpleQuestions)使用内存网络的大规模简单问答,2015 [论文] [数据]
  • (WikiQA) WikiQA:用于开放域问答的挑战数据集,2015年[论文] [数据]
  • (CNN-DailyMail)阅读和理解教学机,2015年[论文] [生成代码] [数据]
  • (QuizBowl)用于段落的Factoid问题解答的神经网络,[论文] [数据]
  • (MCTest) MCTest:针对文本的开放域机器理解的挑战数据集,2013年[论文] [数据] [备用数据链接]
  • (QASent)什么是危险模式?2007年质量检查的准同步语法[论文] [数据]

9.2 对话系统

  • (Ubuntu对话语料库) Ubuntu对话语料库:用于非结构化多对话系统的大型数据集,2015年[论文] [数据]

9.3 目标导向的对话系统

  • (Frames)Frames:为目标导向的对话系统增加记忆的语料库,2016年[论文] [数据]
  • (DSTC 2和3) 2013年对话状态跟踪挑战2和3,[论文] [数据]

9.4 语料库

  • 中华新华字典数据库。包括歇后语,成语,词语,汉字[数据]
  • 搜狗:[新闻数据]、[语料数据]

10 领域影响编辑

NLP入门推荐书目(刘知远)

由于自然语言作为人类社会信息的载体,使得NLP不只是计算机科学的专属。在其他领域,同样存在着海量的文本,NLP也成为了重要支持技术:

  • 在社会科学领域,关系网络挖掘、社交媒体计算、人文计算等,国内一些著名的大学实验室,如清华的自然语言处理与社会人文计算实验室、哈工大的社会计算与信息检索研究中心均冠有社会计算的关键词
  • 在金融领域,单A股就有300多家上市公司,这些公司每年都有年报、半年报、一季报、三季报等等,加上瞬息万变的金融新闻,金融界的文本数量是海量的。金融领域的NLP公司举例:李纪为大佬的香侬科技;
  • 在法律领域,中国裁判文书网上就有几千万公开的裁判文书,此外还有丰富的流程数据、文献数据、法律条文等,且文本相对规范。该领域已经有不少公司在做,如涂存超大佬的幂律智能;
  • 在医疗健康领域,除了影像信息,还有大量的体检数据、临床数据、诊断报告等,同样也是NLP大展身手的地方。该领域的NLP公司:碳云智能
  • 在教育领域,智能阅卷、机器阅读理解等都可以运用NLP技术。国内这方面目前领先者应该是科大讯飞和猿辅导。

11 基于规则与统计自然语言处理的对比编辑

早期,许多语言处理系统是通过手工编码一组规则来设计的,[17][18]例如通过编写语法或为词干设计启发式规则。 然而,这很少对自然语言的变化产生影响。 自从所谓的“统计革命”以来[19][20]在20世纪80年代末和90年代中期,许多自然语言处理研究严重依赖于机器学习。

机器学习范式要求使用统计推理通过分析大的语料库典型的现实世界例子(语料库(复数形式,“语料库”)是一组文档,可能带有人类或计算机的注释。

许多不同类别的机器学习算法已经应用于自然语言处理任务。这些算法将从输入数据中生成的一大组“特征”作为输入。一些最早使用的算法,如决策树,产生了硬的“如果-那么”规则系统,类似于当时常见的手写规则系统。然而,研究越来越多地集中在统计模型上,这些模型基于将实值权重附加到每个输入特征上来做出软的、概率性的决策。这种模型的优点是,它们可以表达许多不同可能答案的相对确定性,而不是只表达一个,当这种模型作为更大系统的一个组成部分时,会产生更可靠的结果。

基于机器学习算法的系统比手工生成的规则有许多优势:

  • 机器学习中使用的学习过程自动关注最常见的情况,而当用手编写规则时,通常根本不清楚应该将精力放在哪里。
  • 自动学习过程可以使用统计推理算法来生成对陌生输入(例如,包含以前从未见过的单词或结构)和错误输入(例如拼写错误的单词或意外省略的单词)鲁棒的模型。一般来说,用手写规则优雅地处理这种输入——或者更一般地说,创建做出软决策的手写规则系统——是极其困难、容易出错和耗时的。
  • 通过提供更多的输入数据,基于自动学习规则的系统可以变得更准确。然而,基于手写规则的系统只有通过增加规则的复杂性才能变得更准确,这是一项更困难的任务。特别是,基于手工规则的系统的复杂性是有限制的,超过这个限制,系统变得越来越难以管理。然而,创建更多的数据输入机器学习系统只需要相应增加工时,通常不会显著增加注释过程的复杂性。

参考文献

  • [1]

    ^"自然语言处理"..

  • [2]

    ^Hutchins, J. (2005). "The history of machine translation in a nutshell" (PDF).[self-published source].

  • [3]

    ^乔姆斯基语言学鼓励对“边角案例”的研究,这些案例强调其理论模型的极限(相当于数学中的病理现象),通常使用思想实验来创建,而不是像语料库语言学那样,系统地研究现实世界数据中出现的典型现象。创建和使用这样的现实世界数据语料库是自然语言处理机器学习算法的基本部分。此外,乔姆斯基语言学的理论基础,如所谓的“刺激贫困”论点,要求机器学习中通常使用的一般学习算法在语言处理中不能成功。因此,乔姆斯基的范式不鼓励将这种模型应用于语言处理。.

  • [4]

    ^Yoav Goldberg(2016年)。自然语言处理的神经网络模型入门。人工智能研究杂志57(2016)345–420.

  • [5]

    ^伊恩·古德费洛、约书亚·本希奥和亚伦·库维尔。《http://www.deeplearningbook.org/ 深度学习》。麻省理工学院出版社。.

  • [6]

    ^Rafal Jozefowicz,Oriol Vinyals,Mike Schuster,Noam Shazeer和w永辉(2016年)。《https://arxiv.org/abs/1602.02410 》探索语言建模的极限.

  • [7]

    ^Do Kook Choe和Eugene Charniak (EMNLP 2016)。http://ACL collection . coli . uni-Saar land . de/papers/D16-1257/D16-1257.

  • [8]

    ^Vinyals,Oriol,et al .(nip 2015)。https://papers . nips . cc/paper/5635-grammar-as-a-foreign-language . pdf.

  • [9]

    ^实现基于会话代理的在线帮助台系统。作者:亚里沙·孔通、查查瓦尔·桑基特·拉卡尔、萨拉伍特·孔扬和春查·哈列猜耶萨克。由美国计算机学会2009年发表的文章《文献计量学数据文献计量学》。发表于:Proceedings,MEDES ' 09 Proceedings of the International Conference on Management of emergency Digital EcoSystems,ACM New York,NY,USA。ISBN 978-1-60558-829-2 ISBN 978-1-60558-829-2 ,doi:10.1145/1643823.1643908 : 10.1145/1643823.1643908.

  • [10]

    ^拉德夫·德拉戈米尔,穆图克里希南·帕拉德普,卡斯维尼亚·瓦赫德,阿布-Jbara,阿姆贾德,《 ACL选集网络语料库,语言资源和评估》,47,2013年,斯普林格,第919-944页。.

  • [11]

    ^Francopoulo, Gil; Mariani, Joseph; Paroubek, Patrick (2013), "The Cobbler's Children Won't Go Unshod", D-Lib Magazine.

  • [12]

    ^Mariani, Joseph; Francopoulo, Gil; Paroubek, Patrick (2019), "The NLP4NLP Corpus (I): 50 Years of Publication Collaboration and Citation in Speech and Language Processing", Frontiers in Research Metrics and Analytics.

  • [13]

    ^Mariani, Joseph; Francopoulo, Gil; Paroubek, Patrick; Vernier, Frédéric (2019), "The NLP4NLP Corpus (I): 50 Years of Research in Speech and Language Processing", Frontiers in Research Metrics and Analytics.

  • [14]

    ^克里斯托夫·克鲁兹·于聪段(2011),从存在概念化自然语言的语义形式化。Archived 2011-10-09 at the Wayback Machine《国际创新、管理和技术杂志》(2011) 2 (1),第37-42页。.

  • [15]

    ^“多功能问答系统:在综合中发现”,米塔尔等人,国际信息检索系统,5(2),119-142,2011年。.

  • [16]

    ^Yi, Chucai; Tian, Yingli (2012), "Assistive Text Reading from Complex Background for Blind Persons", Camera-Based Document Analysis and Recognition (in 英语), Springer Berlin Heidelberg, pp. 15–28, CiteSeerX 10.1.1.668.869, doi:10.1007/978-3-642-29364-1_2, ISBN 9783642293634.

  • [17]

    ^特里·威诺格拉德(1971)。在理解自然语言的计算机程序中作为数据表示的过程。http://hci.stanford.edu/winograd/shrdlu/.

  • [18]

    ^罗杰·沙克和罗伯特·艾贝尔森(1977)。脚本、计划、目标和理解:人类知识结构的探究.

  • [19]

    ^马克·约翰逊。统计革命如何改变(计算)语言学。《2009年EACL语言学与计算语言学互动研讨会论文集》。.

  • [20]

    ^菲利普·雷斯尼克。四次革命。《语言日志》,2011年2月5日。.

阅读 206
版本记录
  • 暂无