問題タブ [metaphone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
5024 参照

mysql - この MySQL の double metaphone 関数が正しく機能しないのはなぜですか?

Metaphone および Double Metaphone 検索アルゴリズムについて学習したばかりで、いくつか質問があります。Metaphone Wiki ページによると、実装、特に MySQL 実装を含むいくつかのソースが見つかりました。私のテスト データベースでテストしたかったので、最初にここにある metaphone.sql ファイル (ダブル metaphone 関数を含む) をインポートしました。

現在、「アフガニスタン」、「アルバニア」、「アルジェリア」など、「名前」列にすべての国がリストされているテーブル、国があります。まず、実際に新しい国を作成したかったのです。表の列に、各国の Double Metaphone 文字列を格納します。次のコードを実行しました。

すべてが正しく機能しました。アフガニスタンのメタフォン文字列は「AFKNSTN」、アルバニアは「ALPN」、アルジェリアは「ALKR;ALJR」などです。「すごい」と思いました。

ただし、テーブルにクエリを実行しようとすると、結果が得られませんでした。metaphone.sql の作成者によると、次の SQL ステートメントの構文に従いました。

そこで、このコードを次のように変更しました。

もちろん、「@search」を探している検索語に変更しましたが、SQL クエリを実行するたびに 0 件の結果が得られました。

誰でもこの問題を説明できますか? 何か重要なことを見逃しているのでしょうか、それとも単に Metaphone アルゴリズムを誤解しているだけなのでしょうか?

ありがとうございました!

0 投票する
6 に答える
16336 参照

spell-checking - Metaphone 3 アルゴリズムとは何ですか?

Metaphone 3 アルゴリズムを自分でコーディングしたいと考えています。説明はありますか?ソース コードが販売されていることは知っていますが、それは私が探しているものではありません。

0 投票する
1 に答える
479 参照

php - ポルトガル語のローカライズ (ダブル) Metaphone (pt_PT)

英語以外の 2 つの文字列が音声的にどのように類似しているかを確認したいのですが、私の知る限り、soundexmetaphone の実装は、英語ベースの文字列に対してのみ正しく機能します。たとえば、ポルトガル語ではまったく同じように聞こえcoraçãoますcorassãometaphone()が、 と が返さKRKRSます。他の音素でも同じことが起こり、chitaxitaが返さXTSTますが、同じように聞こえます。

このDouble Metaphone の実装( demo )も試しましたが、結果はまったく同じです。

それで、ポルトガル語の単語で動作する代替アルゴリズムはありますか? この他の質問でLuceneについて読んだことがありますが、これまで使用したことがなく、どのように機能するか、またはどのように使用するかわかりません。

そうでない場合、メタフォンのようなアルゴリズムを開発するために収集する必要があるデータの種類を誰か知っていますか?

0 投票する
3 に答える
3665 参照

java - javaを使用したmetaphone3の実装

Javaに一致するMetaphone3のコード(商用のものではない)がどこにあるか知っている人はいますか?apacheはMetaphone1.2を実装していますが(このサイトを参照してください:Apache Metaphone 1.2実装)。しかし、それはMetaphone 3を実装していませんでした。どんな助けも私にとって大きなものです、ありがとう。

0 投票する
1 に答える
8503 参照

machine-learning - メタフォン対サウンデックス対NYSIIS

私は、入力単語のある種のより一般的な音声表現へのマッピングを使用して、発生する可能性のあるタイプミスを説明する暗黙のスペルチェッカーを考え出そうとしています。基本的には、ある程度まで自動的にスペルを修正する検索バーです。 。私が調べているのは、metaphone、nysiis、soundexの2つですが、このアプリケーションにどちらが適しているかはわかりません。

一致数を少なくするよりも優先的に多くしたいので、もう少し一般的な一致をしたいので、元のメタフォンよりも近似的なマッピングのように見えるsoundexを使用することを考えていました。でも曖昧さの違いがどれだけ大きいのかはよくわかりません。nysiisがsoundexにかなり似ていることは知っていますが、それらがどれほど似ているか、またはnysiisがmetaphoneとどのように比較されているかについてはよくわかりません。

また、実行が最も速いソリューションを探しています。これらのふりがなは通常かなり速いことは知っていますが、検索時間を長くせずにスペルをチェックできるようにしたいことを考えると、どちらが最も速いかはわかりません。速度が考慮されます。考え?

0 投票する
2 に答える
3131 参照

sql - 名/姓の組み合わせの Double Metaphone を使用して MSSQL をクエリするための SQL

データベース内のあいまい検索に Double-Metaphone を使用しています。名前のテーブルがあり、名字と姓の両方に既に作成されている (およびトリガーを介して更新されている) 2 つの metaphone エントリがあります。私のアプリケーションでは、ユーザーが姓や名で検索できるようにしています。

姓と名の両方を処理するときに Double-Metaphone インデックスから最良の結果を得るために、データベースにクエリを実行する最良の方法は何ですか? 姓だけに基づいてクエリを実行するのは簡単です。DM タグを生成し、データベースにクエリを実行します。微調整が必​​要なのは、first と last の両方でクエリを実行するときです。

データベースのレイアウトは次のようになります。

アプリケーション: [姓] [名]

ユーザーは姓のみ、または姓 + [名のイニシャル、名、名の一部] の組み合わせを入力します。

名として「J」を渡すと、「J%」に一致するすべての名前エントリが必要になります。

名として「JO」を渡すと、すべての名前エントリが「JO%」に一致するようになります。

名として「JOHN」または「JOHNATHAN」を渡す場合 - DM を使用したい

それとも「JOHN%」ですか?

ファーストネームについては、ここで提案をお待ちしております。結果をできるだけ良くして、ユーザーが望むものを返したいと思っています。

last + first name のこれらの組み合わせのいずれかをデータベースに照会する最良の方法は何ですか? ここに私がこれまでに得たもののサンプルがあります..そして私は結果に完全に興奮していません:

私が試みたのは、firstname のさまざまなバリエーションを説明することです。しかし、私の結果は、まさに私が望むものではありません。

Double-Metaphone の値を /generating/ するために、SQL/C# などで Double Metaphone の実装をたくさん見つけることができましたが、これらの値を取得したら、実際にデータベースを効果的にクエリする方法については何も見つかりませんでした。

まとめ:

姓と名の両方で検索する場合 - 姓のみで一致する Double Metaphone をデータベースに照会したいのですが、名も渡されたときに多くの柔軟性が必要です..最初のイニシャル ? のように聞こえる ?提案や SQL の例を歓迎します!

更新 1: 私が結果に興奮していないと言うとき.. 私が言っているのは、結果を最大化するために、クエリの Firstname 部分をどのように定式化するかわからないということです。「WILL」を検索すると、どのような結果が返されますか? WILLIAM、WILL、WILBERT .. しかし WALKER ではありません - ただし、私がここに持っているものでは、WILL -> FL および WALKER は [FLKR] であり、WILLIAM は [FLM] であるため、WALKER が返されます。DM = DM のみを実行すると、WILLIAM が返されることさえありません。そのため、DM の長さが 4 未満の場合、そもそも LIKE を実行しています。

基本的に、他の誰かがこの問題に遭遇したかどうかを知り、他の人がどのような解決策を考え出したかを知りたい.

最初のイニシャルのみ - そのイニシャルで始まるすべてのファーストネームを表示する必要があります - ここで私は確信が持てません: [名前の一部かどうかはどうやってわかりますか?!] フルネーム - DM を使用する必要がありますか?

0 投票する
1 に答える
2465 参照

java - カスタムの珍しい単語マッチングを使用した Android での音声テキスト変換

Android の Speech-To-Text エンジンを使用して、文中のさまざまな珍しい単語を認識できるようにしたいと考えています。

例を挙げると、「electroencephalograph」という言葉は、STT から「electronics supply graph」として出てきます。Soundex または Metaphone を使用して、話されている内容をハードコードされた値と比較すると、値がまったく一致しないか、ランダムに一致するように見えます。しきい値 (たとえば、Math.abs(str1.compareTo(str2)) <= 1) を使用すると、一致が非常に緩くなり、ほとんどすべてが一致します。

本質的に、私がやりたいことは、引用を暗唱して引用データベースから引用を検索することに似ています。問題は、Google の Speech-To-Text エンジンで使用される限られた単語セットにあるようです。

何か案は?

0 投票する
1 に答える
436 参照

php - PHP の辞書データベースでの単語検索における metaphone の精度

私のアプリケーションの機能を php で実装するつもりですデータベースからの単語は辞書として取得されます。levenshtein、similer_text、soundex など以外の metaphone を使用すると、類似の単語をより正確に見つけることができると思います。誰か metaphone の精度について提案できますか。

前もって感謝します。

0 投票する
1 に答える
628 参照

java - Metaphone を java-lucene のスペルチェッカー プログラムに統合する方法は?

ブラウジング中に、lucene でスペルチェック プログラムを思いつきました。tangentum の phonetix アドオン (具体的には metaphone) を追加することに興味がありました。metaphone を自分のプログラムに統合する方法はありますか? それを統合する方法は?