首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何匹配SequenceMatcher的最佳比例

如何匹配SequenceMatcher的最佳比例
EN

Stack Overflow用户
提问于 2021-02-15 17:17:33
回答 1查看 44关注 0票数 0

我使用SequenceMatcher比率来匹配两个具有最佳比率的数据帧。

我想先检查A和AA的分数是否好,然后检查B和BB之间的分数是否好,然后如果C和CC之间的分数是好的,那么我添加这一行

代码语言:javascript
复制
        A     B     C
0    pizza    ze    3
1    polo     fe    5
2    ninja    fi    NaN
代码语言:javascript
复制
     AA      BB      CC
0    za      ze      NaN
1    po      ka       8
2    fe      fe       6
3    pizza   fi       3
4    polo    ko       5
5    ninja   3        pizza

我想要这样的数据帧:

代码语言:javascript
复制
      A        B         C       AA          BB     CC      score
0    pizza    ze         3        pizza       ze      3      100
1    polo     fe         5        polo        ko      5       75
2    ninja    fi        NaN       ninja       3      pizza    30

我试过这个函数,但它不起作用:

代码语言:javascript
复制
from difflib import SequenceMatcher
def similar(a, b):
    ratio = SequenceMatcher(None, a, b).ratio()
    return ratio
order = []
score = []
for index, row in df1.iterrows():
    maxima = [similar(row['A'], j) for j in df2['AA']]
    best_ratio = max(maxima)
    if best_ratio > 0.9:     
        maxima2 = [similar(row['B'], j) for j in df2['BB']]
        best_ratio2 = max(maxima2)
        if best_ratio2 > 0.9:
           maxima3 = [similar(row['C'], j) for j in 
                      df2['CC']]
           best_ratio = max(maxima3)
           best_row = np.argmax(maxima3)
           order.append(best_row)
           score.append(best_ratio)

df2 = df2.iloc[order].reset_index()
merge = pd.concat([df1, df2], axis=1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 22:50:06

最好的方法是使用tf idf来找到最佳比例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66205395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档