什么正则表达式(或其他技术)可以帮助计算或“最佳猜测” 艺术家 在相当不可预测的完整歌曲名称中;

例如从以下歌曲标题中找到 Dr Dre(来自 youtube 的示例):

Xxplosive - Dr. Dre
Dr Dre - Xxplosive
Dr Dre- Xxplosive (lyrics)
Dr. Dre - 05 - The Chronic - Nuthin' But AG Thang

我的目标是找到最有可能的 2 或 3 个匹配项,我打算将其发送到现有 API,该 API 应确定正确的艺术家。

最佳答案

使用诸如 /\s*-\s* 之类的正则表达式拆分歌曲标题,这会将“Dr Dre - Xxplosive”转换为如下数组:{ Dr Dre , Xxplosive }。

然后使用以下任一方法将搜索词 Dr. Dre 与您的拆分段进行匹配:

  • Levenshtein distance ( O(log(n)) ,可能最适合你)
  • Metaphone ( O(1) ,可能很合适,误报的可能性中等)
  • Soundex ( O(1) ,可能很合适,误报的可能性很高)

  • 如果您的轨道列表很大,请使用 BKTree

    换句话说,使用 fuzzy/approximate string matchingphonetic string matching

    提示:使用相对于搜索词长度的编辑限制(字符串越长,限制越高)。

    关于javascript - 正则表达式(或技术)从完整歌曲名称猜测艺术家?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9269886/

    10-12 23:31