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

时间:2016-07-03 05:50:47

标签: string algorithm levenshtein-distance

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

1 个答案:

答案 0 :(得分:3)

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

规范化应包括以下内容:

  • 基本格式(例如UTF16编码,无前导/尾随空格和制表符)
  • 字母规则(例如,将Ä替换为A)
  • 缩略语扩展(例如纽约 - >纽约)
  • 位置名称规则(例如,城市名称不应包含空格,但应使用短划线)
  • 资本化规则(例如短划线后面的每个字母都应大写)
  • 删除符号(例如!,?)
  • 号码转换(“三百”至“300”)
  • 罗马数字转换(例如“路易十六”至“路易十六”)
  • 非美国英语到美国英语(例如“颜色”到“颜色”)
  • 缩写规则(例如“Inc。”而非“Incorporated”,“vs.”而非“vs.”)

你可以在单词对之间使用Levenshtein距离(不要在整个句子中使用它),但是要实现一些滑动窗口,因为某些表达(例如“The”)可能会从其中一个表示中丢失。