【问题标题】:Determining how much two strings match确定两个字符串匹配的程度
【发布时间】:2015-08-05 21:39:58
【问题描述】:

假设我们有 3 个字符串

songA = "(Used to Be A) Cha-Cha.flac"
songB = "(Used to Be A) Cha-Cha [Alt Take].flac"

我们要匹配第三个字符串

songC = "(Used to Be A) Cha-Cha.flac"

现在,虽然 songA 和 SongB 都与 songC 匹配,但显然 songA 是“更好”的匹配,因为它没有 [Alt Take] 部分,因此是完美匹配。如果我使用songA in songB 方法,两者都会被匹配,那么我该如何解释匹配的好坏呢?

【问题讨论】:

  • 计算hamming distance。完美匹配的汉明距离为0
  • @MarcB 汉明距离不是这里最好的度量标准,他需要能够删除字符串的任意片段以匹配歌曲 B 和歌曲 C。
  • 请注意,在您的示例中,songC in songBFalse
  • Levenshtein distance 可能就是您要找的。,,,
  • 刚刚发现这个:chairnerd.seatgeek.com/…

标签: python string match


【解决方案1】:

您可以使用 python-Levenshtein 库来计算两个字符串之间的 levenshtein 距离:

import Levenshtein
Levenshtein.distance(songC, songA) # 0
Levenshtein.distance(songC, songB) # 11

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2019-06-27
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多