我目前正在尝试实现一种搜索算法,用户将输入一个字符串查询,该查询将与包含字符串“标签”或仅单个单词字符串的对象的对象进行比较。我希望结果是按与该查询最匹配的列表排序的对象列表。
我当前的实现是在查询的每个标签上使用Levenshtein距离,将其加到总数中,然后除以标签数。但是,我正在想像这种方法有很多缺点,并且想知道是否有更通用的方法来解决这个问题。
答案 0 :(得分:0)
我认为这是相似的。 How to extract keywords (tags) from text
您的查询需要多长时间????
对于小的查询文字,您可以访问
https://towardsdatascience.com/extracting-keywords-from-short-text-fce39157166b
我认为Levenshtein距离不是生成令牌的非常有效的方法。它基于匹配的字符串miss,但是从查询中您想知道代表查询意图的关键字,然后从标签列表中进行检查,非常适合它。
您可以使用许多可用的库,例如nltk,apache open nlp等。他们直接生成令牌。
这可能会对您有所帮助。 How to extract keywords (tags) from text