如何解决Python string_grouper 中的 match_most_similar 返回原始字符串
我有一个混乱的字符串列表,我想从格式清晰的字符串列表中找到每个字符串的最佳匹配,其中还包含有关每个字符串的元数据。混乱列表中的字符串在列表中随机重复(通常使用字符串的替代拼写)。杂乱字符串的列表太长,以致于通过 fuzzywuzzy 循环是不可行的。
我一直在尝试使用 match_most_similar
库中的 string_grouper
。当我使用此代码应用该函数时:
import pandas as pd
import numpy as np
from string_grouper import match_strings,match_most_similar,group_similar_strings,StringGrouper
new_strings = pd.Series(df['Cited'])
# Create all matches:
matches = match_most_similar(data['caseName'],new_strings)
# display the results:
pd.DataFrame({'new_strings': new_strings,'duplicates': matches})
match_most_similar
函数返回原始字符串,而不是它们从干净列表中的匹配项。 (data['caseName']
是干净的字符串列表。)这是输出。 duplicates
中出现的所有内容都不是来自 data['caseName']
。
pd.DataFrame({'new_strings': new_strings,'duplicates': matches})
new_strings duplicates
0 Ashwander v. Tennessee Valley Authority,.txt Ashwander v. Tennessee Valley Authority,.txt
1 Bell v. Hood,.txt Bell v. Hood,.txt
2 Charles River Bridge v. Warren Bridge,.txt Charles River Bridge v. Warren Bridge,.txt
有人知道我做错了什么吗?
作为参考,new_strings
看起来像这样(我将其限制为帖子的 3 个元素):
0 Ashwander v. Tennessee Valley Authority,.txt
1 Bell v. Hood,.txt
2 Charles River Bridge v. Warren Bridge,.txt
Name: Cited,dtype: object
和 data['caseName']
看起来像这样:
data['caseName']
0 HALLIBURTON OIL WELL CEMENTING CO. v. WALKER e...
1 CLEVELAND v. UNITED STATES
2 CHAMPLIN REFINING CO. v. UNITED STATES ET AL.
3 UNITED STATES v. ALCEA BAND OF TILLAMOOKS ET AL.
4 UNITED STATES v. HOWARD P. FOLEY CO.,INC.
...
9025 DEPARTMENT OF HOMELAND Security v. THURAISSIGIAM
9026 SEILA LAW LLC v. CONSUMER FINANCIAL PROTECTION...
9027 LIU v. SECURITIES AND EXCHANGE COMMISSION
9028 COLORADO DEPT. OF STATE v. BACA
9029 TRUMP v. MAZARS USA,LLP
Name: caseName,Length: 9030,dtype: object```
解决方法
我是 string_grouper
的投稿人,很抱歉我没有早点注意到您的问题。
match_most_similar
返回原始字符串,如果它在相似性阈值 (min_similarity
) 上找不到匹配项,默认值为 0.8。所以你可以尝试降低它的值,看看你是否得到更合适的结果。例如,
matches = match_most_similar(data['caseName'],new_strings,min_similarity=0.6)
请记住,min_similarity
的最低值为 0,最高为 1。此外,通常情况下,相似性阈值越低,match_most_similar
的运行时间就越长。
另请参阅 https://github.com/Bergvca/string_grouper#kwargs 以获取您可以调整以改善结果的其他选项列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。