用于比较电视节目标题的最合适的字符串距离算法是什么?

ron*_*975 5 string algorithm levenshtein-distance

我正在为电视节目和其他媒体(游戏,电影等)编写刮刀,并不是所有来源的格式都与某个节目相同.例如,一个源可能表示带有破折号的字幕,其他分号.我目前正在使用Levenshtein距离将刮下的数据与从电视节目文件名中提取的数据进行比较,但我想知道该算法是否是针对短句长度而设计的.有没有更适合这种需求的算法?

Lio*_*gan 3

在比较/距离测量之前,您应该对标题进行规范化(标准化)。

\n\n

规范化应该包括以下内容:

\n\n
    \n
  • 基本格式(例如 UTF16 编码、无前导/尾随空格和制表符)
  • \n
  • 字母规则(例如将 \xc3\x84 替换为 A)
  • \n
  • 缩写词扩展(例如 NY -> New-York)
  • \n
  • 位置名称规则(例如城市名称不应包含空格,而应包含破折号)
  • \n
  • 大写规则(例如破折号后面的每个字母都应大写)
  • \n
  • 删除符号(例如!,?)
  • \n
  • 数字转换(“三百”到“300”)
  • \n
  • 罗马数字转换(例如“Louis XVI”到“Louis 16”)
  • \n
  • 非美式英语到美式英语(例如“颜色”到“颜色”)
  • \n
  • 缩写规则(例如“Inc.”而不是“Incorporated”,“vs.”而不是“versus”)
  • \n
\n\n

您可以在单词对之间使用编辑距离(不要将其用于整个句子),但要实现一些滑动窗口,因为其中一个表示中可能会缺少某些单词(例如“The”)。

\n