宝珠道人,AI + 科普 | 道哥求关注 阅读原文 前两天在知乎上做了NLP课程的直播,在开篇就谈到了这个问题。在此正好把内容做下梳理。 一、一句话证明NLP很难 给我康康 Duck不必 她长的太上头了 美的家电,美的全面,美的彻底 这个人谁都不认识 铁锤锤蛋锤得烂还是锤不烂?(歧义,蛋烂还是锤烂) 二、NLP为什么难 自然语言处理的目标是让计算机理解人类的语言,从而弥补人类交流(自然语言)和计算机理解(机器语言)之间的差距。为了达到这个目标,自然语言处理被分为两大核心任务:自然语言理解和自然语言生成。自然语言理解是让计算机理解给定输入的含义,对人类的自然语言进行表示、转换、计算等,产生计算机可以理解和处理的形式。自然语言生成是将计算机产生的结果转化为人类可以读懂的自然语言的过程。 所以,自然语言处理包含很多任务,比如词性标注、命名实体识别、信息抽取、文本分类、信息检索、机器翻译、文本生成等。自然语言处理难的本质在于语言是典型的无结构数据,由表面的文字符号组合成背后所要表达的语义,形成一种错综复杂的符号系统。而自然语言处理就是要学习语言序列所表示的语义,而语义受谈话人(主观性)、谈话场景(语境)、谈话时间(旧词新意)等影响,因此自然语言处理存在诸多难点。 三、以情感分析为例,NLP的难点说明及解决办法 拿我们比较熟悉的场景举例,“高档酒店不提供免费的洗漱套装?”这句话的场景发生在酒店,描述的虽然是洗漱套装,但是评价的却是酒店的服务,表达了一种负向的情感。那么,机器如何来对上述的语句进行情感分析呢? 情感分析(Sentiment Analysis)目的在于自动地从文本中发现和归纳人们对产品、人物、公司、组织机构、事件、话题等的态度、意见和情绪等,对其中的主观情感信息进行挖掘。人类的主观情感因素影响着自身的行为,因此了解人们对某个事物的情感态度,对于预测其行为并针对性的做出应对决策有着十分重要的意义。例如,从个人角度,人们在通过网络购物平台进行购物时,可以参考其他消费者对该物品或服务的评论,进而做出购买决定;从企业角度,企业可以通过网络文本了解消费者对其提供的产品和服务的评价,进而帮助公司做出生产、销售和宣传的决策。 按照文本的不同粒度,文本情感分析分为词语级、句章级和属性级情感分析。词语级情感分析包括情感词的抽取和情感词的表示学习。情感词是指语料中带有情感倾向的词语。句章级情感分析是指对整句文本或整篇文档进行一个总体的情感极性的判别,常用于微博、电影、酒店、餐饮等文本数据的分析中。属性级情感分析是指针对文本中的特定实体(属性)进行情感极性的判别,常用于不同商品的特定属性的数据分析中。 自然语言处理关键是语义表示,从语言的粒度上看,语言是由词构成句子,句子构成篇章的。对于情感分析任务,同样可以从词级、句子级、篇章级来解决语义表示问题。 早期的词语级情感分析任务主要是对文本中的情感词进行抽取,通常是情感分析的基础任务。因此,这部分工作研究广泛,情感词抽取方法大致可分为两大类,分别是基于知识库的方法和基于语料库的方法。基于知识库的方法主要借助知识库资源(如WordNet、HowNet等)中词与词之间的关系,比如同义词关系、反义词关系等来判断词语的情感极性。虽然基于知识库的方法可以较易的获得大量情感词典,但是这种方法不适用于特定领域或特定场景的情感分析。基于语料库的方法假设具有相同情感极性的词通常在同一句子中。因此,这类方法首先通过人工标注一小部分种子情感词,然后通过词与词之间的共现关系来判断情感词的极性基于语料库的方法召回率比较低,如果一个情感词不与任何种子情感词共现,那么这个情感词就很难被识别。 近年来,随着深度学习和表示学习技术应用于自然语言处理中,词的表示学习受到研究者的重视,词向量的学习成为自然语言处理领域中最基本的任务。因此,在面向情感分析任务时,通常我们会先学习情感词向量。情感词向量模型的目标是在输入语料上学习一组词向量,使得学习到的词向量不仅具有语法和语义上的相似性,同时还具有情感极性的区分性。情感词向量的学习模型基本是在已有的词向量学习模型基础上添加有监督的学习过程得到。近两年,随着大规模预训练语言模型的兴起,情感词向量的学习已经不是情感分析任务必做的步骤了。 句子和篇章级情感分析是指对文档的整体情感极性进行判别。早期的句章级情感分析大多数是面向篇章的情感极性分类问题,即判断给定文本含有正向(积极的)情感或含有负向(消极)情感的问题。按照学习方式的不同,可以分为有监督学习方法和无监督学习方法。在有监督学习方法中,大多数利用传统机器学习方法,首先提取文本的特征,再进行特征的选择和筛选,最后利用诸如支持向量机等分类器进行分类。在无监督学习方法中,利用词的互信息关系、种子词等方法进行情感极性判别。 随着机器学习和深度学习的发展,文本特征的表示成为近十年自然语言处理领域的重要研究内容。特别是表示学习技术可以自动的从数据中抽象出数据的特征表示,并进行语义组合,最终得到文本的抽象表示,利用这个表示进行文本的情感分类。常用的方法包括卷积神经网络、循环神经网络、Transformer以及若干神经网络组合的方法。这些方法从不同角度,在一定范围内提升了文本句子和篇章情感分析的准确率。但是在一些情感分析问题上,仍然缺少丰富的语言学知识和丰富的情感语义组合性。 回到我们的例子“高档酒店不提供免费的洗漱套装?”,该例子属于隐式情感分析,没有显式的情感词,需要背景知识或者常识知识才有可能解决。因此,面对人类这种具备强大的表达力,具有丰富的知识体系和复杂的语境的自然语言,机器还有很长的路要走。 阅读原文