人工智能——自然语言处理(NLP)攻略

漂浮大陆⼈⼯智能——⾃然语⾔处理(NLP)攻略
⾃然语⾔处理,英⽂Natural Language Processing,简写NLP。NLP这个概念本⾝过于庞⼤,很难通过简短的⼏句定义就能明⽩它是什么。不妨把它分成“⾃然语⾔”和“处理”两部分。先来看⾃然语⾔。区分于计算机语⾔,⾃然语⾔是⼈类发展过程中形成的⼀种信息交流的⽅式,包括⼝语及书⾯语,反映了⼈类的思维。简单的⼀句问候“你好”,以及正在看的这篇,都是以⾃然语⾔的形式表达。现在世界上所有的语种语⾔,都属于⾃然语⾔,包括汉语、英语、法语等。然后再来看“处理”。如果只是⼈⼯处理的话,那我们原本就有专门的语⾔学来研究,也没必要特地强调“⾃然”。因此,这个“处理”必须是计算机处理的。但计算机毕竟不是⼈,⽆法像⼈⼀样处理⽂本,需要有⾃⼰的处理⽅式。因此⾃然语⾔处理,简单来说即是计算机接受⽤户⾃然语⾔形式的输⼊,并在内部通过⼈类所定义的算法进⾏加⼯、计算等系列操作,以模拟⼈类对⾃然语⾔的理解,并返回⽤户所期望的结果。正如机械解放⼈类的双⼿⼀样,⾃然语⾔处理的⽬的在于⽤计算机代替⼈⼯来处理⼤规模的⾃然语⾔信息。它是⼈⼯智能、计算机科学、信息⼯程的交叉领域,涉及统计学、语⾔学等的知识。由于语⾔是⼈类思维的证明,故⾃然语⾔处理是⼈⼯智能的最⾼境界,被誉为“⼈⼯智能皇冠上的明珠”。 下⾯,统⼀以NLP来指代⾃然语⾔处理。
【NLP的终极⽬标】 “你指尖跃动的代码,是我此⽣不变的信仰,唯我NLP永世长存”
从计算机诞⽣,NLP这个概念被提出伊始,⼈们便希望计算机能够理解⼈类的语⾔,于是便有了图灵测
试。尽管今年google I/O⼤会上的Google Assistant宣称已经通过了图灵测试,但离真正理解⼈类语⾔仍有很长的距离(并且我对其⽣成的对话是否完全由机器⽣成⽽不是⽤规则定义表⽰深深的怀疑。。。)让计算机能够确切理解⼈类的语⾔,并⾃然地与⼈进⾏交互是NLP的最终⽬标,也是⼤多数NLPer的最⾼信仰。为此各路⼤佬挥舞⼿中的代码不断挖坑填坑,攻克⼀个⼜⼀个难题,推动NLP⼀直往前发展。
【NLP的技术概貌】 “我们的征途是星⾠⼤海”
NLP⾥细分领域和技术实在太多,根据NLP的终极⽬标,⼤致可以分为⾃然语⾔理解(NLU)和⾃然语⾔⽣成(NLG)两种。NLU侧重于如何理解⽂本,包括⽂本分类、命名实体识别、指代消歧、句法分析、机器阅读理解等;NLG则侧重于理解⽂本后如何⽣成⾃然⽂本,包括⾃动摘要、机器翻译、问答系统、对话机器⼈等。两者间不存在有明显的界限,如机器阅读理解实际属于问答系统的⼀个⼦领域。 ⼤致来说,NLP可以分为以下⼏个领域:
【⽂本检索】:多⽤于⼤规模数据的检索,典型的应⽤有搜索引擎
【机器翻译】:跨语种翻译,该领域⽬前已较为成熟。⽬前⾕歌翻译已⽤上机翻技术
【⽂本分类/情感分析】:本质上就是个分类问题。⽬前也较为成熟,难点在于多标签分类(即⼀个⽂
本对应多个标签,把这些标签全部到)以及细粒度分类(⼆极情感分类精度很⾼,即好中差三类,⽽五级情感分类精度仍然较低,即好、较好、中、较差、差)
【信息抽取】:从不规则⽂本中抽取想要的信息,包括命名实体识别、关系抽取、事件抽取等。应⽤极⼴。
半有源rfid
【序列标注】:给⽂本中的每⼀个字/词打上相应的标签。是⼤多数NLP底层技术的核⼼,如分词、词性标注、关键词抽取、命名实体识别、语义⾓⾊标注等等。曾是HMM、CRF的天下,近年来逐步稳定为BiLSTM-CRF体系。
【⽂本摘要】:从给定的⽂本中,聚焦到最核⼼的部分,⾃动⽣成摘要。
【问答系统】:接受⽤户以⾃然语⾔表达的问题,并返回以⾃然语⾔表达的回答。常见形式为检索式、抽取式和⽣成式三种。近年来交互式也逐渐受到关注。典型应⽤有智能客服
【对话系统】:与问答系统有许多相通之处,区别在于问答系统旨在直接给出精准回答,回答是否⼝语化不在主要考虑范围内;⽽对话系统旨在以⼝语化的⾃然语⾔对话的⽅式解决⽤户问题。对话系统⽬前分闲聊式和任务导向型。前者主要应⽤有siri、⼩冰等;后者主要应⽤有车载聊天机器⼈。(对话系统和问答系统应该是最接近NLP终极⽬标的领域)
硒肥料
【知识图谱】:从规则或不规则的⽂本中提取结构化的信息,并以可视化的形式将实体间以何种⽅式联系表现出来。图谱本⾝不具有应⽤意义,建⽴在图谱基础上的知识检索、知识推理、知识发现才是知识图谱的研究⽅向
【⽂本聚类】:⼀个古⽼的领域,但现在仍未研究透彻。从⼤规模⽂本数据中⾃动发现规律。
核⼼在于如何表⽰⽂本以及如何度量⽂本之间的距离 所涉及的基本技术有:
分词:基本算是所有NLP任务中最底层的技术。不论解决什么问题,分词永远是第⼀步
m2卡词性标注:判断⽂本中的词的词性(名词、动词、形容词等等),⼀般作为额外特征使⽤
句法分析:分为句法结构分析和依存句法分析两种
词⼲提取:从单词各种前缀后缀变化、时态变化等变化中还原词⼲,常见于英⽂⽂本处理
命名实体识别:识别并抽取⽂本中的实体,⼀般采⽤BIO形式
指代消歧:⽂本中的代词,如“他”“这个”等,还原成其所指实体
关键词抽取:提取⽂本中的关键词,⽤以表征⽂本或下游应⽤
词向量与词嵌⼊:把单词映射到低维空间中,并保持单词间相互关系不变。是NLP深度学习技术的基础
⽂本⽣成:给定特定的⽂本输⼊,⽣成所需要的⽂本,主要应⽤于⽂本摘要、对话系统、机器翻译、问答系统等领域  …… 常⽤算法有:
tfidf、BM25、TextRank、HMM、CRF、LSI、主题模型、word2vec、GloVe、LSTM/GRU、CNN、seq2seq、Attention…… 【NLP的发展历程】 “NLP兽,进化!” 1948年,⾹农提出信息熵的概念。此时尚未有NLP,但由于熵也是NLP的基⽯之⼀,在此也算作是NLP的发展历程。 按照的说法,NLP发源于1950年。图灵于该年提出“图灵测试”,⽤以检验计算机是否真正拥有智能。 -----------NLP规则时代----------- 1950-1970年,模拟⼈类学习语⾔的习惯,以语法规则为主流。除了参照乔姆斯基⽂法规则定义的上下⽂⽆关⽂法规则外,NLP领域⼏乎毫⽆建树。 -----------NLP统计时代----------- 70年代开始统计学派盛⾏,NLP转向统计⽅法,此时的核⼼是以具有马尔科夫性质的模型(包括语⾔模型,隐马尔可夫模型等)。 2001年,神经语⾔模型,将神经⽹络和语⾔模型相结合,应该是历史上第⼀次⽤神经⽹络得到词嵌⼊矩阵,是后来所有神经⽹络词嵌⼊技术的实践基础。也证明了神经⽹络建模语⾔模型的可能性。 2001年,条件随机场CRF,从提出开始就⼀直是序列标注问题的利器,即便是深度学习的现在也常加在神经⽹络的上⾯,⽤以修正输出序列。 2003年,LDA模型提出,概率图模型⼤放异彩,NLP从此进⼊“主题”时代。Topic模型变种极多,参数模型LDA,⾮参数模型HDP,有
监督的LabelLDA,PLDA等。 2008年,分布式假设理论提出,为词嵌⼊技术的理论基础。(分布式假设的思想并⾮直到08年才有,详见Gavagai - Distributional Semantics - gavagai.se) 在统计时代,NLP 专注于数据本⾝的分布,如何从⽂本的分布中设计更多更好的特征模式是这时期的主流。在这期间,还有其他许多经典的NLP传统算法诞⽣,包括tfidf、BM25、PageRank、LSI、向量空间与余弦距离等。值得⼀提的是,在20世纪80、90年代,卷积神经⽹络、循环神经⽹络等就已经被提出,但受限于计算能⼒,NLP的神经⽹络⽅向不适于部署训练,多停留于理论阶段。 -----------NLP深度时代----------- 2013年,word2vec提出,NLP的⾥程碑式技术,从此万物embedding 2013年,CNNs/RNNs/Recursive NN,随着算⼒的发展,神经⽹络可以越做越深,之前受限的神经⽹络不再停留在理论阶段。在图像领域证明过实⼒后,Text CNN问世;同时,RNNs也开始崛起。在如今的NLP技术上,⼀般都能看见CNN/LSTM的影⼦。 本世纪算⼒的提升,使神经⽹络的计算不再受限。有了深度神经⽹络,加上嵌⼊技术,⼈们发现虽然神经⽹络是个⿊盒⼦,但能省去好多设计特征的精⼒。⾄此,NLP深度学习时代开启。 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其他领域,传统的经典算法地位⼤不如前。但神经⽹络似乎⼀直是个⿊箱,可解释性⼀直是个痛点,且由于其复杂度更⾼,在⼯业界经典算法似乎还是占据主流(这半句为个⼈感觉,并⽆可靠依据)。 (迁移学习、强化学习、对抗学习、模仿学习等⽅法虽然也极⼤地推动了NLP的发展,但由于它们不单为NLP所独有,主要是深度学习的发展,故此处不列出) 【NLP的⽬前难点】 “NLP的难点甚是喧嚣啊” ⽬前,仍有很多制约NLP 发展的因素,这些因素构成了NLP的难点。⽽且要命的是,⼤多数是基础技术的难点。个⼈不完全统计,有:  中⽂分词,这条是专门针对中⽂说的。众所周知汉语博⼤精深,⽼外学汉语尚且虐⼼,更别提计算机了。同⼀个任务,同⼀个模型在英⽂语料的表现上⼀般要⽐中⽂语料好。⽆论是基于统计的还是基于深度学习的NLP⽅法,分词都是第⼀步。分词表现不好的话,后⾯的模型最多也只能尽⼒纠偏  词义消歧:很多单词不只有⼀个意思,但这个在今年BERT推出后应该不成问题,可以通过上下⽂学到不同的意思。另⼀个较难的是指代消歧,即句⼦中的指代词还原,
如“⼩明受到了⽼师的表扬,他很⾼兴”,这个“他”是指“⼩明”还是指“⽼师”。由于对指代消歧领域没有深⼊的了解过,这⾥不好展开  ⼆义性:有些句⼦,往往有多种理解⽅式,其中以两种理解⽅式的最
为常见,称⼆义性。如“我们两⼈⼀组”,究竟是“我们两⼈/⼀组”(这个组就2个⼈),还是“我们/两⼈⼀组”(每组2个⼈)  OOV问题:随着词嵌⼊技术⼤热后,使⽤预训练的词向量似乎成为了⼀个主流。但有个问题就是,数据中的词很可能不在预训练好的词表⾥⾯,此即OOV(out of vocabulary)。⽬前主流⽅法是要么当做UNK处理,要么⽣成随机向量或零向量处理,当然都存在⼀定的弊端。更合理的是⽤subword和char-CNN  ⽂本相似度计算:是的你没有看错。⽂本相似度计算依旧算是难点之⼀。不过与其说难点,主要是⾄今没有⼀种⽅法能够从理论证明。⽬前主流认可的是⽤余弦相似度。但看论⽂就会发现,除了余弦相似度外,有⼈⽤欧式距离,有⼈⽤曼哈顿距离,有⼈直接向量內积,且效果还都不错;还有到底⽤什么去计算呢?传统的tfidf?还是词向量求平均?或者tfidf加权词向量平均?还是说过RNN/CNN/MLP得到向量再计算?总之⼤家好像都还处于经验阶段,缺少真正的理论证明。  ⽂本⽣成的
评价指标:⽬前⽂本⽣成的评价指标多⽤BLEU或者ROUGE,但尴尬的是,这两个指标都是基于n-gram的,也就是说会判断⽣成的句⼦与标签句⼦词粒度上的相似度。然⽽由于⾃然语⾔的特性(同⼀个意思可以有多种不同的表达),会出现⽣成的句⼦尽管被⼈为判定有意义,在BLEU或ROUGE上仍可能会得到很低的分数的情况。这两个指标⽤在机翻领域倒是没多⼤问题(本⾝就是机翻的评价指标),但⽤在⽂本摘要和对话⽣成就明显不合适了。这个现象⼤概17年中就有⼤佬发⽂批判过,然⽽⼀年过去了情况还是依旧。 【NLP对其他领域的影响】 “只要有⽂本飞舞的地⽅,NLP技术就会燃烧”
由于⾃然语⾔作为⼈类社会信息的载体,使得NLP不只是计算机科学的专属。在其他领域,同样存在着海量的⽂inu-006
本,NLP也成为了重要⽀持技术:  在社会科学领域,关系⽹络挖掘、社交媒体计算、⼈⽂计算等,国内⼀些著名的⼤学实验室,如清华的⾃然语⾔处理与社会⼈⽂计算实验室、哈⼯⼤的社会计算与信息检索研究中⼼均冠有社会计算的关键词  在⾦融领域,单A股就有300多家上市公司,这些公司每年都有年报、半年报、⼀季报、三季报等等,加上瞬息万变的⾦融新闻,⾦融界的⽂本数量是海量的。⾦融领域的NLP公司举例:李纪为⼤佬的⾹侬科技;  在法律领域,中国裁判⽂书⽹上就有⼏千万公开的裁判⽂书,此外还有丰富的流程数据、⽂献数据、法律条⽂等,且⽂本相对规范。该领域已经有不少公司在做,如涂存超⼤佬的幂律智能;  在医疗健康领域,除了影像信息,还有⼤量的体检数据、临床数据、诊断报告等,同样也是NLP⼤展⾝⼿的地⽅。该领域的NLP公司:碳云智能  在教育领域,智能阅卷、机器阅读理解等都可以运⽤NLP技术。国内这⽅⾯⽬前领先者应该是科⼤讯飞和猿辅导。  …… 以上,仅以我NLP⼊坑经历的⾓度出发。根据《2018年新⼀代⼈⼯智能⽩⽪书:产业增长点研判》,全球(包括我国)在NLP产业均处于产业培育阶段,或许不出⼏年我们就能有幸见证NLP产业的扩张。希望能有更多的⼈分享⾃⼰的看法,也希望有更多的⼈对NLP产⽣兴趣。 PS:如果你也对⼈⼯智能感兴趣并且有学习欲望,就私聊我吧。bbzs

本文发布于:2024-09-23 09:32:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/154652.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:领域   学习   模型   系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议