簡體   English   中英

Python-根據Levenshtein距離,將最接近的字符串從列表A分配到列表B-(最好是使用熊貓)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM