我希望在同一个pandas列中比较字符串的相似性,以根据索引中高于或低于的值导出一个包含所有匹配单词的字符串和第二个包含所有不匹配单词的字符串。
我会选择是否匹配上面或下面的基础上,其中一个有更多的匹配的话。
下面是一个小例子:
之前:
| 产品描述|
| --|
| 红色HMS Carabiner|
| 蓝色HMS Carabiner|
| 橙子号|
| 液体粉笔-100毫升|
| 液体粉笔-100 ml(10个装)|
之后:
| 产品描述|方差|
| --|--|
| 铁钩号驱逐舰|红色|
| 铁钩号驱逐舰|蓝色|
| 铁钩号驱逐舰|橙子|
| 液体粉笔-100毫升|楠|
| 液体粉笔-100毫升|(10例)|
我有点不知道从哪里开始,所以我很抱歉没有从一个尝试的解决方案开始。
先谢谢你了。
2条答案
按热度按时间fnatzsnv1#
1.将单词集与上一个产品和下一个产品进行比较
1.选择哪个邻居有较大的交集
1.选择没有进入交集的单词作为方差
这对您的示例是有效的,但是当产品描述中有多个重复的单词时,可能会给予奇怪的输出。
我还假设,如果描述与任何邻居都没有共同的词,它就没有组,因此没有方差。
字符串
输出量:
型
fnvucqvd2#
这里有一个方法来解决你的问题:
字符串
输出:
| | 方差| Variance |
| --|--|--|
| 0 |铁钩号驱逐舰|红色|
| 1 |铁钩号驱逐舰|蓝色|
| 2 |铁钩号驱逐舰|橙子|
| 9 |液体粉笔-100毫升||
| 10 |液体粉笔-100毫升|(10例)|
注意事项
要查找相似的产品描述,我们使用
difflib
模块(Python默认自带的模块)中的get_close_matches
函数。根据产品描述的不同,get_close_matches
可能无法找到某个产品的所有相似产品描述。换句话说,上述解决方案并不保证适用于所有情况。