Java でさまざまな単語に音声マッチングを使用しています。私はSoundexを使用しましたが、粗すぎます。Metaphone に切り替えて、その方が優れていることに気付きました。しかし、私が厳密にそれをテストしたとき。私は奇妙な行動を見つけました。それが metaphone の仕組みなのか、それとも間違った使い方をしているのかを私は尋ねなければなりませんでした。次の例では、正常に動作します:-
Metaphone meta = new Metaphone();
if (meta.isMetaphoneEqual("cricket","criket")) System.out.prinlnt("Match 1");
if (meta.isMetaphoneEqual("cricket","criketgame")) System.out.prinlnt("Match 2");
これは印刷されます
Match 1
Mathc 2
"cricket" は "cricket" のように聞こえますが、なぜ "cricket" と "cricketgame" は同じなのでしょうか。誰かがこれを説明するなら。それは大いに役立つでしょう。