私は、インポートされたファイルを他の言語にローカライズできるシステムを開発中です。文字列の類似性を認識
これは主に、MVC3、EntityFramework、LINQなどのハングアップを取得するプライベートプロジェクトです。したがって、私は最終結果を盛り上げるためにいくつかの狂ったことをするのが好きです。そのようなことの1つは、同様の文字列を認識することです。
- Megabeth::私は過去に働いてきたゲームから借りた -
あなたは、文字列の次のリスト持っている想像聖ローラー制服を - 頭、胴、および脚
- Megabethが含まれています:ホーリーローラー制服ヘッド
- Megabeth:ホーリーローラー制服美脚
- Megabeth:ホーリーローラー制服トルソー
- Megabeth:PAX東2012制服 - 頭、胴、および脚が含まれてい
- Megabeth:PAX東2012制服ヘッド
- Megabeth:PAX東2012制服美脚
- Megabeth:PAX東2012制服トルソー
あなたが見ることができるように、ユーザーが最初の4つの文字列を翻訳した後、この場合は、次の4シェア多くの類似点、:
- Megabeth
- 制服
- は頭、胴、および脚
- ヘッド
- 美脚
- トルソーが含まれています
ユーザーがどのような種類の、リストから5番目の文字列を選択したとき、最初の4つの文字列が実際にすでに翻訳されて考えてみましょうアルゴリズムや技術を使用して、「類似の文字列」のサブヘッダーの下に1番目の文字列(およびその他の文字列)を表示できますか?
編集 - Levenshtein Distanceに関する少しのコメント: 私は現在、データベースに10k文字列をターゲットにしています。 Levenshtein Distanceは文字列ごとの文字列を比較します。この場合、10k x(10k -1)の可能な組み合わせです。私はこれを実現可能な方法でどのようにアプローチしますか?この特定のアルゴリズムより優れたソリューションがありますか?
興味深い質問です。私はこれに答えるためにどこから始めるべきかはわかりませんが、病気に悩まされて見ています。 – Gallen
距離を編集します。多くの品種があります。そしてまっすぐ進む。行列が大きくなると計算コストがかかることがあります。 – DarthVader
すべての文字列を連結してから、空白で区切って(正規表現を使用)、linqを '.Distint()'で置き換えて置換して翻訳を実行することができます。この問題は、すべての言語が単語を翻訳するわけではありません。 – Jay