我正在努力找出最好的方法,以及我想要实现的目标的最佳度量。
我正在寻找文本之间的相似性值,例如:
Keyword: "why can't dogs eat chocolate"
文本:"Chocolate is toxic to dogs because it contains theobromine and to a lesser extent, caffeine."
虽然文本中没有确切的关键字,但其含义大致相同。
目前我使用模糊字符串匹配,但不认为这是理想的。(使用Thefuzz模块)
value = fuzz.token_set_ratio(keyword, text)
从某种意义上说,我只是想找出关键字的"core meaning"
是否可以在文本中找到,即使它是一个巨大的文本。
在python中有一个RapidFuzz库。用c++编写,处理大数据的速度更快。
有很多配置,你可以找到最适合你的。
下面是
的用法一个例子,你可以提取最相似的查询,也可以用许多处理器来做。不需要通过self实现
rapidfuzz.process.extract(query, choices, *, scorer=<cyfunction WRatio>, processor=<cyfunction default_process>, limit=5, score_cutoff=None, score_hint=None, **kwargs)