【问题标题】:Proper approach to get words like "dentistry", "dentist" from query like "dental" (and vice versa)从“牙科”等查询中获取“牙科”、“牙医”等词的正确方法(反之亦然)
【发布时间】:2012-04-20 20:09:51
【问题描述】:

我对词干有些熟悉,但是我被指定用于项目的词干库在我想查找相关词的情况下效果不佳,例如查询任何这些:

“牙科”、“牙医”、“牙科”

我应该为其他人找个火柴。我一直在研究这个,我正在学习我什至不知道存在的词性,比如 pertainyms 和 troponyms 所以我想知道是否没有一个图书馆可以在所有这些之间进行映射不同的词性可以返回我正在寻找的那种匹配?

我一直在搜索这个,但没有找到很多我能理解的东西。我可能不知道正确的术语等,如果有人能指出正确的方向,我将不胜感激。

【问题讨论】:

  • Pertainyms 和 troponyms 不是词性,而是词的关系。

标签: search text nlp stemming


【解决方案1】:

IR 中常见的一种方法是对索引和查询本身中的所有单词进行词干处理。意思是,包含单词“dentistry”的文档将被提取并作为“dentist”存储在索引中。关键字“dental”也被称为“dentist”,从而在索引中匹配它。

【讨论】:

  • 我认为我们现有的词干提取算法一定不是最佳的,因为它不会将“牙科”或“牙科”之类的词提取为“牙医”,所以我想这就是问题所在
  • 是的!这是精度和召回率之间的交易。但是,在查询和文档中都这样做的美妙之处在于,您不必为像牙医这样的词列举所有可能性(即牙科、牙科)。相反,它们已经根据它们的词干被索引或分组。尽管这是一个精确度问题,尤其是当您的示例词都被称为“凹痕”时。
【解决方案2】:

看看WordNet。 WordNet 是一个有组织的单词和概念本体,带有用于单词之间各种类型关系的链接。我不确定它是否会有你想要的关系,但这可能是一个好的开始。各种编程语言有很多接口(我用过的 Java 和 Python;大概还有更多)。

【讨论】:

  • 酷,Java 是我将使用它的...很多东西
  • 特别是推导关系这个词可能是你需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多