これは率直な質問ではないことは承知していますので、その範囲についてさらに情報を提供する必要がある場合はお知らせください。ほぼ同じ問題に対処する質問がたくさんあります (それらはここにリンクされています) が、少なくとも私が知る限り、同じ種類の範囲と目的を持つまったく同じものは決してありません。
環境:
- アーティスト名と曲名の ID3 タグを含む MP3 ファイルがあります。
- アーティストと曲の2つのテーブルがあります
- 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からいくつかのドキュメントを読みましたが、辞書全体をチェックしたくないので、これはまさに私が必要としているものではありません。また、データベースに既にあるものに大きく依存しているため、Web サービスを実際に使用することもできません。可能であれば、距離やその他の複雑なことを扱うことも避けたい.
Google api (または同様のもの) を使用してこれを行うことができます。つまり、スクリプトはスペル チェックを試行し、データベースでテストしますが、データベースが奇妙なもので非常に具体的になってしまう可能性があるため、より良い解決策があると思います。曲やアーティスト、スペル チェックを役に立たなくします。
この投稿で説明されているようなことを試して、 Soundex for c#を使用することもできます。
単語ではなく名前と「タイトル」を使用するため、通常のスペル チェッカーを使用しても機能しません。
だから私の質問は、これを行う比較的簡単な方法はありますか?もしそうなら、それは何ですか?
どんな種類の助けもいただければ幸いです。
ありがとう!