問題タブ [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.
php - Mad Gab スタイルのフレーズを作成するための soundex() または metaphone() を使用したアルゴリズム
Mad Gabスタイルのフレーズを提案するアルゴリズムを作成しようとしています。
入力はフレーズのセットです。また、可能であれば使用したいキーワードのセットもあります。現在、私の解決策は単純にブルートフォースです:
- フレーズをループする (文字ごと)
- キーワードが見つかった場合
- キーワードと分岐を格納 (再帰)
- 文字数を増やす
- キーワードが見つかった場合
ただし、私が直面している問題は次のとおりです。
- 複合キーワードの説明。たとえば、「キャッチ」は「キャッチ」、「猫」+「チーズ」のようになります
- 「the」、「and」、「one」、「two」、「three」などの文字通りの用語を許可します。
- キーワードではない用語を提案する方法。つまり、キーワードやリテラルが見つからない場合は、システム ディクショナリのようなものに頼ります。
- フレーズ セグメントをスキップします。現在、1回のパススルーのみです。しかし、フレーズが一致しないもので始まり、数文字後に一致が含まれる場合を考えてみましょう。
私は PHP と MySQL に最も精通しています。ただし、より優れたソリューションが提供される場合は、別のテクノロジを受け入れます。
また、追加の提案にも興味があります。特に、 の 2 番目のパラメーターを使用してより難しい提案metaphone()
を行う方法。
php - ユーザーが同じデータを 2 回入力できないようにする (重複データを防止する) ために使用できる PHP クラスはありますか?
問題の概要:
- 私のアプリケーションには登録フォームがあります。
- ユーザーは、同じ人をシステムに 2 回入力する習慣があります。
- 彼らが入力したデータをデータベース内の他のクライアントに対して迅速かつ正確にチェックして、そのクライアントが既にデータベース内にあるかどうかを確認する方法を見つける必要があります。
現在使用されている基準:
- 重複した社会保障番号
- 姓と生年月日の重複
- 重複する名、生年月日、部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。
- 重複する名と部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。
- 重複する姓と部分的な SSN の一致 (別のクライアントは、9 桁のうち 5 桁が同じで、同じ位置にある SSN を持っています。
これらのチェックに加えて、 soundexを使用して類似の姓名に基づいて一致を検出することについての議論がありました。
このようなものを処理するように設計された PHP クラスは既にありますか? (Mysql) データベース レベルでこのようなことを行うことはできますか?
説明:
- この問題は、データベース レベルでのデータの整合性の欠如が原因ではなく、入力プロセス中に発生したタイプミスが原因で発生します。アプリケーションはデータ入力アプリケーションです。ユーザーはフォームの物理的な紙のコピーを取り、データをアプリケーションに入力しています。
php - SQLITE を使用して PHP で Soundex を使用して「もしかして..」を取得する方法
同様のスレッドがあることは知っていますが、有用な回答はありません。
私は SQLITE を使用しています (言語を変更できません)。ユーザーがフォームに入力すると、フィールドの 1 つがカテゴリになります。
たとえば、ガーデニングなどのカテゴリに参加してもらいたいです。
しかし、そのカテゴリが既に「Gardening」であるか、スペルが間違っている場合は、エントリが追加され、検索時に問題が発生します。
エントリで SOUNDEX を使用してデータベースと照合できるかどうかを知りたいのですが、80% 類似しているなどのエントリが存在する場合は、次のメッセージが表示されます。
(カテゴリ)のことですか?
これは、クリックするとフィールド エントリが変更されるリンクになります。
私が探しているものはかなり多いので、事前に助けてくれてありがとう。
更新:私のデータベースには、似たような値があります。そう:
カテゴリー:
ガーデニング クッキング DIY
sql - SQL soundex クエリは一般的な検索用ですか?
LIKE
ナレッジ ベース サイトで検索文字列を検索するクエリを使用しています。したがって、「電話」という用語は、論理的には、「電話」という単語が書かれているすべてのページを表示する可能性があります。
しかし、「phone call」、「phonecall」、「phone-call」などのあまり一般的でない検索に入ると、LIKE クエリも機能しなくなる領域に入り始めます。
誰かが私に勧めSOUNDEX
てくれたので、完全一致だけでなく類似一致もキャッチできました。
これは適切な使用SOUNDEX
ですか? もっと適切なものがありますか?
python - Pythonを使用して他のファイルと照合することにより、1つのファイルの内容とインデックスの場所を印刷します
私はPythonを初めて使用します。私が欲しいのは、このようなファイルのコンテンツを印刷できるようにすることです。
マッシュポテト、これとあれをトッピング...................... 9.99 $
同様に
Product_name、description.........................価格
Product_namesのみを含むファイルと照合した場合
マッシュポテト
過去
シーザーサラダ
などなど。
最初のファイルの内容は均一な順序ではないので、検索、照合、印刷のアプローチで試しています。
私の問題を理解していただければ幸いです
これは私が試したことです
私のコードは、2番目の製品リストファイルを完全なコンテンツファイルと一致させますが、説明と価格ではなく、product_Namesのインデックスのみを提供します。
私が欲しいのは、Product_nameからpriceまでのインデックス/スパンです。
マッシュポテトのように----9.99$(マッシュポテト-[0:58]),,mちょうど[0:14]
また、同じアプローチを使用して説明と価格を印刷する方法
前もって感謝します
php - ポルトガル語のローカライズ (ダブル) Metaphone (pt_PT)
英語以外の 2 つの文字列が音声的にどのように類似しているかを確認したいのですが、私の知る限り、soundexとmetaphone の実装は、英語ベースの文字列に対してのみ正しく機能します。たとえば、ポルトガル語ではまったく同じように聞こえcoração
ますcorassão
metaphone()
が、 と が返さKR
れKRS
ます。他の音素でも同じことが起こり、chita
とxita
が返さXT
れST
ますが、同じように聞こえます。
このDouble Metaphone の実装( demo )も試しましたが、結果はまったく同じです。
それで、ポルトガル語の単語で動作する代替アルゴリズムはありますか? この他の質問でLuceneについて読んだことがありますが、これまで使用したことがなく、どのように機能するか、またはどのように使用するかわかりません。
そうでない場合、メタフォンのようなアルゴリズムを開発するために収集する必要があるデータの種類を誰か知っていますか?
mysql - MySQL は結果が広すぎるように聞こえる
夜、
より狭い音声範囲から結果を返すように、MySQL で SOUNDS LIKE を微調整する方法はありますか? またはこれを可能にする別の機能。
できるだけ狭い範囲を探しています。
.net - DotNet Soundex 関数
SQLServer Soundex でエンコードされた姓 + 名の列を持つデータベース テーブルがあります。私の C# プログラムでは、クエリで使用するために soundex を使用して文字列を変換したいと考えています。
dotnet ライブラリに soundex の標準文字列関数がありますか、それともそれを実装するオープン ソース ライブラリですか (おそらく文字列の拡張メソッドとして)?
mysql - mysqlの別のテーブルに基づく列のスペルミスを修正する
私のmysqlテーブルにはcityname列があります。cityname 列の値にはスペルミスがあります。city のスペルミスはそれぞれ修正する必要があります。別のテーブルには、すべての正しい都市名を含む列があります。この表に基づいて、最初の表のスペルミスを修正する必要があります。私はsoundexのようなものを調べましたが、似たようなことをしたリンクは見つかりませんでした.
私が念頭に置いているアプローチは、似たような都市名を持つ行から別のテーブルを作成するSQLクエリを取得することです。
これが完了したら、SQLクエリを使用して、間違ったスペルを正しいスペルに再度置き換えます
最後に、すべての異なる表を、すべてのスペルが修正された 1 つの表に結合します。
アプローチとmysqlクエリ構文の両方でアドバイスを探しています
php - MySQL クエリの Soundex が正しく機能しない
検索時につづりが間違っていても、データベースを通じてコンテンツを検索するクエリを作成するタスクがあるため、strcmp を使用してクエリの soundex を比較しています。現在のコードに問題があります。AZUS、つまり ASUS を検索すると、ASUS のタイトルが表示されません。これは、post_entry
ASUSでは、以下のコードでこれを行うために a<a href="">ASUS </a>
を実行する必要があるためですが、すべてのオプション %s% または %s または s% または s に対してスクリプトが遅くなります。soundex("%'.$arraytagsd.'")
%
とにかくsoundexを使用してこれをより速く行う方法はありますか?
検索入力の各単語を取得してデータベースと比較するために、この関数を作成しました
関連性でソートするクエリで使用します