【问题标题】:information retrieval compare wordds信息检索比较词
【发布时间】:2014-10-08 00:24:14
【问题描述】:

我有大约 300 万字来自许多论文研究。

我想根据元数据过滤那些研究。

研究是关于汽车、书籍、食物的。

例如,我有一个包含元数据Toyota的文档

我有另一个包含元数据的文档Toiota

注意ToiotaToyota 相同

请问有什么方法可以解决这个问题?

我尝试过的

我用词干作为词根。

  1. 我先把第一个词干掉

  2. 我把第二个词干掉了

  3. 比较两个根。

我的问题

词干只作用于有意义的词。例如,eating, eat, ate。但是当这个词没有像Toyota这样的含义时,它的词根就是同一个词。

另一个问题

在这种情况下,词干也不起作用:

美国不等于美国,但逻辑上它们是相同的。

谁也有更好的方法?

我不知道 StackOverFlow 中有哪些可用的标签可以解决我的问题,所以欢迎您添加标签。

更新 1

我想在谷歌搜索这个问题,但我不知道搜索时要使用正确的词,你能帮我看看吗?

【问题讨论】:

  • 您可以进行一些距离匹配,但品牌名称几乎无法解决(例如 Lyft 不应与 Lift 相同)。
  • @VonLion 品牌名称根本没有解决方案?
  • @VonLion 我已经更新了我的问题,你能检查一下吗?
  • 我不知所措(无论如何都不是人工智能专家),但也许其他人会加入:)

标签: algorithm information-retrieval


【解决方案1】:

如果您希望 Toiota 与 Toyota 的意思相同,有几种选择:

  1. 硬编码翻译

  2. 自动“拼写检查”查询/文档。如果您的字典中不存在 Toiota,则返回最接近的单词(如果它很接近)。请参阅 Norvig 的拼写校正器。

  3. 比较文档的字符相似性和不完全匹配的单词 {t,o,y,o,t,a} 与 {t,o,i,o,t,a} 有 83% 的重叠。也可以查看 Jaro-Winkler 距离。

对于美国/美国,您可能需要一个同义词文件(国家及其缩写),并为每个文档添加同义词。另一种方法是获取单词并自动缩写它们并将其添加到您的索引中。示例

abbrev('United States') = {'united,'states','us'} --take first letter of each word in multi-part words

abbrev('Canada') = {'canada', 'can'} -- take first three letters of single letter words

【讨论】:

    猜你喜欢
    • 2017-04-02
    • 1970-01-01
    • 2023-03-07
    • 2019-04-07
    • 2015-06-20
    • 2015-03-30
    • 2013-08-08
    • 2011-12-10
    • 2017-06-19
    相关资源
    最近更新 更多