[英]Python - Assign the closest string from List A to List B based on Levenshtein distance - (ideally with pandas)
作為介紹,我是python的新手,我只知道如何主要使用pandas進行數據分析。
我目前有2個超過100個條目的列表,分別是“關鍵字”和“組” 。
我想生成一個輸出(最好是以pandas為單位的數據框),其中使用levenshtein距離方法為列表“關鍵字”的每個條目分配列表“組”的最接近條目。
謝謝您的支持!
from editdistance import eval as levenshtein
import pandas as pd
keywords = ["foo", "foe", "bar", "baz"]
groups = ["foo", "bar"]
assigned_groups = [min(groups, key=lambda g: levenshtein(g, k))
for k in keywords]
df = pd.DataFrame({"Keyword": keywords, "Group": assigned_groups})
# Group Keyword
# 0 foo foo
# 1 foo foe
# 2 bar bar
# 3 bar baz
使用editdistance
。 通過pip install editdistance
獲取它。
請注意,此算法為O(mn)
,其中m
是關鍵字的長度, n
是組的長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.