小编u23*_*u23的帖子

Levenshtein 距离给出奇怪的值

这是一个字符串T

'男士衬衫团队 brienne 有趣的讽刺衬衫具有图形 T 恤杯子 婴儿装 真正的激情 辉煌的设计 详细的插图 强烈的欣赏 东西 创意 br 商店 在不同的衬衫上发现了数千种设计 婴儿装杯子 有趣的流行文化 抽象 诙谐 很多设计使一天好起来 几乎所有其他人都会遇到 ul li 质量短袖圆领衬衫 100 棉柔软耐用舒适手感合身标准尺寸怀疑 l xl 可用 li li 可持续性标签公司构想的信念纺织品行业开始采取行动,负责任地制造棉 li li 服装使用 state art 直接服装设备印刷裂纹剥离水洗 li li图形 T 恤设计专业印刷独特的设计看起来很棒让人微笑有趣可爱的复古富有表现力的艺术品 li ul'

我已经突出显示了上面字符串的一部分,因为上面是字符串的预处理版本,因此可能难以阅读。

我得到以下值:

fuzz.partial_ratio('short sleeve', T)50

fuzz.partial_ratio('long sleeve', T)73

fuzz.partial_ratio('dsfsdf sleeve', T)62

fuzz.partial_ratio('sleeve', T)50

我对此感到非常困惑。第一个和第四个值不应该是 100 吗?当然我错过了一些东西,但我无法弄清楚。

编辑:这是我在卸载 python-Levenshtein 库后运行的另一个示例:

'第一个成功方式妻子告诉 v 2 长袖衬衫 …

python levenshtein-distance fuzzywuzzy

6
推荐指数
1
解决办法
267
查看次数

保持每组的最大值,包括重复

假设我有一个这样的数据框:

    a   b   c
0   x1  y1  9
1   x1  y2  9
2   x1  y3  4
3   x2  y4  2
4   x2  y5  10
5   x2  y6  5
6   x3  y7  6
7   x3  y8  4
8   x3  y9  8
9   x4  y10 11
10  x4  y11 11
11  x4  y12 11
Run Code Online (Sandbox Code Playgroud)

我首先想做一个分组排序的列c(按column分组a),然后我想保留每个组中具有最高 column 值的所有行c。所以输出将如下所示:

    a   b   c
0   x1  y1  9
1   x1  y2  9
4   x2  y5  10
8   x3  y9  8 …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
48
查看次数

Python:如何在基本的"混沌理论"程序中解决舍入错误?

我从Zelle的Python入门学习Python,并且遇到了一个基于初始输入模拟混沌输出的基本程序的示例.

 def main():
     print("This program illustrates a chaotic function")
     x = eval(input("Enter a number between 0 and 1: "))
     for i in range(10):
         x = 3.9 * x * (1 - x)
         print(x)

main()

This program illustrates a chaotic function

Enter a number between 0 and 1: .15
0.49724999999999997
0.97497050625
0.09517177095121285
0.3358450093643686
0.8699072422927216
0.4413576651876355
0.9615881986142427
0.14405170611022783
0.48087316710014555
0.9735732406265619
Run Code Online (Sandbox Code Playgroud)

我知道Python中的默认双精度浮点数据类型不可避免地存在这种舍入错误.例如,第一个输出值恰好是0.49725.我从某处读到可以通过使用Python的十进制库中的Decimal函数来解决舍入错误.所以我稍微修改了程序:

from decimal import Decimal

def main():
    print("This program illustrates a chaotic function")
    x = Decimal(eval(input("Enter a number between 0 and 1: …
Run Code Online (Sandbox Code Playgroud)

python precision

1
推荐指数
1
解决办法
56
查看次数