【问题标题】:Simplify song and artist names简化歌曲和艺术家姓名
【发布时间】:2021-10-14 12:26:30
【问题描述】:

简介

你好。我目前正在构建一个 Web 应用程序,它接收一首随机歌曲并将其放入 spotify 播放列表中。 (用户无法选择自己想要的歌曲)

所以我使用spotify api 搜索输入并获得结果列表。

问题

由于spotify 返回的结果并不总是最好的,我想遍历结果并找到最匹配的结果。您将如何获得最佳结果?

我的尝试

我尝试的第一件事是将字符串与fuzzywuzzy 库进行匹配。 这看起来像这样:

song_ratio = ratio(real_song_name,result_song_name)

这很好,而且帮助很大,但是只有标点符号不同的歌曲怎么办?

所以我所做的是删除标点符号:

song_name = song_name.translate(str.maketrans('', '', punctuation))

我还想避免卡拉 OK、重制版或现场版等,例如:
Stay with Me Till Dawn - Live in the UK, 1982 / 2010 Remaster from Judie Tzuke
仅按此名称进行过滤是没有意义的,因为它们的形状不同。

另一个问题: 搜索“简摩根与游吟诗人”中的歌曲“Fascination”

我得到的是:

Best found song: Its Been A Long Long Time to 22 % match<br>
Best found artist: Jane Morgan 54 %

如果我只是查询“Jane Morgan”中的歌曲“Fascination”,我会得到:

Best found song: Fascination 100 % <br>
Best found artist: Jane Morgan 100 % 

问题

有什么好的方法可以解决这个问题?是否可以训练 neural network 将我的字符串处理成正确的格式,然后找到最佳匹配?

【问题讨论】:

  • 如果用户要输入歌曲和艺术家,你可以只显示一个结果列表,让他们选择选择哪一个
  • @Peter 谢谢你的评论。我在问题中描述它的方式并不完全是我的应用程序的工作方式。我尽量不让它变得更复杂。长话短说,用户无法选择他们想要的歌曲。我将编辑我的问题。
  • 我对这些东西不太了解,但我认为你最好的选择是依靠他们的搜索,因为他们会支付数百万美元来开发你想要做的事情.他们的可能并非在所有情况下都有效,但我认为您的也不会(例如,如果您解决一个问题,它可能会导致另一个问题)。

标签: python neural-network spotify


【解决方案1】:

您可以尝试使用 Spotify 搜索提供的advanced query syntax,并且只搜索部分歌曲标题/艺术家姓名。例如,您对“Jane Morgan And The Troubadors”中“Fascination”的查询可能变为:

艺术家:“Jane Mo” 曲目:“Fascin”

并且仍然返回正确的结果。 此查询查找出现在艺术家姓名中的确切字符串“Jane M”和曲目标题中的“Fascin”。

【讨论】:

  • 感谢您的回答。我实际上没有想到这样的事情,我认为这可能是我问题的答案。那你会按照什么程序剪断绳子呢?只是简单地剪掉 30% 的字符串?
  • 可能没有适合所有情况的理想截断点,但也许您可以按单词拆分,只保留艺术家姓名/歌曲标题的前几个单词?
猜你喜欢
  • 2014-03-30
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多