如何在Python中进行语义匹配?

2024-09-29 01:27:28 发布

您现在位置: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()

我还研究了:

但这些都没有起到多大作用


Tags: 代码textfrom语义errorsklearn单词configuration
1条回答
网友
1楼 · 发布于 2024-09-29 01:27:28

查看输入数据,您的目标似乎不是语义匹配,而是字符串匹配。您可以使用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)]]

相关问题 更多 >