首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信息检索比较字

信息检索比较字
EN

Stack Overflow用户
提问于 2014-08-14 11:07:45
回答 1查看 59关注 0票数 0

我有大约三百万字来自于许多论文研究。

我想根据元数据对研究进行过滤。

这项研究是关于汽车、书籍、食品的。

例如,我有一个带有元数据Toyota的文档。

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

请注意,ToiotaToyota相同

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

我试过的

我用词干来取词根。

  1. 我把第一个词写在词根上
  2. 我用第二个词作为词根
  3. 比较这两个根。

我的问题

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

另一个问题

在这种情况下,阀杆也不起作用:

美国并不等于美国,但从逻辑上讲,它们是一样的。

有谁有更好的方法吗?

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

更新1

我想在gooogle里搜索这个问题,但是我不知道搜索时正确的单词,你能帮我弹一下吗?

EN

回答 1

Stack Overflow用户

发布于 2014-08-21 17:48:22

如果你想让Toiota的意思和丰田( Toyota )一样,有几种选择:

  1. 硬编码翻译
  2. 自动“拼写检查”查询/文档。如果字典中不存在Toiota,那么返回最接近的单词,如果它是接近的。见Norvig的拼写校正器。
  3. 比较字符相似性和不精确匹配的文档{t,o,y,o,t,a}与{t,o,i,o,t,a}有83%的重叠。看看Jaro-Winkler的距离。

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

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25306558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档