【问题标题】:How to automatically label a cluster of words using semantics?如何使用语义自动标记一组单词?
【发布时间】: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 集群)。

标签: python r nlp nltk wordnet


【解决方案1】:

您最好的选择可能是手动标记集群,尤其是在集群很少的情况下。即使是人类也很难解决这个问题,因为您可能需要领域专家。任何声称他们可以自动且可靠地做到这一点的人(在一些非常有限的领域除外)都可能正在经营一家初创公司并试图获得您的业务。

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

【讨论】:

  • 感谢您的回答,但您应该对其进行编辑并将其移至 cmets。这不是我问题的正确答案,因为我想自动执行此操作。也许在这一点上是不可能的,也许其他人有想法或面临同样的问题。我没有足够的集群来训练算法,甚至,我必须先在训练测试中手动进行标记。所以......我并不是说这样做不相关(我实际上会手动进行以与自动方法进行比较),但仍然不是我的问题的正确答案......虽然谢谢
  • Stéphanie,如果您没有足够的集群来训练算法,请按照他在第一段中的建议;如果你这样做了,或者准备好了,请遵循第二段中的建议:-)
  • @DarrenCook,还有其他曲目,并非所有内容都必须手动处理或使用机器学习处理 ;-),我正在关注曲目 [stackoverflow.com/questions/21902411/…,如果它确实解决了我的问题,我会提供反馈铅
  • 这是一个非常鼓舞人心的开始
【解决方案2】:

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

但是,出于多种原因,您可能会接受将一个词作为一般主题(或您的词中的“全局语义”)分配给短语列表的低准确度。如果是这种情况,我建议看一下寻找粗粒度词义的词义消歧任务。对于 WordNet,它可能被称为超感标注任务。

这篇论文值得一看:More or less supervised supersense tagging of Twitter

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

如果我想到了,我可以稍后添加更多相关论文。

【讨论】:

  • 谢谢@Mehdi,我会看看这些参考资料!
【解决方案3】:

论文Automatic Labelling of Topic Models 解释了作者解决这个问题的方法。为了提供概述,我可以告诉您,他们使用从 Wikipedia 和 Google 检索到的信息生成了一些标签候选者,一旦他们获得了候选者列表,他们就会对这些候选者进行排名以找到最佳标签。

我想代码在网上没有,但我没有找过。

【讨论】:

  • 非常感谢您重新激活我的问题!我会看看你的参考资料,然后回到这里
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    以下论文建议的一种可能方法是从集群中识别一组关键字,获取所有同义词,然后找到每个同义词的上位词。 这个想法是通过使用上位词为集群获得更抽象的含义。 示例:包含单词dogwolf 的单词簇不应标记为任一单词,而应标记为canids。他们使用同义词和上位词来实现它。

    Cluster Labeling by Word Embeddings and WordNet’s Hypernymy

    Automated Text Clustering and Labeling using Hypernyms

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      相关资源
      最近更新 更多