如何在字符串中找到与给定单词相关的单词,然后将情绪与找到的单词相关联?

人工智能 自然语言处理 情绪分析 词干 词形还原
2021-10-28 10:04:40

我想出了一个与 NLP 相关的问题,我有一个单词列表和一个字符串。我的目标是在与给定字符串相关的单词列表中找到任何单词。

这是一个例子。

假设列表中的一个词是健康的。如果字符串有以下任何单词:healthy、healther、healthiest、nothealthy、morehealthy、零健康等,将从字符串中提取。

另外,我想判断提取的单词/s是否带有正面/负面情绪。

让我用前面的例子进一步解释我的意思。

我们的话是健康的。因此,例如,如果在字符串中找到的单词更健康,那么我们可以说它对单词health具有积极的情绪如果我们发现“不健康”这个词,就“健康”这个词而言,它是负面的。

1个回答

有很多方法可以解决这个问题。一种方法是应用词干或词形还原来减少你的单词。例如,使用 NLTK 的 Porter 词干分析器对健康、更健康、最健康、不健康、更健康和零健康给出:

healthi , healthier , healthiest , not healthi , more healthi , zero healthi

这有助于使单词比较更容易。

对短语的情感分析将提供正面、中性和负面的分数。有很多算法可以做到这一点,但常见的一种是 Valence Aware Dictionary 和 sEntiment Reasoner (VADER)。这是最近的一篇文章,其中包含使用 NLTK 和 VADER 词典的代码:

以下文章还使用 NLTK 进行情感分析,包括词干提取和词形还原。他们不是 VADER,而是在标记的推文数据集上使用朴素贝叶斯分类器:如何使用Saumik Daityari 的自然语言工具包 (NLTK) 在 Python 3 中执行情感分析。