我有这样的数据:
| Term | Value|
| -------- | -----|
| Apple | 100 |
| Appel | 50 |
| Banana | 200 |
| Banan | 25 |
| Orange | 140 |
| Pear | 75 |
| Lapel | 10 |
目前,我正在使用以下代码:
matches = []
for term in terms:
tlist = difflib.get_close_matches(term, terms, cutoff = .80, n=5)
matches.append(tlist)
df["terms"] = matches
输出如下
| Term | Value|
| --------------------- | -----|
| [Apple, Appel] | 100 |
| [Appel, Apple, Lapel] | 50 |
| [Banana, Banan] | 200 |
| [Banan, Banana] | 25 |
| [Orange] | 140 |
| [Pear] | 75 |
| [Lapel, Appel] | 10 |
这段代码不是很有用。我想要的输出是这样的:
| Term | Value|
| -------- | -----|
| Apple | 150 |
| Banana | 225 |
| Orange | 140 |
| Pear | 75 |
| Lapel | 10 |
主要的问题是列表的顺序不同,而且列表中通常只有一两个单词重叠。例如,我可能有
理想情况下,我希望这两个词都返回“apple”,因为重叠词的值最高
有办法做到这一点吗
实现目标的一个简单方法是使用Python标准库difflib模块,它为计算增量提供帮助,如下所示:
然后:
相关问题 更多 >
编程相关推荐