【问题标题】:Standardizing company names标准化公司名称
【发布时间】:2021-09-26 18:08:05
【问题描述】:

我有一份公司名称列表,但其中有拼写错误和变体。我怎样才能最好地解决这个问题,以便每个公司都有一致的命名约定(以后groupbysort_value 等)?

pd.DataFrame({'Company': ['Disney','Dinsey', 'Walt Disney','General Motors','General Motor','GM','GE','General Electric','J.P. Morgan','JP Morgan']})

【问题讨论】:

    标签: pandas group-by fuzzywuzzy


    【解决方案1】:

    一个很好的提示:FuzzyWuzzy 库。 “像老板一样的模糊字符串匹配。它使用 Levenshtein Distance 来计算序列之间的差异,在一个简单易用的包中。” 示例:

    from fuzzywuzzy import process
    from fuzzywuzzy import fuzz    
    
    str2Match = "apple inc"
    strOptions = ["Apple Inc.","apple park","apple incorporated"]
    Ratios = process.extract(str2Match,strOptions)
    print(Ratios)
    # You can also select the string with the highest matching percentage
    highest = process.extractOne(str2Match,strOptions)
    print(highest)
    

    输出:

    [('Apple Inc.', 100), ('apple incorporated', 90), ('apple park', 67)]
    ('Apple Inc.', 100)
    

    现在您只需创建一个包含“正确名称”的列表并针对它运行所有变体,这样您就可以选择最佳比率并将其替换到您的数据集上。

    【讨论】:

    • 谢谢 - 我也是这么想的,但我的挑战是“好名声”的名单不断变化。
    • 嗯.. 你不能自动化一个脚本来将它从网站上废弃吗?
    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2020-11-01
    • 2020-11-11
    • 2021-05-15
    相关资源
    最近更新 更多