Ore*_*ija 7 python string nlp nltk pandas
我有一个由两列字符串组成的pandas DataFrame.我想创建一个包含两列的编辑距离的第三列.
from nltk.metrics import edit_distance
df['edit'] = edit_distance(df['column1'], df['column2'])
Run Code Online (Sandbox Code Playgroud)
出于某种原因,这似乎是某种无限循环,因为它在相当长的一段时间内仍然没有响应,然后我必须手动终止它.
欢迎任何建议.
nltk的edit_distance
功能是用于比较字符串对.如果你想计算相应字符串对之间的编辑距离,apply
它会分别对每行的字符串如下:
results = df.apply(lambda x: edit_distance(x["column1"], x["column2"]), axis=1)
Run Code Online (Sandbox Code Playgroud)
或者像这样(可能更高效一点),避免包含数据帧的不相关列:
results = df.loc[:, ["column1", "column2"]].apply(lambda x: edit_distance(*x), axis=1)
Run Code Online (Sandbox Code Playgroud)
要将结果添加到数据框,您可以像这样使用它:
df["distance"] = df.loc[:, ["column1","column2"]].apply(lambda x: edit_distance(*x), axis=1)
Run Code Online (Sandbox Code Playgroud)