情感分析中的词性技术是什么?

数据挖掘 机器学习 情绪分析
2021-09-29 13:37:36

在一篇文章中,我看到了使用词性(POS)技术进行情感分析。当我搜索时,我得到了一些关于 POS 的论文,但我不明白 POS 基本上是什么。虽然我是情绪分析的新手,但请帮助我理解 POS。

3个回答

词性(POS)

当您标记一个句子或许多句子的每个单词(通常称为标记)时,这就是所谓的。通常它们用语法描述来标记,例如名词、形容词、副词它们通常可以非常具体,例如区分名词类型(专有名词等)。

然后,您可以使用这些标记的描述作为模型的输入,或者过滤标记以仅提取您感兴趣的部分。

当我们使用 NLP 工具包(例如spaCy )解析文本块时,POS 通常是输出的一部分在这里查看他们可用的 POS

这是句子的解析树片段 : Apple 正在考虑以 10 亿美元收购一家英国初创公司。

解析树的开始

Apple 已被认为是专有名词 ( NNP) 以及第一个动词的主语(如箭头所示nsubj)。

有关 NLP 中许多其他术语以及 POS 的精彩介绍,请查看这篇文章。.

情绪分析视角

将 POS 包含在情感模型中的原因有很多(下面有一些示例),但它们实际上都归结为一个首要原因:多义词其中的定义是:

一个单词或短语的许多可能含义的共存。

所以本质上说,不同上下文中的单词可以有不同的含义。这当然是我们可以传递给模型的大量信息!

这个词可以是名词(鸟)或动词(动作,蹲下)。如果我们可以告诉模型它是给定句子中的哪一个,则模型可以学会从句子中理解更多。

除了区分单个单词的含义之外,我们还可以简单地在它们的用法或位置上使用它们。一个示例用法是使用副词:但是

如果我们的解析器足够好,可以告诉我们它在特定句子中用作对比连词(从技术上讲,这在语法上是不正确的!)。一个例句可能是:

我真的很喜欢松饼,但是,我讨厌草莓。

我们有两个子句:一个肯定的在然而之前和一个之后。第一个子句是肯定的,后一个子句是否定的。如果我们对每个子句的情绪(可能是该子句​​中每个单词的平均值)都有一个-5ro量表,+5我们可以想象诸如+3积极子句和-3消极子句的分数。

这是我看到一些模型(Vader、SentiStrength 等)使用 POS 来衡量这些基本分数的地方。然而,在我们的例子中,也许会被用来将否定从句的得分幅度增加 10%,最终得分为-3.3. 这是否有意义取决于用例、数据以及开发人员的一般经验。

概括

POS有很多用途,你可以想象不少,是否手工定制一个情感模型只是为了产生更多的特征。无论如何,这是一个从原始原始文本中提取更多信息的过程,应用已经过测试并且已知对于任何官方写作形式都具有鲁棒性的语言模型(如语法!)。

词性解释了一个词在句子中是如何使用的,即它是动词、名词、形容词等等。在文本处理中,这些词性(或词类)通常表示为它们的缩写,我们称之为tag

例如,如果我们使用nltk,它使用 Penn Treebank 标记集作为默认值。 https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html

import nltk
nltk.pos_tag(['I', 'like', 'playing', 'tennis'])

它将输出:

[('I', 'PRP'), ('like', 'VBP'), ('playing', 'VBG'), ('tennis', 'NN')]

我们可以检查nltk.help.upenn_tagset(),我们知道:

PRP : Personal Pronoun
VBP : Verb, non-3rd person singular present 
VBG : Verb, gerund or present participle
NN  : Noun, singular or mass

POS 可用于文本分析中的多个应用程序。文本分析中的大多数技术都适用于标记化和 N 克(将句子分解为单词)。在大多数情况下,文本的语义会丢失,因为句子被分解成单词,并且与一组单词或句子相比,单独的单词无法表达情感和语义。因此,通过将语料库中的每个单词标记到其词性,有时可以很容易地获得使用该单词并最终用于分析情绪的上下文。

我在 Python 中尝试了 Text Blob 和 NLTK 包进行文本分析。有关这些软件包的使用的更多信息,请参阅以下链接。

https://www.nltk.org/ https://pythonprogramming.net/tokenizing-words-sentences-nltk-tutorial/ https://textblob.readthedocs.io/en/dev/quickstart.html https://textblob .readthedocs.io/en/dev/