【发布时间】:2015-06-30 21:11:17
【问题描述】:
上下文是:我已经有一组词(实际上是短语),这些词是由应用于互联网搜索查询的 kmeans 产生的,并在搜索引擎的结果中使用常见的 url 作为距离(如果我简化很多)。
我想使用语义自动标记集群,换句话说,我想提取围绕一组短语一起考虑的主要概念。
例如 - 对不起我的例子的主题 - 如果我有以下一堆疑问:['我丈夫袭击了我','他被警察逮捕','审判仍在进行中','我丈夫可以因为骚扰我而入狱?','免费律师'] 我的研究涉及家庭暴力,但很明显,这个集群侧重于问题的法律方面,因此标签可能是“合法的”。
我是 NPL 的新手,但我必须明确我不想使用 POS 标记来提取单词(或者至少这不是预期的最终结果,但可能是必要的初步步骤)。
我阅读了有关 Wordnet 进行语义消歧的文章,我认为这可能是一个很好的途径,但我不想计算两个查询之间的相似性(因为集群是输入),也不想获得一个选定单词的定义,这要归功于整个单词提供的上下文(在这种情况下选择哪个单词?)。我想用一大堆词来提供一个上下文(可能使用同义词集或使用 wordnet 的 xml 结构进行分类),然后用一个或几个词来总结上下文。
有什么想法吗?我可以使用 R 或 python,我阅读了一些关于 nltk 的信息,但我没有找到在我的上下文中使用它的方法。
【问题讨论】:
-
你看过包 topicmodel 和 mallet 吗?您似乎想识别集群中的主题。
-
没有,谢谢你的建议,我去看看!
-
@lawyerR 我看了看,发现 LDA 或更一般的建模顶部使用已经成为初始集合一部分的单词。这不是我的情况,在我的示例中,法律维度来自共享语义,而不是法律词本身的更高频率。因此 wordnet 的想法
-
这个问题有点哲学。例如,在您的示例中,主题可能是“犯罪”而不是“法律”。也许你应该有一组主题(几个词作为主题)与你的短语集群并行。然后,您可以将排序的单词列表分配为主题。这就是 LDA 的全部意义所在。据我了解,对您而言,“语义”实际上是该短语的主题。
-
@lawyeR 主题模型不会为生成的主题提供有意义的名称。此外,OP 已经知道“主题”是什么(k-means 集群)。