一文让你入门NLP自然语言处理,看不懂你来找我

Posted IT可达鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文让你入门NLP自然语言处理,看不懂你来找我相关的知识,希望对你有一定的参考价值。


文/IT可达鸭

图/IT可达鸭、网络



  • 前言


作为一门综合学科,NLP自然语言处理)是研究人与机器之间通信的理论和方法。这需要很多跨学科的知识,需要统计学、语言学、机器学习、深度学习等相关理论模型基础。


纵观所有的NLP算法中,都离不开以下七种基础的操作。可以说,大部分的NLP项目,都会用到以下的操作。


一文让你入门NLP自然语言处理,看不懂你来找我



  • NLP七种基本操作


结合小编这几年的NLP算法研发,简单介绍一下这七种NLP基本操作。


  • 分词(segment, 简称:seg)

词是组成语言文字的基础单位,英文单词之间是以空格作为自然分割的,所以分词只需要根据空格进行切分就可以了。而中文是字为基本的书写单位,以词为基本的理解单位,词语之间没有明显的标记,因此中文就需要设计独特的分词算法。

所有的分词中,特指的是中文分词中文分词常用的算法是基于字典的最长匹配,据说可以解决85%的问题,但是歧义分词很难。

举个例子,“南京市长江大桥”,我们既可以切分为“南京市/长江大桥”,又可以切分为“南京市/长江/大桥”,还可以切分为“南京/市长/江大桥”这个例子也是很多NLP算法入门经常会碰到的,是不是觉得每个切分都有理可依据?


一文让你入门NLP自然语言处理,看不懂你来找我



所以实际开发中,分词算法,要根据不同场景,选择不同的切分算法,以及不同的字典库。跟实际业务是紧密结合的,不能脱离应用场景去强调哪个分词算法好,哪个不好。


  • 词性标注(part of speech tagging, 简称:pos)

基于机器学习的方法里,往往需要对词的词性进行标注。什么是词性?一般指动词、名词、形容词、副词、代词等。标注的目的是为了找到词语的隐藏状态,隐藏状态构成的转移就构成了状态转移序列。

例如,形容词下一个词是名词,副词下一个词是动词,就有一个状态转移的过程。再举个标注的例子:“我/r 爱/v 工作/ns”, 其中,ns代表名词,v代表动词,都属于标注。

那么,为什么需要对词语进行标注呢?比如,如果我们需要从一篇文章中,提取关键词,关键词只能是名词,所以这个时候,我们就不需要去分析除名词外其他词性的词语,只需专注分析名词即可。

所以,词性分析结果,可以多一个维度的信息去表征词语,从而使分析更有针对性。


一文让你入门NLP自然语言处理,看不懂你来找我



  • 命名实体识别(Named Entity Recognition, 简称:NER)

命名实体识别,是指从文本中识别具有特定类别的实体(通常是名词),例如:时间、人名、地名、机构名、专有名词。可以说是除词性外,是词语的另外一个维度的数据表征(标签

命名实体识别到底可以用来干什么呢?举个简单的例子,“百度网盘是一款不错的软件。”,从词性分析中,我们分析出“百度网盘”一个词语它是名词,但是通过命名实体识别,就可以知道“百度网盘” 它是一个软件的名称。


一文让你入门NLP自然语言处理,看不懂你来找我



  • 句法分析(syntax parsing)

句法分析是一种基于规则的专家系统,它的目的就是解析句子中各个成分的依赖关系。是不是很笼统,莫慌,举个例子就明白了。

“聪明的小明总喜欢在家附近的小卖铺吃零食。”,这里有两个形容词,一个是“聪明的”,一个是“在家附近的”,通过句法分析可以知道,“聪明的”形容的是小明,而“在家附近的”形容的是小卖铺。

再举个例子,“小明是小红的班长”, “小红是小明的班长”这两句话,分词结果用词袋模型表示完全相同,但是句法分析却可以分析它们的主从关系,真正理清句子的关系。


一文让你入门NLP自然语言处理,看不懂你来找我



  • 指代消解(anaphora resolution)

在中文表述中,代词出现的频率是非常高的,它主要是用来指前文出现过的名词。

例如,“小明很喜欢学习,但是他有个缺点,就是经常迟到。” 这里出现了代词“他”,指代前文出现的“小明”

关于指代消解,目前主要用于语义理解、知识图谱等。这块有很多有难度而且有意思的地方可以研究,感兴趣的小伙伴可以去尝试一下。


一文让你入门NLP自然语言处理,看不懂你来找我



  • 情感识别(emotion recognition)

所谓的情感识别、情感分析,其本质上是一个分类问题。情感识别一般可以分为两类,一个是积极情感,另一个是消极情感。也可以分为三类,在前面两类基础上,增加一个中性情感。

小编以前做过电商评论的情感分析,这里就举一个电商评论的例子。情感分析可以分析商品评论的好坏,以此来作为下一个环节的输入。通常是基于词袋模型+分类器(KNN),或者词袋模型+朴素贝叶斯模型,或者词向量模型(word2vec)+RNN

选择不同算法,在不同的场景都有不同的效果,取决多方面的因素。如果想提高识别速度,接受一定的误差,可以选择词袋模型+分类器,或贝叶斯模型。如果想提高识别精度,同时又有大量的训练语料,就可以选择词向量模型+RNN


一文让你入门NLP自然语言处理,看不懂你来找我



  • 纠错(correction)

自动纠错在搜索技术输入法客观题自动批改英语作文批改中利用比较多。

小编做过一个自动批改的算法,这里就列举一下这个例子。由于学生在答题过程中,特别是客观简答题,出错的可能性比较大,有错别字、错误的点、遗漏的要点等等。所以,需要设计一个纠错系统(这里指的是有针对性的纠错系统,不是通用型的纠错系统)。

对于英文作文批改中,可以基于N-Gram进行纠错(N一般取值2~3),也可以通过字典树(通过相同前缀节约大量的存储空间,同时提升检索速度)、有限状态机等方法进行纠错。




  • 结语

以上每一种NLP技术,都能扯出一系列的算法,例如,有简单的正则表达式机器学习深度学习网络等等。而且,在不同场景中,即使是同一个NLP技术点,它都有不同的算法可以选择。所以,只要力所能及,尽量多接触、多学习基础算法。

万变不离其宗,只要你在NLP方向中,打好以上七个方面的基础。相信在一些难度大、场景复杂的NLP算法也能游刃有余。





持续关注"IT可达鸭"每天除了分享有趣Python源码,还会介绍NLP算法。最后,感谢大家的阅读,祝大家工作生活愉快!




长按二维码

获取更多精彩

IT可达鸭



以上是关于一文让你入门NLP自然语言处理,看不懂你来找我的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫实战❤️ 从零开始分析页面,抓取数据——爬取豆瓣电影任意页数 看不懂你来找我!❤️

干货 | 一文读懂自然语言处理(NLP)入门学习要点

NLP入门+实战必读:一文教会你最常见的10种自然语言处理技术(附代码)

宇宙最强UML类图详解,看不懂你来打我

NLP入门实战:一文教会你完整机器处理流程

入门科普:一文看懂NLP和中文分词算法(附代码举例)