如何使用语义自动标记单词集合?

时间:2015-06-30 21:11:17

标签: python r nlp nltk wordnet

上下文是:我已经有了一系列单词(实际上是短语),这些单词是由应用于互联网搜索查询的kmeans和在搜索引擎的结果中使用常用网址作为距离(如果我的话,网址的共同出现而不是单词)简化很多)。

我想使用语义自动标记聚类,换句话说,我想提取围绕一起考虑的一组短语的主要概念。

例如 - 对于我的例子主题感到抱歉 - 如果我有以下一堆疑问:['我的丈夫袭击了我,'他被警方逮捕了#39; '审判仍在进行中,'我的丈夫可以因为骚扰我而入狱?',#39;免费律师'] 我的研究涉及家庭暴力,但很明显,这个集群专注于问题的法律方面,因此标签可以是合法的"例如。

我是NPL的新手,但我必须确切地说,我不想使用POS标记提取单词(或者至少这不是预期的最终结果,但可能是必要的初步步骤。)

我读了关于感觉消除歧义的Wordnet,我认为这可能是一个很好的轨道,但我不想计算两个查询之间的相似性(因为集群是输入)也没有获得一个选定单词的定义感谢整个单词提供的上下文(在这种情况下要选择哪个单词?)。我想用一大堆单词来提供一个上下文(可能使用同义词或用wordnet的xml结构进行分类),然后用一个或几个单词来概括上下文。

有什么想法吗?我可以使用R或python,我读了一些关于nltk但我找不到在我的上下文中使用它的方法。

4 个答案:

答案 0 :(得分:3)

您最好的选择可能是手动标记群集,特别是如果它们很少。这是一个难以解决的问题,因为您可能需要领域专家。任何声称他们可以自动可靠地执行此操作的人(除非在一些非常有限的域中)可能正在运营创业公司并试图让您的业务发展。

此外,亲自浏览群集也会带来好处。 1)你可能会发现你有错误的簇数(k参数)或输入中有太多的垃圾开始。 2)您将获得对所讨论内容的定性洞察以及数据中的主题(在查看数据之前您可能无法知道)。因此,如果您追求的是定性洞察力,请手动标记。如果您还需要定量结果,则可以在手动标记的主题上训练分类器:1)预测其余群集的主题,或2)以备将来使用,如果重复群集,获取新数据,......

答案 1 :(得分:1)

当我们谈论这个领域的语义时,我们指的是统计语义。统计或分布语义与语义的其他定义非常不同,后者具有逻辑和推理。统计语义基于分布假设,它将上下文视为单词和短语的含义方面。在不同的文学家中,非常抽象和一般意义上的含义被称为主题。有几种用于建模主题的无监督方法,例如LDA甚至word2vec,它们基本上提供单词相似性度量或建议文档的相似单词列表作为另一个上下文。通常,当您拥有这些无监督的群集时,您需要域专家来告知每个群集的含义。

但是,由于多种原因,您可能会接受将单词作为常规主题(或在单词“全局语义”中)的低精度分配到短语列表。如果是这种情况,我建议你看看Word Sense Disambiguation任务,它们寻找粗粒度的单词感官。对于WordNet,它可能被称为超感知标记任务。

本文值得一看:More or less supervised supersense tagging of Twitter

关于你从当前短语中选择单词的问题,还有一个关于“将短语转换为向量”的活跃问题,我以word2vec方式回答这个问题可能有用: How can a sentence or a document be converted to a vector?

如果我想到的话,我可以在以后添加更多相关论文。

答案 2 :(得分:1)

论文Automatic Labelling of Topic Models解释了作者对这个问题的处理方法。为了提供概述,我可以告诉您,他们使用从维基百科和谷歌检索到的信息生成一些候选标签,一旦他们有候选人名单,他们就会对这些候选人进行排名以找到最佳标签。

我认为代码不能在线获取,但我没有找到它。

答案 3 :(得分:0)

chowmein声称使用Automatic Labeling of Multinomial Topic Models中概述的算法在python中执行此操作。