是否有代码对列中包含的相似单词进行分组
Posted
技术标签:
【中文标题】是否有代码对列中包含的相似单词进行分组【英文标题】:Is there code to group similar words contained in a column 【发布时间】:2019-12-25 09:56:57 【问题描述】:是否有代码可以用来区分 Python 中具有相似字符串的单词?我想对单词进行分组,但是如果我将数据框中的 WHERE FUNCTION 用于 COFFEE 和 FEE 之类的单词,则这些单词将被视为相同,这是我不想要的。
数据框如下所示:
id transaction grouping
1 ATM FEES FEES
2 McDonalds MD
3 COFFEE SHOP FEES
4 POS ZARA ZARA
5 TASTY COFFEE FEES
6 FREDDIES OTHER
7 FEES:Monthly FEES
8 WITHDRAWAL FEES ATM FEES
9 MONTE COFFEE SHOP FEES
但我希望输出如下所示:
id transaction grouping
1 ATM FEES FEES
2 McDonalds MD
3 COFFEE SHOP COFFEE
4 POS ZARA ZARA
5 TASTY COFFEE COFFEE
6 FREDDIES OTHER
7 FEES:Monthly FEES
8 WITHDRAWAL FEES ATM FEES
9 MONTE COFFEE SHOP COFFEE
这是我使用的代码:
tranx['grouping'] = pd.np.where(temp.str.contains("COFFEE"),"COFFEE",
pd.np.where(temp.str.contains("McDonalds"), "MD",
pd.np.where(temp.str.contains("FEE"), "FEE",
pd.np.where(temp.str.contains("ZARA"), "ZARA",OTHER))))
我可以使用其他代码来区分 COFFEE 和 FEE 以便它们不属于同一组吗?
【问题讨论】:
【参考方案1】:我不太确定您要做什么,但您可以检查字符串是否与列文斯坦距离相似。列文斯坦距离告诉您必须完成多少“更改”才能获得两个相同的字符串。它在 Python Jellyfish 库中得到了很好的实现。
https://jellyfish.readthedocs.io/en/latest/comparison.html#levenshtein-distance
也许这就是你要找的东西。最好的问候。
【讨论】:
以上是关于是否有代码对列中包含的相似单词进行分组的主要内容,如果未能解决你的问题,请参考以下文章