我知道这不是一个直截了当的问题,所以如果您需要我提供有关其范围的更多信息,请告诉我。有一堆问题几乎解决了相同的问题(它们在此处链接),但绝不是具有相同范围和目标的完全相同的问题 - 至少据我所知。
语境:
- 我有一个带有 ID3 标签的 MP3 文件,用于艺术家姓名和歌曲标题。
- 我有两张表 Artists 和 Songs
- ID3 标签可能会稍微偏离(例如 Mikaell Jacksonne)
- 我正在使用 ASP.NET + C# 和 MSSQL 数据库
我需要将 MP3 与数据库同步。意义:
- 用户启动脚本
- 该脚本浏览所有 MP3
- 剧本上写着“是 'Mikaell Jacksonne' 'Michael Jackson' YES/NO ”
- 用户选择,我们重新开始
系统可以找到的示例:
在数据库...
SONGS = {"This is a great song title", "This is a song title"}
ARTISTS = {"Michael Jackson"}
输出...
"This is a grt song title" did you mean "This is a great song title" ?
"This is song title" did you mean "This is a song title" ?
"This si a song title" did you mean "This is a song title" ?
"This si song a title" did you mean "This is a song title" ?
"Jackson, Michael" did you mean "Michael Jackson" ?
"JacksonMichael" did you mean "Michael Jackson" ?
"Michael Jacksno" did you mean "Michael Jackson" ?
等等
我从这个/how-do-you-implement-a-did-you-mean 中阅读了一些文档,这并不是我所需要的,因为我不想检查整个字典。我也不能真正使用网络服务,因为它很大程度上取决于我数据库中已有的内容。如果可能的话,我也想避免处理距离和其他复杂的事情。
我可以使用google api(或类似的东西)来执行此操作,这意味着脚本将尝试拼写检查并使用数据库对其进行测试,但我觉得可能会有更好的解决方案,因为我的数据库最终可能会变得非常具体歌曲和艺术家,使拼写检查无用。
我也可以尝试使用Soundex for c#来尝试类似这篇文章中解释的内容。
使用常规拼写检查器不起作用,因为我不会使用单词,而是使用名称和“标题”。
所以我的问题是:有没有一种相对简单的方法可以做到这一点,如果有,它是什么?
任何形式的帮助将不胜感激。
谢谢!