首页天道酬勤什么是自然语言处理(自然语言处理实践)

什么是自然语言处理(自然语言处理实践)

admin 11-29 13:47 251次浏览

文/IT科达鸭

图/IT无障碍鸭,网络

前言

自然语言处理是一门综合性学科,是研究人与机器之间交流的理论和方法。这需要大量的跨学科知识,包括统计学、语言学、机器学习、深度学习等相关理论模型。

纵观所有NLP算法,有七个基本操作。可以说,大多数NLP项目都会用到以下操作。

NLP七种基本操作

结合边肖近年来自然语言处理算法的研究和发展,简要介绍了这七种基本的自然语言处理操作。

分词(seg)单词是语言和文字的基本单位,英语单词自然是用空格来划分的,所以分词只需要基于空格。语文是基本的写作单位和基本的理解单位。字与字之间没有明显的标记,所以中文需要设计独特的切分算法。

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

比如“南京长江大桥”可以分为“南京/长江大桥”、“南京/长江/大桥”或者“南京/市长/长江大桥”。这个例子是很多NLP算法初学者经常遇到的。你认为每一个细分都是合理的吗?

因此,在实际开发中,分词算法应该根据不同的场景选择不同的分词算法和不同的词典。与实际业务紧密结合,不能强调哪个分词算法好哪个不好。

词性标注是一种基于机器学习的方法。通常有必要标记单词的词性。什么是词性?指一般动词、名词、形容词、副词、代词等。标注的目的是发现词语的隐藏状态,隐藏状态的转换构成了状态转换序列。

比如形容词的下一个词是名词,副词的下一个词是动词,就会有一个状态转换的过程。标注的另一个例子:“I /r love /v work /ns”,其中ns代表名词,V代表动词,都属于标注。

那么,为什么需要标注单词呢?比如我们需要从一篇文章中提取关键词,关键词只能是名词,那么这个时候就不需要分析除名词以外的其他词类的词,只需要重点分析名词就可以了。

因此,词性分析的结果可以用多一个维度的信息来表征,从而使分析更有针对性。

命名实体识别(NER)命名实体识别是指从文本中识别具有特定类别的实体(通常是名词),例如时间、人名、地名、组织名称和专有名词。可以说,除了词性,它是词的另一个维度的数据表示(标签)。

命名实体识别可以用于什么?举个简单的例子,“百度网盘是个不错的软件。”从词性分析中,我们找出了“百度网盘”这个名词,但是通过命名实体识别,我们可以知道“百度网盘”是一个软件的名称。

语法分析语法分析是一个基于规则的专家系统,其目的是分析句子中每个成分的依赖性。是不是很一般?别慌。举个例子看看。

“聪明又会欢呼的皮卡丘总是喜欢在自己家附近的小店里吃零食。”这里有两个形容词,一个是“聪明”,一个是“离家近”。从句法分析可知,“聪明”形容的是欢呼雀跃的皮卡丘,而“离家近”形容的是小店。

再比如“欢呼的皮卡丘是威武白云的班长”和“威武白云是欢呼的皮卡丘的班长”,这两个句子,分词结果和单词包模型完全一样,但是句法分析可以分析它们的主从关系,真正理清句子之间的关系。

r/d9ec63f8-ef27-4c35-a20d-a8dc3179c8e7?from=pc">

指代消解(anaphora resolution)

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

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

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

情感识别(emotion recognition)

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

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

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

纠错(correction)

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

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

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

结语

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

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

#423头条知识节#

#科技青年#


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

等保咨询 UDBCP短信供应商怎么选择?linux下运行文件的命令是什么-linux运维
语音转文字asr(tts原理) ()
相关内容