TensorFlow知识图谱实战
上QQ阅读APP看书,第一时间看更新

1.2 自然语言处理为什么难——以最简单的情感分析为例

1.2.1 自然语言处理的难点

自然语言处理的目标是让计算机理解人类的语言,从而弥补人类交流(自然语言)和计算机理解(机器语言)之间的差距。为了达到这个目标,自然语言处理被分为三大核心任务:自然语言理解、自然语言生成,以及综合这两个方面的自然语言交互。

  • 自然语言理解(Natural Language Understanding,NLU):自然语言理解在很大程度上被视为自然语言处理的一个子集,专注于单词的实际含义,这可能与它们在语义结构上的方式不一致。它提供了对在涉及讽刺、反讽、情感、幽默、俗语等情况下如何使用术语的理解。根据Moore的说法,在大多数依赖NLP的文本分析平台中,通常NLU是其中的一部分,因为大多数人现在并不希望单独进行情感或上下文分析或提取。所以,它们肯定是结合在一起的。
  • 自然语言生成(Natural Language Generation,NLG):自然语言生成与自然语言理解的观点相反,它不是对语言的语义含义的分析,而是对语言的产生或生成(通常是文本或语音)的分析。
  • 自然语言交互(Natural Language Interaction,NLI):自然语言交互在某种程度上是这些技术的结合——尽管它不需要涉及NLU,用户通过自然语言与系统进行通信、唤起响应。“这是你通过输入或说出命令来发出命令的能力”,摩尔表示。这就是互动部分。然后,它就能产生一个响应,要么是一个自动的语音回复,要么是一个输入的响应。前者的例子包括Alexa或Siri等数字代理,它们通过NLG产生这些响应。

所以,自然语言处理包含很多任务,比如词性标注、命名实体识别、信息抽取、文本分类、信息检索、机器翻译、文本生成等。自然语言处理难的本质在于语言是典型的无结构数据,由表面的文字符号组合成背后所要表达的语义,形成一种错综复杂的符号系统。自然语言处理就是要学习语言序列所表示的语义,而语义受谈话人(主观性)、谈话场景(语境)、谈话时间(旧词新意)等影响,因此自然语言处理存在诸多难点。

以情感分析为例,拿比较熟悉的场景来说,“高档酒店不提供免费的洗漱套装?”这句话的场景发生在酒店,描述的虽然是洗漱套装,但是评价的是酒店的服务,表达了一种负向的情感。那么,机器如何来对上述语句进行情感分析呢?

情感分析(Sentiment Analysis)的目的在于自动地从文本中发现和归纳人们对产品、人物、公司、组织机构、事件、话题等的态度、意见和情绪等,对其中的主观情感信息进行挖掘。人类的主观情感因素影响着自身的行为,因此了解人们对某个事物的情感态度对于预测其行为并针对性地做出应对决策有着十分重要的意义。同样,当人们在通过网络购物平台进行购物时,可以参考其他消费者对该物品或服务的评论,进而做出购买决定;从企业角度来说,企业可以通过网络文本了解消费者对其提供的产品和服务的评价,进而帮助公司做出生产、销售和宣传的决策。

按照文本的不同粒度,文本情感分析分为词语级、句章级和属性级情感分析。

  • 词语级情感分析包括情感词的抽取和情感词的表示学习。情感词是指语料中带有情感倾向的词语。
  • 句章级情感分析是指对整句文本或整篇文档进行一个总体的情感极性的判别,常用于微博、电影、酒店、餐饮等文本数据的分析中。
  • 属性级情感分析是指针对文本中的特定实体(属性)进行情感极性的判别,常用于不同商品的特定属性的数据分析中。

自然语言处理关键是语义表示,从语言的粒度上看,语言是由词构成句子、句子构成篇章的。对于情感分析任务,同样可以从词级、句子级、篇章级来解决语义表示问题。

早期的词语级情感分析任务主要是对文本中的情感词进行抽取,通常是情感分析的基础任务。因此,这部分工作研究广泛,情感词抽取方法大致可分为两大类,分别是基于知识库的方法和基于语料库的方法。

(1)基于知识库的方法主要借助知识库资源(如WordNet、HowNet等)中词与词之间的关系,比如同义词关系、反义词关系等来判断词语的情感极性。虽然基于知识库的方法较易获得大量情感词典,但是这种方法不适用于特定领域或特定场景的情感分析。

(2)基于语料库的方法假设具有相同情感极性的词通常在同一句子中。因此,这类方法首先通过人工标注一小部分种子情感词,然后通过词与词之间的共现关系来判断情感词的极性。

基于语料库的方法召回率比较低,如果一个情感词不与任何种子情感词共现,那么这个情感词就很难被识别。近年来,随着深度学习和表示学习技术应用于自然语言处理中,词的表示学习受到研究者的重视,词向量的学习成为自然语言处理领域中最基本的任务。

因此,在面向情感分析任务时,通常会先学习情感词向量。情感词向量模型的目标是在输入语料上学习一组词向量,使得学习到的词向量不仅具有语法和语义上的相似性,还具有情感极性的区分性。

情感词向量的学习模型基本是在已有的词向量学习模型基础上添加有监督的学习过程中得到的。近两年,随着大规模预训练语言模型的兴起,情感词向量的学习已经不是情感分析任务必做的步骤了,更偏向于做句子和篇章级情感分析对文档的整体情感极性进行判别。

按照学习方式的不同,可以分为有监督学习方法和无监督学习方法。在有监督学习方法中,大多数利用传统机器学习方法,首先提取文本的特征,再进行特征的选择和筛选,最后利用诸如支持向量机等分类器进行分类。

在无监督学习方法中,利用词的互信息关系、种子词等方法进行情感极性判别。随着机器学习和深度学习的发展,文本特征的表示成为近十年自然语言处理领域的重要研究内容。特别是表示学习技术,可以自动地从数据中抽象出数据的特征表示,并进行语义组合,最终得到文本的抽象表示,利用这个表示进行文本的情感分类。

常用的方法包括卷积神经网络、循环神经网络、Transformer以及若干神经网络组合的方法。这些方法从不同角度在一定范围内提升了文本句子和篇章情感分析的准确率。在一些情感分析问题上,仍然缺少丰富的语言学知识和丰富的情感语义组合性。

回到开始的例子“高档酒店不提供免费的洗漱套装?”,该例子属于隐式情感分析,没有显式的情感词,需要背景知识或者常识知识才有可能解决。因此,面对人类这种具备强大的表达力、具有丰富的知识体系和复杂的语境的自然语言,机器还有很长的路要走。