如何在Python中进行语义匹配



问题:

我正在尝试在Python中对一组单词使用语义匹配。

样本输入:

['error 1', '14_7error', 'err_87P', 'configuration 49-ñ', 'confi:p2g%']

样本输出:

['error 1,14_7error,err_87P', 'configuration 49-ñ','confi:p2g%']

我尝试过的:

我已经尝试过使用sklearn,但可以让它工作,代码:

from sklearn.feature_extraction.text import TfidfVectorizer
documents = ['error 1', '14_7error', 'err_87P', 'configuration 49-ñ', 'confi:p2g%']
tfidf = TfidfVectorizer().fit_transform(documents)
pairwise_similarity = (tfidf * tfidf.T).toarray()

我也看过:

  • Python:字符串的语义相似性评分
  • 如何计算两个文本文档之间的相似性

但这些都没有多大帮助。

查看您的输入数据,您的目标似乎不是语义匹配,而是字符串匹配。你可以使用fuzzywuzzy来做到这一点:

from fuzzywuzzy import process 
documents = ['error 1', '14_7error', 'err_87P', 'configuration 49-ñ', 'confi:p2g%']
results = [[i, process.extractOne(i, [x for x in documents if x != i])] for i in documents]

具有匹配分数的最佳匹配结果:[['error 1', ('14_7error', 71)], ['14_7error', ('error 1', 71)], ['err_87P', ('error 1', 43)], ['configuration 49-ñ', ('confi:p2g%', 60)], ['confi:p2g%', ('configuration 49-ñ', 60)]]

最新更新