問題タブ [soundex]
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.
python - このsoundexコーディングで助けを借りることができます
米国国勢調査局は、「soundex」と呼ばれる特別なエンコードを使用して、個人に関する情報を見つけます。soundex は、姓の綴りではなく、発音に基づいた姓 (姓) のエンコーディングです。SMITH と SMYTH のように、同じように聞こえるが綴りが異なる姓は、同じコードを持ち、一緒にファイルされます。soundex コーディング システムは、姓がさまざまな綴りで記録されている場合でも姓を見つけることができるように開発されました。
このラボでは、姓を入力すると soundex コードを生成するプログラムを設計、コーディング、および文書化します。ユーザーは姓の入力を求められ、プログラムは対応するコードを出力する必要があります。
基本的な Soundex コーディング規則
姓のすべての soundex エンコーディングは、文字と 3 つの数字で構成されます。使用される文字は常に姓の最初の文字です。以下に示すsoundexガイドに従って、姓の残りの文字に番号が割り当てられます。常に 4 文字のコードを生成するために、必要に応じて末尾にゼロが追加されます。追加の文字は無視されます。
Soundexコーディングガイド
Soundex は、さまざまな子音に番号を割り当てます。同じように聞こえる子音には同じ番号が割り当てられます。
数子音
1 B、F、P、V 2 C、G、J、K、Q、S、X、Z 3 D、T 4 L 5 M、N 6 R
Soundex は、文字 A、E、I、O、U、H、W、および Y を無視します。
従うべき 3 つの追加の Soundex コーディング規則があります。優れたプログラム設計では、これらをそれぞれ 1 つ以上の個別の関数として実装します。
ルール 1. 2 文字の名前
姓に二重文字が含まれている場合は、それらを 1 文字として扱う必要があります。例えば:
- Gutierrez は G362 にコード化されています (G、T は 3、最初の R は 6、2 番目の R は無視、Z は 2)。
ルール 2. 同じ Soundex コード番号を持つ文字が並んでいる名前
姓に異なる文字が並んでいて、soundex コーディング ガイドでは同じ数字になっている場合、それらは 1 つの文字として扱われるべきです。例:
Pfister は P236 としてコード化されます (P、F は P と同じと見なされるため無視されます。S は 2、T は 3、R は 6)。
Jackson は J250 としてコード化されます (J、C は 2、K は C と同じように無視され、S は C と同じように無視され、N は 5、0 が追加されます)。
ルール 3. 子音区切り
3.a. 母音 (A、E、I、O、U) が同じ soundex コードを持つ 2 つの子音を区切る場合、母音の右側の子音がコード化されます。例:
- Tymczak は T-522 としてコード化されています (T、M の場合は 5、C の場合は 2、Z は無視されます (上記の「Side-by-Side」ルールを参照)、K の場合は 2)。母音「A」はZとKを分離するため、Kがコード化されます。
3.b. 「H」または「W」が同じ soundex コードを持つ 2 つの子音を区切る場合、右側の子音はコード化されません。例:
*Ashcraft は A261 とコード化されています (A、S は 2、C は S と同じで無視され、その間に H があり、R は 6、F は 1)。A226コード化されていません。
これまでのところ、これは私のコードです:
コードは要求されたことを十分に実行しますが、3 つのルールをコーディングする方法がわかりません。それが私が助けを必要としているところです。だから、どんな助けも大歓迎です。
ms-access - VBAで同様のサウンドのテキストを検索する
私のマネージャーは、綴りが異なっていても発音の仕方が似ている名前を評価する方法があると言っています。理想的には、ユーザーが入力した検索名を評価し、完全に一致する名前と「類似した名前」を返すことができるようにする必要があります。彼はこのプロセスを「Soundits」と呼んでいましたが、Googleで情報を見つけることができません。
これは存在しますか?VBA(Access)で利用できるかどうか誰か知っていますか?
python - Python の Soundex アルゴリズム (宿題のヘルプ リクエスト)
米国国勢調査局は、「soundex」と呼ばれる特別なエンコードを使用して、個人に関する情報を見つけます。soundex は、姓の綴りではなく、発音に基づいた姓 (姓) のエンコーディングです。SMITH と SMYTH のように、同じように聞こえるが綴りが異なる姓は、同じコードを持ち、一緒にファイルされます。soundex コーディング システムは、姓がさまざまな綴りで記録されている場合でも姓を見つけることができるように開発されました。
このラボでは、姓を入力すると soundex コードを生成するプログラムを設計、コーディング、および文書化します。ユーザーは姓の入力を求められ、プログラムは対応するコードを出力する必要があります。
基本的な Soundex コーディング規則
姓のすべての soundex エンコーディングは、文字と 3 つの数字で構成されます。使用される文字は常に姓の最初の文字です。以下に示すsoundexガイドに従って、姓の残りの文字に番号が割り当てられます。常に 4 文字のコードを生成するために、必要に応じて末尾にゼロが追加されます。追加の文字は無視されます。
Soundexコーディングガイド
Soundex は、さまざまな子音に番号を割り当てます。同じように聞こえる子音には同じ番号が割り当てられます。
数子音
1 B、F、P、V 2 C、G、J、K、Q、S、X、Z 3 D、T 4 L 5 M、N 6 R
Soundex は、文字 A、E、I、O、U、H、W、および Y を無視します。
従うべき 3 つの追加の Soundex コーディング規則があります。優れたプログラム設計では、これらをそれぞれ 1 つ以上の個別の関数として実装します。
ルール 1. 2 文字の名前
姓に二重文字が含まれている場合は、それらを 1 文字として扱う必要があります。例えば:
Gutierrez は G362 にコード化されています (G、T は 3、最初の R は 6、2 番目の R は無視、Z は 2)。ルール 2. 同じ Soundex コード番号を持つ文字が並んでいる名前
姓に異なる文字が並んでいて、soundex コーディング ガイドで同じ数字になっている場合、それらは 1 つの文字として扱われるべきです。例:
Pfister は P236 としてコード化されます (P、F は P と同じと見なされるため無視されます。S は 2、T は 3、R は 6)。
Jackson は J250 としてコード化されます (J、C は 2、K は C と同じように無視され、S は C と同じように無視され、N は 5、0 が追加されます)。
ルール 3. 子音区切り
3.a. 母音 (A、E、I、O、U) が同じ soundex コードを持つ 2 つの子音を区切る場合、母音の右側の子音がコード化されます。例:
Tymczak は T-522 としてコード化されています (T、M の場合は 5、C の場合は 2、Z は無視されます (上記の「Side-by-Side」ルールを参照)、K の場合は 2)。母音「A」はZとKを分離するため、Kがコード化されます。3.b. 「H」または「W」が同じ soundex コードを持つ 2 つの子音を区切る場合、右側の子音はコード化されません。例:
*Ashcraft は A261 とコード化されています (A、S は 2、C は S と同じで無視され、その間に H があり、R は 6、F は 1)。A226コード化されていません。
これまでのところ、これは私のコードです:
要求されたことを十分に実行しますが、3 つのルールをどのようにコーディングすればよいかわかりません。それが私が助けを必要としているところです。だから、どんな助けも大歓迎です。
soundex - オランダ語で実装された「Sounds-Like」文字列照合アルゴリズムはありますか?
私は、英語での「音のような」文字列マッチングのためのSoundexおよびDouble-Methaphoneアルゴリズムについて知っています。同様のアルゴリズム、またはオランダ語のアルゴリズムの1つの移植版はどこにありますか?
php - PHP / MySQL:「SOUNDSLIKE」クエリ結果を強調表示
MYSQL/PHPに関する簡単な質問。通常の検索クエリで結果が見つからない場合のフォールバックとして、「それほど厳密ではない」検索クエリを使用しています。
現在、PHPを使用して、次のような結果を強調しています。
しかし、私が何を強調すべきかわからないとき、この方法はそのお尻に落ちます。そのmysqlクエリを実行するときに「音に似た」一致が何であるかを見つける方法はありますか?
つまり、誰かが「Joan」を検索した場合、代わりに「John」を強調表示したいと思います。
php - クエリでSOUNDEXを使用しようとしましたが、mysqlのデータベース列に関してエラーが発生しました
何がうまくいかなかったのかを理解しようとするのは、ばかげた構文に違いありません。
私が得るエラーは次のとおりです。
MySqli エラー: 'フィールド リスト' の不明な列 'sndx' 例外の種類: QMySqliDatabaseException
sndx 列はありません。その意図は、SOUNDEX を使用してアカウントの値を照合することです....
sql - 類似した名前を見つけるためのSoundexクエリの最適化
私のアプリケーションは、入力された名前に「似ている」英語名の候補のリストを提供します。
クエリを最適化し、できるだけ早く結果を返す必要があります。結果をすばやく返すために最適なオプションはどれですか。(または、お持ちの場合は独自の提案)
A. Soundex ハッシュを生成し、それを「Names」テーブルに保存してから、次のようにします: (これにより、クエリごとにデータベース内の少なくともすべての行の soundex ハッシュを生成する手間が省けますよね?)
NameSoundex = Soundex('Ann') の名前から名前を選択
B. Difference 関数を使用する (テーブル内のすべての名前の soundex を生成する必要がありますか?)
Difference(name, 'Ann') >= 3 の名前から名前を選択
C. 簡単な比較
Soundex(name) = Soundex('Ann') の名前から名前を選択
オプションAは、1つの文字列のSoundexのみを生成し、インデックス付きの列「NameSoundex」と比較するため、結果を返すのが最も速いように思えます
オプション B はオプション A よりも多くの結果を返すはずです。名前は soundex と完全に一致する必要はありませんが、遅くなる可能性があるためです。
テーブルに何百万もの行が含まれると仮定すると、最良の結果が得られるのはどれでしょうか?
sql - LINQ to SQL SOUNDEX-可能ですか?
私はこれについて少し調査し、StackOverflowに関するいくつかの記事といくつかのブログ投稿を調べましたが、正確な答えは見つかりませんでした。また、4.0フレームワークを使用してそれを行うことは可能であると読みましたが、それを裏付ける証拠はまだ見つかりません。
だから私の質問は、LINQ to SQLクエリを介してSOUNDEXを実行することは可能ですか?
sql - Mysql で同様の行を見つけるための提案
行のタイトル列に従って同様の行を選択したい。タイトルの列には、ほとんどの場合、5 つまたは 6 つのキーワードが含まれています。どのアルゴリズムをお勧めしますか? たぶん?
PS: タイトル列には、Ç、Ö、Ş などの Unicode 文字があります...