我有 2 列疾病名称,我必须尝试匹配最佳选项。我尝试在 python 中使用“SequenceMatcher”模块和“fuzzywuzzy”模块,结果令人惊讶。我在下面粘贴了结果和我的疑问:
考虑有一种疾病“肝脏肿瘤”,我需要匹配最佳匹配名称“癌症,肝脏”或“癌症,乳房”。现在很明显,由于肝脏是一个匹配词,它应该很容易选择“癌症,肝脏”作为答案,但这并没有发生。我想知道在python中匹配的原因和更好的方法。
from difflib import SequenceMatcher
s1 = 'liver neoplasms'
s2 = 'cancer, liver'
SequenceMatcher(None, s1, s2).ratio()
# Answer = 0.3571
s2 = 'cancer, breast'
SequenceMatcher(None, s1, s2).ratio()
# Answer = 0.4137
# fuzzy.ratio also has the same results.
我的疑问是癌症,乳房如何比癌症,肝脏更匹配。我可以使用哪些其他技术来正确完成这项工作?
谢谢 :)