【问题标题】:word sense disambiguation in sentiwordnet pythonsentiwordnet python中的词义消歧
【发布时间】:2013-04-03 06:31:18
【问题描述】:
我目前正在研究 Twitter 中的情绪分析。
我想结合预定义的词典资源,如 sentiwordnet 极性分数。然后进行机器学习。
问题是在得到sentiwordnet的正确分数上,以前的工作总是简单地通过词义的正负极性总分来选择。
我的意思是,例如“mad”这个词可以出现 3 次否定词和 2 次肯定词。
以前的大部分工作都会自动平均每个极性。
所以我想在得到分数之前消除单词的歧义,这样我们就可以真正使用应该的 sentiwordnet。
我正在通过比较目标句和光泽句的相似性来思考..
有什么方法可以比较吗?你认为它会起作用吗?
如果没有,请分享您的想法..
我是这个领域的新手和新手 python 程序员,所以我真的需要你的建议..
谢谢你。。
【问题讨论】:
标签:
python
nlp
wordnet
sentiment-analysis
word-sense-disambiguation
【解决方案1】:
这是一个词义消歧问题,要让您的系统在任何给定的多义词上正常工作将非常困难。您可以尝试(组合)几种方法来确定单词的正确含义:
位置标记会减少候选词义的数量。
WordNet 中句子的余弦相似度与词义的光泽度。
使用SenseRelate:测量目标词与其周围词的不同意义之间的“WordNet相似度”。
使用WordNet Domains:数据库包含分配给每个WordNet 意义的域标签,例如“摇滚”的音乐意义的“音乐”。无需比较在注释和句子中找到的实际单词,您可以比较在它们中找到的域标签。
不是通过在其中找到的单词本身来表示光泽和句子,而是作为单词的平均共现向量。可以使用大型文本语料库构建此类向量,最好来自与您正在消除歧义的文本相同的应用程序域。有多种技术可以细化此类共现向量(tf-idf、PCA、SVD),您应该单独阅读它们。
如果您的文本来自非常专业的领域(例如法律),则准确度会更高。但是,如果您使用通用语言文本,那么您只能期望在不高度多义的单词上具有良好的准确性(如果它们在 WordNet 中不超过 3-4 种意义)