5

我正在寻找一些关于我应该研究哪些技术/算法来解决以下问题的指导。我目前有一种算法,可以使用声学指纹对听起来相似的 mp3 进行聚类。在每个集群中,我拥有每个文件的所有不同元数据(歌曲/艺术​​家/专辑)。对于该集群,我想选择与数据库中现有行匹配的“最佳”歌曲/艺术​​家/专辑元数据,或者如果没有最佳匹配,则决定插入新行。

对于一个集群来说,一般都有一些正确的元数据,但是个别文件有很多类型的问题:

  • 艺术家/歌曲完全错误命名,或只是稍微拼写错误
  • 缺少艺术家/歌曲/专辑,但其余信息都在那里
  • 这首歌实际上是现场录音,但只有集群中的一些文件被标记为这样。
  • 元数据可能很少,在某些情况下只有文件名,可能是艺术家 - song.mp3,或艺术家 - 专辑 - song.mp3,或其他变体

一个简单的投票算法效果很好,但我想要一些我可以在大量数据上训练的东西,这些数据可能会比我现在得到的更多细微差别。任何指向论文或类似项目的链接将不胜感激。

谢谢!

4

2 回答 2

3

如果我正确理解您的问题,您有一种将歌曲等划分为集群的现有技术,现在想要根据定义特征选择该集群内容的“最佳”示例。

我会看看贝叶斯分类器。这些可以帮助推断数据中任何给定集群的关键定义特征(假设集群不是基于明确的、明确定义的分类法),并为元数据或其他参数中的噪声和错误提供一定的容忍度。然后,根据您的数据和集群的性质,您也许可以使用最大似然法或抽样方法来确定给定集群中一个或多个最具代表性的示例。

贝叶斯方法也可用于推断丢失的数据,例如丢失的元数据值。样本分布可用于根据其他数据字段中的已知值生成缺失数据的可能值。

于 2010-06-05T17:20:02.500 回答
2

Levenshtein 距离是衡量两个字符串之间“距离”的指标。它计算通过添加/删除/更改字符将一个字符串更改为另一个字符串的操作数。

您可以使用此算法来帮助处理拼写错误。如果两个字符串非常接近,则很可能是拼写错误。

http://en.wikipedia.org/wiki/Levenshtein_distance

于 2010-06-03T16:09:48.537 回答