問題タブ [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 投票する
5 に答える
23117 参照

algorithm - 検索ランキング/関連性アルゴリズム

ナレッジ ベースの記事のデータベースを作成する場合 (たとえば)、ユーザーの質問に対する最も関連性の高い回答を並べ替えて表示するには、どのような方法が最適でしょうか?

以前のユーザーがヘルプ記事を見つけたかどうかに基づいて、キーワードの重み付けなどの追加データを使用しますか?それとも単純なキーワード マッチング アルゴリズムで十分だと思いますか?

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

mysql - 全文検索の関連性は?で測定されます

私はクイズシステムを作成しています。クイズ作成者が質問バンクに質問を挿入するとき、重複した/非常に類似した質問がないかDBをチェックします。

MySQLのMATCH()... AGAINST()をテストすると、100%類似した文字列に対してテストした場合、得られる最高の関連性は30以上です。

では、関連性は正確には何ですか?マニュアルを引用するには:

関連性の値は、負でない浮動小数点数です。関連性がゼロの場合、類似性がないことを意味します。関連性は、行の単語数、その行の一意の単語数、コレクション内の単語の総数、および特定の単語を含むドキュメント(行)の数に基づいて計算されます。

私の問題は、文字列が重複している場合に関連性の値をテストする方法です。100%重複している場合は、QuestionBankに挿入されないようにします。しかし、それが非常に似ている場合は、クイズメーカーに確認、挿入するかどうかを尋ねます。では、どうすればよいですか?100%同一の文字列の30+はパーセンテージではないので、私は切り株です。

前もって感謝します。

0 投票する
8 に答える
3931 参照

c# - C# 検索結果表示用の関連ドキュメント スニペットの検索

私が構築しているサイトの検索を開発する際に、Lucene.Net のようなより堅牢なものではなく、Microsoft Sql Server の全文検索エンジンを使用することにしました。

私が欲しい機能の 1 つは、Google 風の関連ドキュメント スニペットです。「関連性の高い」スニペットを特定することは、思ったより難しいことにすぐに気付きました。

見つかったテキストの検索語密度に基づいてスニペットを選択したいと考えています。したがって、基本的には、テキスト内で最も検索用語が密集している箇所を見つける必要があります。パッセージは任意の数の文字です (たとえば 200 文字ですが、実際には問題ではありません)。

私の最初の考えは、ループで .IndexOf() を使用し、用語の距離の配列を作成することです (以前に見つかった用語から見つかった用語のインデックスを減算します)。任意の 2 つ、任意の 3 つ、任意の 4 つ、任意の 5 つの連続する配列要素を合計し、合計が最小の要素を使用します (したがって、検索語間の距離が最小になります)。

それは厄介なようです。

私が思いついた方法よりも、これを行うための確立された、より良い、またはより明白な方法はありますか?

0 投票する
9 に答える
26356 参照

mysql - MySQL全文検索の関連性を操作して、あるフィールドを別のフィールドよりも「価値のある」ものにするにはどうすればよいですか?

キーワードとコンテンツの2つの列があるとします。両方にフルテキストインデックスがあります。キーワードにfooが含まれる行は、コンテンツにfooが含まれる行よりも関連性が高くなります。MySQLがコンテンツの一致よりもキーワードの一致に重みを付けるには、何をする必要がありますか?

「一致」構文を使用しています。

解決:

この作業を次の方法で行うことができました。

0 投票する
4 に答える
506 参照

regex - 正規表現の関連性を確認するには?

2 つの正規表現があるとします。

入力:

明らかに両方とも一致しますが、1234.* の方がより具体的であるため、より一致します。つまり、より関連性があります。どちらがより関連性が高いかを確認する標準的な方法はありますか?

編集:

いくつかの説明。どの正規表現が入力に最もよく一致するかを確認して決定を下したいと思います。この場合、私は数字を一致させるだけです。

電話番号の例:

入力:

次の各正規表現にはルールがあります。

このシナリオでは、31.* にバインドされたルールを使用したいと思います。これは、与えられた入力に対してより具体的であるためです。正規表現を使用していない場合は、スコアリング メカニズムを使用してどの程度一致するかを確認できるので簡単ですが、これらのルールには次のようなより高度な正規表現が含まれる場合があります。

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

mysql - 関連性によるデータベースの検索と結果の表示

次の表を考えると、それぞれの用語を検索し、関連性によって結果を注文するにはどうすればよいですか?ありがとうございました。

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

keyword - 見つかったキーワードの数でテーブルを並べ替える

ドキュメントのタイトル内で複数のキーワードを検索するための次のコードがあり、正常に動作します。各タイトル行で見つかったキーワードの数を示す列を作成し、降順に並べたいと思います。たとえば、「出産休暇」を検索している場合は、次のようになります。

名前 -- 見つかったキーワード

産休制度 -- 2

年次有給休暇制度 -- 1

出産を控えた方へのマタニティアドバイス -- 1

それが理にかなっていることを願っています、どうもありがとう!

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

mysql - MySQL-関連性で注文する方法は?INNODBテーブル

'cards'というINNODBテーブルに約20,000行あるので、FULLTEXTはオプションではありません。

この表を考慮してください:

したがって、ユーザーが「ジョン」を検索すると、結果セットを次の順序にする必要があります。

「ジョン・スミス」を引っ張ったのは1回だけで、彼の最新のエントリを取得したことに注意してください。私のデータによると、すべての名前はまったく同じ人物のものであり、ジョン・スミスという名前の2人の異なる人物について心配する必要はありません。アイデア?何か明確にできるかどうか教えてください。

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

php - MySQLとPHPを使用して、数値のセットを比較し、最も関連性の高い結果を得るにはどうすればよいですか?

このことを考慮:

Dを他の部分と比較して、結果として最も関連性の高い一連の数値を取得したいと思います。結果は次の順序になります:4(DはAと共通の番号を持ち、4はAにあり、BとCにもあるため)、3(DはAと共通の番号を持ち、3はAとBにあるため)、 2(DはAと共通の番号を持ち、2もAにあるため)、5、6、7。

PHP / MySQLでこれを効率的に行うためのアルゴリズムはありますか?車輪の再発明をしたくありません。また、データベースには最終的に膨大な数のセットが含まれることになります。

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

php - php-関連コンテンツへのリンクを表示

「YouTube関連動画」スタイル関連のコンテンツシステムを実装したいと考えています。

ページごとに5つのタグ/キーワード、タイトル、説明があります。最も類似した2つのページへのリンクを表示したいと思います。

関連性による順序に基づいたmysqlクエリを推測しています。

どうもありがとう。