1

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

我对这个领域和新手python程序员完全陌生,所以我真的需要你的建议..谢谢..

4

1 回答 1

4

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

  1. 位置标记将减少候选感官的数量。

  2. WordNet 中句子的余弦相似度和每个词义的光泽度。

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

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

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

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

于 2013-04-12T09:48:33.480 回答