問題タブ [relevance]

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.

0 投票する
2 に答える
8391 参照

solr - Solr:QueryElevationComponentにはStrFielduniqueKeyFieldエラーが必要です

最近solrをインストールしました。サンプルインデックス(apache-solr-#。#。#\ example \ solrにあります)は機能しているようで、solrホームディレクトリにコピーすると、管理ページからアクセスできるようになります。ただし、schema.xmlのコンテンツを(ここから取得)に置き換えて新しいインデックスを実装しようとすると、次のようになります。

構成エラーが発生しました。これは、uniqueKeyFieldをStrFieldタイプで実装する必要があることを示唆しているようです(実際には信じがたいことですか?)):

"HTTPステータス500-solr構成の重大なエラー。...org.apache.solr.common.SolrException:QueryElevationComponentでは、スキーマに、org.apache.solr.handler.component.QueryElevationComponent.inform(でStrFieldを使用して実装されたuniqueKeyFieldが必要です。 QueryElevationComponent.java:157)at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:508)at ... "

私のグーグルはほとんど役に立たなかったので、この問題に遭遇したか、それを解決する方法についていくつかのアイデアを持っているかもしれない誰かがこのあたりにいるかもしれないと思っていますか?

アドバイスをよろしくお願いします、Bea。

0 投票する
13 に答える
5844 参照

php - 検索エンジンは関連するコンテンツをどのように見つけますか?

ウェブを解析する際、Google はどのようにして関連コンテンツを見つけますか?

たとえば、Google が PHP ネイティブ DOM ライブラリを使用してコンテンツを解析するとします。Web ページで最も関連性の高いコンテンツを見つけるには、どのような方法が必要ですか?

私の考えでは、すべての段落を検索し、各段落の長さで並べ替えてから、可能な検索文字列とクエリ パラメータから各段落の関連性の割合を計算します。

次の URL があるとします。

この URL から、HTML ファイル名の関連性が高いことがわかり、その文字列がページ内のすべての段落とどれだけ近いかがわかります。

これの本当に良い例は、ページを共有するときの Facebook 共有です。Facebook はすぐにリンクをボットし、画像、コンテンツなどを取り戻します。

周囲の要素とメタデータに応じて関連性の割合を計算するには、何らかの計算方法が最適であると考えていました。

サイトから最高のコンテンツを取得する方法、話題になる可能性のあるアルゴリズム、または詳細な回答をカバーするコンテンツ解析のベスト プラクティスに関する本/情報はありますか?


私が念頭に置いているいくつかのアイデアは次のとおりです。

  • すべての段落を検索し、プレーン テキストの長さで並べ替える
  • どういうわけかコンテナーの幅と高さを見つけてdiv(W+H) で並べ替える - @Benoit
  • メタ キーワード、タイトル、説明を確認し、段落内の関連性を確認します
  • すべての画像タグを見つけて、最大の順に並べ替え、メイン段落から離れたノードの長さ
  • ビデオなどのオブジェクト データを確認し、最大の段落/コンテンツ div からノードを数えます
  • 解析された前のページからの類似点を解決する

この情報が必要な理由:

Web マスターがリンクを送信してページを一覧表示する Web サイトを構築していますが、Web マスターにリンクを送信してもらいたいので、そのページをクロールして次の情報を見つけます。

  • 画像(該当する場合)
  • テキストの最適なスライスからの < 255 段落
  • 検索エンジンに使用されるキーワード (スタック オーバーフロー スタイル)
  • メタデータ キーワード、説明、すべての画像、変更ログ (モデレートおよび管理目的)

これが検索エンジンのためのものではないことを理解していただければ幸いですが、検索エンジンがコンテンツの発見に取り組む方法は、私が必要としているものと同じコンテキストにあります。

私は企業秘密を求めているのではなく、これに対するあなたの個人的なアプローチがどのようなものかを尋ねています。

0 投票する
3 に答える
889 参照

algorithm - コンテンツ関連性アルゴリズムを教えてもらえますか?

いくつかの興味深い要件を持つ新しいプロジェクトが私のデスクに到着しました。任意の検索クエリに基づいて関連する結果を提供することに重点を置いて、検索可能なビジネスのディレクトリを作成する必要があります。ビジネスはあらゆるニッチである可能性があります。別の領域よりも代表的な領域はありません。

「検索アルゴリズム」や「コンテンツ関連性アルゴリズム」などをグーグルで検索すると、Google の「旧神々の神秘的なアルゴリズム」や SEO 企業への言及しか得られません。

MySQL のフルテキストMatch()関数の関連値は、タスクに必要なものを備えていますか? 私はそれを使用したことはありませんが、私は間違いなくいくつかのテストを行うつもりです. また、これは主に人間が編集したディレクトリになるため、タグ付けやカテゴリなどの加重要素を追加できると想定できます。これらの要因と MySQL のMatch()関連性を組み合わせるには、どのような方法がよいでしょうか?

また、ここで取り上げていないアイデアにもオープンです。

0 投票する
2 に答える
206 参照

terminology - ドキュメント内のテキスト頻度とコーパス内の頻度の比較

文字、バイグラム、単語などの項目についてドキュメントを分析し、ドキュメント内でのそれらの頻度と、ドキュメントの大規模なコーパスでの頻度を比較したいと考えています。

「if」、「and」、「the」などの単語はすべてのドキュメントで共通ですが、一部の単語はこのドキュメントではコーパスの典型よりもはるかに一般的です。

これはかなり標準的なはずです。それはなんと呼ばれていますか?明白な方法でそれを行うと、文書内の新しい単語に常に問題がありましたが、コーパスの評価では無限に重要ではありませんでした。これはどのように処理されますか?

0 投票する
3 に答える
1882 参照

apache - Apache Lucene:関連性スコアは常に0から1の間ですか?

ご挨拶、

次のApacheLuceneスニペットがあり、素晴らしい結果が得られています。

私が知りたいのは、hits [i] .scoreは常に0から1の間ですか?そのように見えますが、確信が持てません。Luceneのドキュメント(クラスScoreDocs)をチェックしても役に立ちませんでした。hits[i].scoreに基づく「newRelevance」値のログを計算していることがわかります。hits [i] .scoreは0から1の間にある必要があります。これは、0未満の場合、エラーが発生するためです。1を超えると、符号が負から正に変わります。

Luceneの専門家が私に洞察を提供してくれることを願っています。

どうもありがとう、

0 投票する
1 に答える
1764 参照

mysql - 一部のフィールドの関連性を高め、mysql 全文検索で関連性を基準にソートする

posts テーブルには、post_titlepost_contentの 2 つのフィールドがあります。ここで、標準の全文検索を使用して、両方のフィールドに対していくつかのキーワードを照合します。コンテンツ フィールドよりもタイトル フィールドに関連性を持たせ、関連性で結果を並べ替える必要はありません...

この目標を達成するには、mysql の構文はどのようになりますか? 私はmysql 5.1を使用しています

0 投票する
7 に答える
2748 参照

algorithm - テキスト間の親和性を返す関数?

私が持っていると考えてください

そして私はいくつかのマイナーなキーワードを持っています

テキストとキーワードの親和性を返す関数が必要です。例:

5と4は単なる例であることに注意してください。

次のように言うことができます-発生をカウントする関数を記述します-しかし、この例では、両方が2回発生するため、これは機能しませんが、「helloevening」がstring1に正確に見つからないため、compare1の関連性は低くなります(helloとeveningの2つの単語はこんにちはより遠いこんにちは)

これを行うための既知のアルゴリズムはありますか?

ADD1:

この場合の距離の編集のようなアルゴリズムは機能しません。string1は完全なテキスト(300〜400語など)であり、比較する文字列は最大4〜5語であるためです。

0 投票する
1 に答える
1365 参照

javascript - 複数のパラメータを使用したクライアント側の予測検索関連性計算

サーバーのパフォーマンス要件 (すべてがキャッシュされる) のために、クライアント ブラウザーで実行する必要がある予測検索を作成しています。アイテムはテレビ番組と映画で、タイトル、俳優、監督の名前が一致しています。検索が実行されると、一致した項目のリストが返され、結果ごとに 2 つの値が返されます。

  1. 一致する単語の数 (n): ユーザーは 4 つの単語を入力できますが、項目に一致した単語は 2 つだけです。多ければ多いほどよい。

  2. レーベンシュタイン編集距離の追加 (ld)。ユーザーは 3 つの単語を入力できますが、そのうちの 2 つには、タイプミスまたはインデックス付きの単語との小さな違いがあります。編集距離を使用して、最も近いインデックス付きの単語を見つけます。すべてのレーベンシュタイン距離の加算は、近接インジケーターとして返されます。少ないほど良い。

要件

  1. クライアント側。Sphinx、Lucene、またはその他のサーバー側ソリューションはありません。

  2. 正確さよりもスピード。アルゴリズムはキーストロークごとに実行されるため、ユーザーを退屈させたくありません。大きな Oはあまり大きくしないでください。

  3. 非再帰。各項目の関連性の計算は、他の項目の計算に依存してはなりません。私は Google を打ち負かしたくありません。小さなセットの最良の結果を最初に提供するだけです。

  4. 境界フォーム 0 から 1、0 から 100 など。必須ではありませんが、「関連度」を示すことができることはプラスです。

  5. 実装よりもアイデア。特定の実装よりも優れたアルゴリズム/式を探しています。

私のアプローチ

指数関数的減衰 (放射性半減期分解など) に基づいて、この式を作成しました。

ウィキペディアの LaTeX サポートによる数学スタイル

どこ:

  • Tユーザーが提供した単語数です。
  • n一致する単語の数です。
  • ldは、この一致する単語のレーベンシュタイン距離の追加です。

疑似コードで。

少し説明:

  • -ld * 1/n関連性測定コアです。ldが低くて大きい場合n、ゼロ (-0 側) に近づき、この結果がより適切であることを示します。

  • n/Tは正解率です。一致した単語とすべての単語。ユーザー入力の合計を考慮して、以前の関連性を絞り込みます。

負の累乗の指数関数は、結果を 0 と 1 の間で制限します。

そして、最後に質問です

私が望むのは、追加の編集距離計算を使用してこの応答に基づいて検索アルゴリズムを改良することではなく、それぞれに関連性の値を割り当てることによって、返される要素の関連性の並べ替えを改善することです。nおよび以外のパラメータldが必要で、簡単に計算できる場合は、使用できます。私のソリューションではT、ユーザーが提供した単語の数を追加しました。

0 投票する
2 に答える
5701 参照

php - 単語の優先度の関連性によってmysql検索結果を並べ替える方法

重複の可能性:
PHP MySQL 検索と関連性順

やあ、

名前、住所、会社などのフィールドを含むいくつかの列を持つテーブルがあります。誰かが「microsoft john」を検索するとします。「microsoft」を含む結果が最初に表示され、次に john が含まれる結果が表示されます。クエリが「john microsoft」の場合はその逆

私のphpコードは次のとおりです。

問題は、MYSQL が結果を id で並べ替えていることです...これは、より高い値の結果がスタックの奥深くにスタックする可能性があるため、おかしくなります。ところで、phpmyadmin 検索にも同じ欠陥があります。

提案してください。

0 投票する
3 に答える
2603 参照

php - 全文検索でmysqlが一致する単語を自動的に太字にする方法

タイトル自体で問題を正確に説明しようとしました。クエリで一致する単語を囲むことはできますか?mysqlクエリ自体で?MySQL クエリは次のとおりです。

select id, FirstName,LastName,addcomments WHERE MATCH (FirstName,LastName,addcomments) AGAINST ('some sample text' WITH QUERY EXPANSION)

mysql からの結果は次のようになります。

どんな助けでも大歓迎です