問題タブ [text-search]
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.
sql-server - 特定のテキスト内のさまざまなキーワードの検索を高速化する方法
変数 @Searchtext で渡された検索文字列内で、「EmailKeywords」という名前のテーブルに格納されているいくつかのキーワードの出現を探しています。これは、以下に記述されたストアド プロシージャによって実現されましたが、通常は正常に動作します。しかし、検索するキーワードが多いと、すべてのキーワードで検索テキストをループする必要があるため、これにはかなりの時間がかかります。
この検索を高速化する方法を知っている人はいますか? どんなヒントでも大歓迎です。
text-search - 文字が同じ順序である別のテキスト内のテキストを検索する
テキスト ('needle') が別のテキスト ('haystack') 内に存在する場合、次の 2 つの条件で検索したいと思います。
- 「針」のすべての文字は、同じ順序で「干し草の山」内になければなりません
- 「干し草の山」内の「針」の後続の文字の間に、他の文字を無制限に含めることができます
例:
- cde in abcde --> TRUE
- cde in ab-c-de --> TRUE
- cde in cabecd --> FALSE
- cde in cd!a+b5ce --> TRUE
- edc の cde --> FALSE
さらに、「cde」は定数文字列ではなく、リストを反復処理する変数です。
Python、R、またはbashでのエレガントなソリューションをいただければ幸いです。
grep - サブディレクトリのgrep検索
すべてのファイルの中からディレクトリ内のテキストを検索しようとしています。サブフォルダーにもアクセスすることが期待されます。名前に空白文字が含まれるフォルダーとファイルがあります。次のコマンドを使用して検索しています。
これは、空白文字を含むフォルダーとファイルにアクセスしません。コマンドで何を変更するかについて何か提案はありますか?
java - 大きなファイル内のテキストを検索して置換する正規表現
巨大なファイルで複数行のパターンを検索していますが、見つかった場合は内容を置き換える必要があります。これをメモリ効率の良い方法で実現したいと考えています。私の現在の実装では、ファイルから 4096 バイトのチャンクでテキストを読み取ります。次に、正規表現検索置換を適用し、結果をバッファー出力ストリームに保存します。これにより、ファイル全体をメモリにロードしないことでメモリが改善されますが、マップ/フラッシュ呼び出しで多くの IO を作成しています。コードをさらに改善するための提案が必要です。また、検索対象のパターンが隣接するチャンクに分割されている場合、アルゴリズムは失敗します。隣接するチャンクに分割されたテキストを効率的に検索置換する方法に関するアイデア。前提 : 検索するテキストは常に 4096 バイト未満です。
php - 大規模なデータセットでのコサインの類似性
現在、私はデータマイニング、テキスト比較について勉強しており、これを見つけました: https://en.wikipedia.org/wiki/Cosine_similarity。
このアルゴリズムを実装して 2 つの文字列を比較することに成功したので、より複雑なタスクを達成することにしました。約25 万のドキュメントを含む DB を繰り返し処理し、DBからの 1 つのランダムなドキュメントをその DB 内のドキュメント全体と比較しました。
これらすべてのアイテムを比較するのに時間がかかりました: 316.35898590088 秒、つまり、250k のドキュメントすべてを比較するのに 5 分以上かかりました!
この結果、多くの問題が発生したため、いくつかの提案を求めたくありません。わかりやすくするために、まず、役立つと思われる詳細をいくつか説明します。
- プログラミング言語としてPHPを選択しました。
- ドキュメントは MySQL に保存されます。
- コサイン類似度関数の実装には、この関数のみが含まれており、ストップ ワードやその他の派手なものはありません。
質問
- より良いパフォーマンスを達成する方法はありますか?アルゴリズムを調整することによって(つまり、事前にベクトルを準備するなど)、他のテクノロジーを使用することなどによって、どこから始めるべきですか?
- これらの比較結果を保存する方法と場所。たとえば、これらの 250,000 のドキュメントすべてを類似性スコアで表示できるグラフをいくつか印刷して、どれが最も類似しているかなどを特定できるようにしたいと考えています。
mongodb - MongoDB テキスト検索追加言語
MongoDB がサポートする既存の言語に言語を追加することはできますか? カスタム ストップ ワードの定義が好きですか? スロベニア語でテキスト検索を使用したいと考えています。