問題タブ [string-matching]
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.
.net - 構文的に正しいパスをテストする
.NET には、文字列が構文的に正しいパスであるかどうかをテストする関数はありますか? パスが実際に存在するかどうかをテストしたくありません。
これに対する私の現在の見解は正規表現です:
一致:
拒否:
asp.net - 全文検索の最も近い一致
私は自分のウェブサイトに内部検索を実装しようとしています。これは、単語を間違って入力した場合にユーザーを正しい方向に向けることができます。
そのような検索を行う方法を知っている人はいますか? ユーザーが検索しようとしていると想定する単語またはフレーズの関連性をどのように確立できますか?
- FTS(fullTextSearch)でasp.netとSQLサーバー2005を使用しています
ありがとうございました
algorithm - 2つの文字列がどれほど似ているかを見つける
2つの文字列を受け取り、「類似性の要素」を返すアルゴリズムを探しています。
基本的に、スペルが間違っている、文字が入れ替わっているなどの入力があり、可能な値のリストから最も近いものを見つける必要があります。
これはデータベースで検索するためのものではありません。照合する文字列が500文字程度のメモリ内リストがあり、すべて30文字未満であるため、比較的遅くなる可能性があります。
私はこれが存在することを知っています、私はそれを前に見ました、しかし私はその名前を思い出せません。
編集:レーベンシュタインとハミングを指摘してくれてありがとう。さて、どれを実装すればよいですか?それらは基本的に異なるものを測定し、どちらも私が望むものに使用できますが、どちらがより適切かはわかりません。
アルゴリズムを読みましたが、ハミングは明らかに速いようです。どちらも転置されている2つの文字(つまり、ジョーダンとジョドラン)を検出しないので、これはよくある間違いであると私は信じています。誰かがトレードオフについて少し教えてもらえますか?
string-matching - 製品名のあいまい一致
さまざまなソースからの製品名(カメラ、ラップトップ、テレビなど)をデータベース内の正規名に自動的に一致させる必要があります。
たとえば、「Canon PowerShot a20IS」、「NEW powershot A20 IS from Canon」、「Digital Camera Canon PS A20IS」 は、すべて「CanonPowerShotA20IS」と一致する必要があります。私はいくつかのヒューリスティックを追加してレーベンシュタイン距離で作業しました(明白な一般的な単語を削除し、番号の変更により高いコストを割り当てるなど)。これはある程度機能しますが、残念ながら十分ではありません。
主な問題は、関連するキーワードを1文字だけ変更しても大きな違いが生じる可能性があることですが、関連するキーワードを特定するのは簡単ではありません。たとえば、次の3つの製品名を考えてみましょう
。LenovoT400
Lenovo R400
New Lenovo T-400、Core 2 Duo
最初の2つは、どの規格でもばかばかしいほど似た文字列です(この場合、soundexはTとRを区別するのに役立つかもしれませんが、名前は400Tと400Rも同様です)、1番目と3番目はストリングとして互いにかなり離れていますが、同じ製品です。
明らかに、マッチングアルゴリズムを100%正確にすることはできません。私の目標は、名前の約80%を高い信頼性で自動的にマッチングすることです。
任意のアイデアや参考文献は大歓迎です
string-matching - 可変長文字列のより優れた類似性ランキング アルゴリズム
通常提案されているもの (レーベンシュタイン距離、soundex など) よりも、可変長文字列でより良い結果をもたらす文字列類似性アルゴリズムを探しています。
例えば、
与えられた文字列 A: "Robert",
ストリング B: "Amy Robertson"
よりも良い一致だろう
文字列C:「リチャード」
また、できれば、このアルゴリズムは言語にとらわれないようにする必要があります (英語以外の言語でも機能します)。
php - EREGIとSTRIPOSのどちらがより信頼できるマッチングスキームですか?
マッチングの場合、あなたによるとどのスキームがより良いものですか?
エレギなのかストリップなのか他の方法なのか?
java - Java でテキスト ファイルを 1 つの単位として表現し、テキスト内の文字列を一致させる
テキスト ファイル (または XML ファイル) を文字列全体として表現し、その中の特定の文字列を検索 (または一致) させるにはどうすればよいですか?
BufferedReader オブジェクトを作成しました。
次に、次のように、さまざまな区切り文字を指定するオプションを指定して Scanner クラスを使用しようとしました。
このような Scanner クラスを使用すると、テキストを 1 行ずつ、または単語ごとに読み取ることができますが、処理したいテキストで時々
私が言いたい<review>
のは、テキストのどこかに " " が見つかった場合は、" " が見つかるまで次の行 (またはテキストの一部) で何かを行うことです</review>
。問題は、<review>
and</review>
がテキスト内の別の場所にあり、他のテキストにくっついている場合があることです (したがって、区切り文字としての空白は役に立ちません)。
Javaの正規表現API(PatternクラスとMatcherクラス)を使えばいいのにと思ったのですが、特定の文字列や行にマッチするようで、テキストを1つの連続した文字列にしたい(少なくともこれが私の印象でした)私がそれらについて読んだことから)。この場合、どの構造/メソッド/クラスを使用すればよいか教えていただけますか? ありがとうございました。
xpath - 既知の属性のXPath部分
ドキュメント内の属性の部分的な値は知っていますが、全部ではありません。任意の値を表すために使用できる文字はありますか?たとえば、入力のラベルの値は「A.Choice1」です。「Choice1」と表示されていることは知っていますが、「Choice1」の前に「A.」と「B.」のどちらが表示されるかはわかりません。以下は、関連するHTMLです。入力とラベルには他にも属性がありますが、ページがレンダリングされるたびに同じではないため、参照として使用することはできません。
これは、「Choice 1」の値を持つラベルの横にある入力を選択するために使用しているXPath式です。ただし、HTMLではAがその前にあります。
HTMLのAがA、B、Cなどのいずれであるかはわかりません。しかし、正しい入力の横には常に選択肢1のテキストが表示されることはわかっています。ラベルに選択肢1と同じではなく、選択肢1が含まれている場合、どのように選択すればよいですか?
regex - 正規表現はプログラミングに必須ですか?
正規表現はプログラミングを行うために必須ですか?