如何根据初始关键字来增加相关单词的列表?


19

我最近看到了一个很棒的功能,该功能曾经在Google表格中提供:您可以在连续的单元格中编写一些相关的关键字,例如:“蓝色”,“绿色”,“黄色”,它会自动生成类似的关键字(在这种情况下, ,其他颜色)。观看此YouTube视频中的更多示例。

我想在自己的程序中重现此内容。我正在考虑使用Freebase,并且它可以像这样直观地工作:

  1. 检索Freebase中给定单词的列表;
  2. 找到他们的“公分母”,并以此为基础构建距离度量;
  3. 根据与原始关键字的“距离”对其他概念进行排名;
  4. 显示下一个最接近的概念。

由于我不熟悉该领域,因此我的问题是:

  • 有一个更好的方法吗?
  • 每个步骤都有哪些工具可用?

我的猜测是,这是基于大型语料库中的学习主题。
tchakravarty 2014年

如果您想找到他们的解释,我相信关于基础方法的论文叫做Google Sets。
jamesmf 2015年

1
此问题称为“查询扩展”。
Emre

Answers:


15

word2vec算法可检索的相似的单词列表更多元素的好方法。这是一种无监督的“深度学习”算法,之前已通过基于Wikipedia的训练数据进行了演示(Google脚本页上提供了辅助脚本)。

当前有CPython实现。本教程拉迪姆Řehůřek中,笔者Gensim主题建模库,是一个很好的开端。

教程中的“单个主题”演示是将单个单词检索为相似单词的一个很好的例子(尝试搜索“红色”或“黄色”)。应该有可能扩展该技术以找到与一组输入单词具有最大整体相似性的单词。


5

您是否考虑过一种基于频率的语料库中利用简单单词共现的方法?至少,这就是我看到的大多数人用于此目的的内容。我认为这可能会在曼宁和舒兹的书中简要介绍,而且我似乎还记得像这样的东西,这是他在读研究生时做的一项家庭作业。

此处提供更多背景信息:http : //nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

对于此步骤:

根据与原始关键字的“距离”对其他概念进行排名;

您可以研究几种语义相似性指标。这是我使用WordNet中的一些相似性指标为课程项目整理的一些幻灯片的链接:http : //www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity。 pdf格式


3

这是一个不错的问题之一,范围可能从家庭作业分配到Google规模项目而有所不同。

确实,您可以从单词的同时出现开始(例如,条件概率)。您会很快发现,您得到的停用词列表与大多数词语相关,这仅仅是因为它们非常受欢迎。使用条件概率的提升会处理停用词,但会使该关系在少数情况下容易出错(大多数情况下)。您可以尝试使用Jacard,但由于它是对称的,因此将找不到许多关系。

然后,您可能会考虑仅在距基本单词不远的地方出现的关系。您可以(并且应该)基于一般语料库(例如Wikipedia)和特定于用户(例如他的电子邮件)的关系。

很快,当所有措施都很好并且相对于其他措施有一些优势时,您将拥有大量的关联性措施。

为了结合这些措施,我希望将问题简化为分类问题。

您应该建立一个巴黎词组数据集,并将其标记为“相关”。为了构建一个大标签数据集,您可以:

  • 使用已知相关单词的来源(例如,良好的旧Wikipedia类别)进行肯定
  • 大多数不相关的词都不相关。

然后将所有具有的度量用作对的特征。现在您处于监督分类问题的领域。在数据集上建立分类器,根据您的需求进行评估,并获得适合您需求的相似性度量。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.