python - sentiwordnet python中的词义消歧

标签 python nlp wordnet sentiment-analysis word-sense-disambiguation

我目前正在研究 Twitter 中的情绪分析。 我想结合预定义的词典资源,如 sentiwordnet 极性分数。然后进行机器学习。 问题在于获得 sentiwordnet 的正确分数,以前的工作总是简单地根据词义的负极性和正极性的总分来选择。 我的意思是,例如“疯狂”这个词可以出现 3 次是消极的,2 次是积极的。 大多数以前的工作会自动平均每个极性。 所以我想在获得分数之前消除单词的歧义,这样我们才能真正使用 sentiwordnet。 我在想通过比较目标句和光泽句的相似度.. 有什么方法可以比较吗?你认为它会起作用吗? 如果没有,请分享您的想法..

我是这个领域的新手,也是新手 python 程序员,所以我真的需要你的建议.. 谢谢..

最佳答案

这是一个词义消歧问题,要让您的系统在任何给定的多义词上都能很好地工作将非常困难。您可以尝试(组合)几种方法来确定单词的正确含义:

  1. 位置标注会减少候选感官的数量。

  2. WordNet 中句子与词义的余弦相似度。

  3. 使用 SenseRelate :它衡量目标词与其周围词的不同意义之间的“WordNet相似度”。

  4. 使用 WordNet Domains :数据库包含分配给每个 WordNet 意义的域标签,例如“音乐”代表“摇滚”的音乐意义。您可以比较其中的域标签,而不是比较在注释和句子中找到的实际单词。

  5. 不是通过在其中找到的单词本身来表示注释和句子,而是作为单词的平均共现向量。可以使用大型文本语料库构建此类向量,最好来自与要消除歧义的文本相同的应用领域。有多种技术可以改进此类共现向量(tf-idf、PCA、SVD),您应该单独阅读它们。

如果您的文本来自非常专业的领域(例如法律),则准确度会更高。但是,如果您使用的是通用语言文本,那么您只能期望非高度多义词(如果它们在 WordNet 中的意义不超过 3-4)的词具有良好的准确性

关于python - sentiwordnet python中的词义消歧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942406/

相关文章:

python - 从庞大的邻接列表中提取边缘列表的最有效方法是什么?

python - 数据建模、Flask-SQLAlchemy 和插件

python - 使用图像相似性度量进行图像搜索

java - 从 wordnet 获取属性

java - 改进基于上下文的搜索

python - NLTK 分类和 WordNet with Text Blob

python - Pandas DataFrame 没有完整的数据,而是使用三个点

java - DKPro Core Groovy 使用和通过 UIMA 安装

python - 大型数据集的 TFIDF

nlp - 如何为SVM构建关系提取特征?