我有大约300万字来自许多论文研究。
我想根据元数据过滤那些研究。
该研究涉及汽车,书籍,食品。例如,我有一个包含元数据Toyota
我有另一个包含元数据Toiota
请注意Toiota
与Toyota
请问有哪些方法可以解决这个问题?
我使用了一个词根来取词。
我阻止第一个词取根
我根据第二个词来取根
比较两个根。
词干只适用于有意义的词。例如,eating, eat, ate
。但是当这个词没有像Toyota
这样的含义时,它的根就是完全相同的词。
在这种情况下,词干也不起作用:
美国并不等于美国,但逻辑上它们是相同的。任何人都有更好的方法吗?
我不知道StackOverFlow中哪些标签可以解决我的问题,欢迎您添加标签。
我想在gooogle中搜索这个问题,但我不知道搜索时使用的正确单词,你能帮我pelase吗?
答案 0 :(得分:0)
如果你希望Toiota与丰田的意思相同,那么有几个选择:
硬编码翻译
自动“拼写检查”查询/文档。如果您的词典中不存在Toiota,则返回最接近的单词(如果它已关闭)。见Norvig的拼写纠正器。
比较有关字符相似性的文档而不是确切的字匹配{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