信息检索比较词

时间:2014-08-14 11:07:45

标签: algorithm information-retrieval

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

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

该研究涉及汽车,书籍,食品。

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

的文档

我有另一个包含元数据Toiota

的文档

请注意ToiotaToyota

相同

请问有哪些方法可以解决这个问题?

我尝试了什么

我使用了一个词根来取词。

  1. 我阻止第一个词取根

  2. 我根据第二个词来取根

  3. 比较两个根。

  4. 我的问题

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

    另一个问题

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

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

    任何人都有更好的方法吗?

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

    更新1

    我想在gooogle中搜索这个问题,但我不知道搜索时使用的正确单词,你能帮我pelase吗?

1 个答案:

答案 0 :(得分:0)

如果你希望Toiota与丰田的意思相同,那么有几个选择:

  1. 硬编码翻译

  2. 自动“拼写检查”查询/文档。如果您的词典中不存在Toiota,则返回最接近的单词(如果它已关闭)。见Norvig的拼写纠正器。

  3. 比较有关字符相似性的文档而不是确切的字匹配{t,o,y,o,t,a}与{t,o,i,o,t,a}有83%的重叠。查看Jaro-Winkler距离。

  4. 对于美国/美国,您可能需要同义词文件(国家/地区及其缩写),并为每个文档添加同义词。另一种方法是使用单词并自动缩写它们并在索引中添加它。实施例

    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