Metaphone 3 アルゴリズムを自分でコーディングしたいと考えています。説明はありますか?ソース コードが販売されていることは知っていますが、それは私が探しているものではありません。
6 に答える
著者(Lawrence Philips)がアルゴリズム自体を商品化することを決定したので、説明が見つからない可能性が高いです。質問するのに適した場所は、メーリングリストです:https ://lists.sourceforge.net/lists/listinfo/aspell-metaphone
ただし、アルゴリズムがどのように機能するかを理解するために、ソースコード(つまりコードコメント)をチェックアウトすることもできます: http ://code.google.com/p/google-refine/source/browse/trunk/main/src/com/google /refine/clustering/binning/Metaphone3.java?r=2029
Wikipedia によると、Metaphone アルゴリズムは次のとおりです。
Metaphone は音声アルゴリズムであり、1990 年に公開された、英語の発音で単語を索引付けするアルゴリズムです。これは、英語のスペルと発音のバリエーションと不一致に関する情報を使用してより正確なエンコーディングを生成することで、Soundex アルゴリズムを根本的に改善します。
特にMetaphone 3
[...] は、英語の単語、アメリカ人になじみのある英語以外の単語、および米国で一般的に見られる名前と姓に対して約 99% の精度を達成します。正しいエンコーディングを準備しました。
アルゴリズムの概要は次のとおりです。
Metaphone アルゴリズムは、最初に処理中の単語から英語以外の文字を削除することによって動作します。次に、単語が最初の母音で始まる場合を除き、すべての母音も破棄されます。この場合、最初の母音を除くすべての母音が破棄されます。最後に、すべての子音と子音のグループが Metaphone コードにマッピングされます。子音とそのグループをグループ化し、メタフォン コードにマッピングするためのルールはかなり複雑です。これらの変換の完全なリストについては、ソース コード セクションのコメントを確認してください。
さて、あなたの本当の質問に:
Metaphone 3 アルゴリズムの詳細に興味がある場合は、運が悪いと思います (ソース コードを購入し、それを理解し、自分で再作成することはできません):アルゴリズムを作成しないことの全体的なポイント (購入できるソースはインスタンスです) public は、作成者の開発努力にお金を払わずに再作成できないことです (探している「正確なアルゴリズム」を提供することは、実際のコード自体を提供することと同等です)。上記の引用を考えてみましょう: アルゴリズムの開発には、「[...] エンコーディングのテスト ハーネス」が含まれていました。そのようなテスト ハーネスを持っているか作成できない限り、アルゴリズムを複製することはできません。
一方、最初の 2 つのイテレーション (Metaphone と Double Metaphone) の実装は自由に利用できます (上記のウィキペディアのリンクには、両方のさまざまな言語での実装への多数のリンクが含まれています)。アルゴリズムはほぼ正確であり、必要に応じて改善します (たとえば、適切なテスト ハーネスを作成して使用するなど)。
一般のコミュニティがアルゴリズム (コードではない) を否定するのは間違っていると思いました
ソースを販売しているので、アルゴリズムは隠されていません。私はソース コードのコピーに 40.00 ドルを要求し、Metaphone 3 を使用するソフトウェアまたはサービスの料金を請求している他の人にライセンス料を支払うように要求し、ソース コードが他の人によって配布されないように要求しています (例外を除く)。私が Google Refine のために作成した例外として - そこにある Metaphone 3 のコピーを Refine パッケージとは別に再配布しないように要求することしかできません。)