タグ付けされた質問 「string-matching」

3
JavaScriptで文字列に部分文字列が含まれているかどうかを確認するにはどうすればよいですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 通常はString.contains()メソッドを期待しますが、メソッドはないようです。 これをチェックする合理的な方法は何ですか?

30
文字列に特定の単語が含まれているかどうかを確認するにはどうすればよいですか?
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 検討してください: $a = 'How are you?'; if ($a contains 'are') echo 'true'; 上記のコードがあるとすると、ステートメントを記述する正しい方法は何if ($a contains 'are')ですか?



22
可変長文字列の類似性ランキングアルゴリズムの改善
私は、通常提案されているもの(レーベンシュタイン距離、soundexなど)よりも可変長文字列でより良い結果が得られる文字列類似性アルゴリズムを探しています。 例えば、 与えられた文字列A: "Robert"、 次に文字列B: "Amy Robertson" より良い試合になるでしょう 文字列C: "リチャード" また、このアルゴリズムは言語にとらわれないものであることが望ましい(英語以外の言語でも機能する)。

2
Pythonでの高性能ファジー文字列比較、Levenshteinまたはdifflibを使用[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 この質問を改善する 私は、臨床メッセージの正規化(スペルチェック)を行っています。このチェックでは、指定された各単語を900,000単語の医学辞書と照合します。時間の複雑さ/パフォーマンスについてもっと心配しています。 あいまいな文字列比較を行いたいのですが、どのライブラリを使用するかわかりません。 オプション1: import Levenshtein Levenshtein.ratio('hello world', 'hello') Result: 0.625 オプション2: import difflib difflib.SequenceMatcher(None, 'hello world', 'hello').ratio() Result: 0.625 この例では、どちらも同じ答えを出します。この場合、どちらも同じように機能すると思いますか?



10
意味のあるJavaScriptのあいまい検索
配列をフィルタリングするためのあいまい検索JavaScriptライブラリを探しています。fuzzyset.jsとfuse.jsを使用してみましたが、結果はひどいです(リンクされたページで試すことができるデモがあります)。 レーベンシュタイン距離について少し読んだ後、それはユーザーがタイプしたときに探しているものの不十分な近似として私に印象づけます。知らない人のために、システムは、2つの文字列を一致させるために必要な挿入、削除、および置換の数を計算します。 Levenshtein-Demerauモデルで修正された明らかな欠陥の1つは、blubとboobの両方が球根に等しく類似していると見なされることです(それぞれ2つの置換が必要です)。ただし、bulbはboobよりもblubに似ていることは明らかです。先ほど述べたモデルでは、転置を許可することでそれを認識しています。 これをテキスト補完のコンテキストで使用したいので、配列['international', 'splint', 'tinder']があり、クエリがintの場合、前者のスコア(higher = worse)が10であっても、splintよりもInternationalのランクが高くなるはずです。後者の対3。 だから私が探しているのは(そしてそれが存在しない場合は作成します)、次のことを行うライブラリです: さまざまなテキスト操作に重みを付ける 各操作の重み付けは、単語のどこに出現するかによって異なります(初期の操作は後の操作よりもコストがかかります)。 関連性でソートされた結果のリストを返します 誰かがこのようなものに出くわしましたか?StackOverflowがソフトウェアの推奨事項を求める場所ではないことに気づきましたが、上記の暗黙の(もうない!)は次のとおりです。これを正しい方法で考えていますか? 編集する この件に関して良い論文(pdf)を見つけました。いくつかのメモと抜粋: アフィン編集距離関数は、挿入または削除のシーケンスに比較的低いコストを割り当てます Monger-Elkan距離関数(Monge&Elkan 1996)。これは、特定のコストパラメータを持つSmith-Waterman距離関数(Durban et al。1998)のアフィンバリアントです。 ためのスミス-ウォーターマン距離(ウィキペディア)、「その代わりに全配列を見てから、スミス-ウォーターマンアルゴリズムは、すべての可能な長さのセグメントを比較し、類似性測度を最適化します。」それはn-gramアプローチです。 編集距離モデルに基づいていない、広く類似したメトリックは、Jaroメトリックです(Jaro 1995; 1989; Winkler 1999)。レコードリンケージの文献では、2つの文字列間の共通文字の数と順序に基づく、このメソッドのバリアントを使用して良好な結果が得られています。 Winkler(1999)によるこのバリアントも、最長の共通プレフィックスの長さPを使用します (主に短い文字列を対象としているようです) テキスト補完の目的で、Monger-ElkanおよびJaro-Winklerのアプローチが最も理にかなっているようです。WinklerのJaroメトリックへの追加は、単語の始まりをより重く効果的に重み付けします。また、Monger-Elkanのアフィン的側面は、単語を補完する必要性(これは単なる追加のシーケンスです)がそれほど嫌われないことを意味します。 結論: TFIDFランキングは、いくつかのトークンベースの距離メトリックの間で最もよく機能し、MongeとElkanによって提案された調整されたアフィンギャップ編集距離メトリックは、いくつかの文字列編集距離メトリックの間で最もよく機能しました。驚くほど良い距離メトリックは、Jaroによって提案され、後でWinklerによって拡張された高速ヒューリスティックスキームです。これは、Monge-Elkanスキームとほぼ同じように機能しますが、桁違いに高速です。TFIDFメソッドとJaro-Winklerを組み合わせる簡単な方法の1つは、TFIDFで使用されている正確なトークンの一致を、Jaro-Winklerスキームに基づくおおよそのトークンの一致に置き換えることです。この組み合わせは、平均でJaro-WinklerやTFIDFよりもわずかに優れており、場合によってははるかに優れています。また、このペーパーで検討されているいくつかの最良のメトリックの学習された組み合わせに近いパフォーマンスを発揮します。

14
有効な年をテストするための正規表現の一致
値が与えられたら、それを検証して、それが有効な年であるかどうかを確認したいと思います。私の基準は単純で、値は4文字を含む整数でなければなりません。私はこれが最善の解決策ではないことを知っています。何年も前1000には許可されず、などの年も許可されるから5000です。この基準は、私の現在のシナリオには適切です。 私が思いついたのは \d{4}$ これは機能しますが、負の値も許可されます。 正の整数のみが許可されるようにするにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.