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

feature-extraction - tf-idf で非常に珍しい用語を扱う方法は?

素朴な「キーワード抽出アルゴリズム」を実装しています。私は独学なので、オンライン文献で一般的な用語や数学が不足しています。

ドキュメントの「最も関連性の高いキーワード」を次のように見つけています。

  1. 各用語が現在のドキュメントで使用されている頻度を数えます。これをtfとしましょう。
  2. これらの各用語がドキュメントのデータベース全体でどのくらいの頻度で使用されているかを調べます。これをdfとしましょう。
  3. r = tf / dfによって、各用語の関連性の重みrを計算します。

各ドキュメントはコーパスの適切なサブセットであるため、コーパスにない用語を含むドキュメントはありません。これは、ゼロ除算について心配する必要がないことを意味します。

すべての用語をrで並べ替え、上位の用語の多くを保持します。これらは、このドキュメントに最も密接に関連する上位のキーワードです。このドキュメントで一般的に使用される用語は、より重要です。ドキュメントのデータベース全体に共通する用語は、それほど重要ではありません。

これは単純な形式のtf-idfだと思います。

問題は、用語がデータベース全体で非常にまれであるが、現在のドキュメントで使用されている場合、 r値が高すぎるように見えることです。

これは、サンプル サイズが小さいため、ある種のアーティファクトと考えることができます。これを補うための最善の方法または通常の方法は何ですか?

  • データベース全体で特定のしきい値よりも一般的でない用語を破棄します。もしそうなら、そのしきい値はどのように計算されますか? ハードコードされた値になるには、あまりにも多くの要因に依存しているようです。
  • 逆二乗やコサインなどの数学関数で加重または平滑化できますか?

私はウェブを検索してtf-idfを読んでみましたが、私が興味を持っていないドキュメントの比較を扱っていることがわかりました。さらに、それらのほとんどは、説明と専門用語や公式の比率が低くなっています。

(実際、私のプロジェクトはこの問題の一般化です。私は実際に Stack Exchange サイトのタグを扱っているので、用語の総数は少なく、ストップワードは無関係であり、使用頻度の低いタグは使用頻度の低い単語よりも一般的かもしれません。通常のケースです。)

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

mysql - mysqlと同様のタグに基づいて関連タイトルを選択します

タグ

投稿

同じpost_idに値を含むpost_id=1と2を取得するにはどうすればsomeよいgoodですか?

結果は

good titlesomeタグのpost_id=4に値 がないため、dosentshow。some要件をbeouseに表示しませんgood

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

php - 関連性による MYSQL 全文検索の順序

全文検索を関連性順に並べ替えようとしています。これが私のコードです。ORDER BYを削除しても機能しますが、関連性でソートされません。私はこれを試してみましたが、実際には結果が得られないため、結果がまったく見つかりません...何かアイデアはありますか?

編集*

その後、コードで

更新 これは私にとってはうまくいきました

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

django - 関連データをオブジェクト内の個々のアイテムに一致させることによる、Django での関連に基づくテキスト検索

手元にあるデータ org_name、name、phone、email_id、incorporation_date... モデル内のデータと比較し、関連性に基づいて結果を表示するために必要なデータを使用するにはどうすればよいですか。

例:

Apple と org_name のデータ、Steve の名前などを比較し、一致する行を DJANGO を使用して関連性の降順で表示できるはずです!

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

mysql - MySQL ORDER BY CASE/IF関連性の問題

私はORDERBYCASEまたはORDERBYIF()を使用したことがなく、インターネットで見つけたいくつかの例は、次のタスクを実行しようとするよりも混乱を招きます。

メンバーリストがあり、このメンバーリストの上位(一番上)にユーザーを並べて、ユーザーのアクティビティに少し「報酬」を与えたいと思います。

私の例では、3つの列を持つ「users」というMySQLテーブルがあります。

  • 「user_percentage」は、各ユーザーがプロファイルフィールドに入力したすべての値(0〜100)を保持します。
  • ユーザーがプロフィール写真をアップロードした場合、「user_photo」は値(0 = false、1 = true)を保持します。
  • "user_lastloginは、最後の訪問の値(タイムスタンプ)を保持します。

説明するのは少し難しいですが、私が望むことを簡単に言うと:

  • user_percentageの値が高いユーザーはメンバーリストの一番上にあるはずですが、user_photoを取得していない場合は、古いuser_lastloginタイムスタンプを取得した場合と同じように、メンバーリストで「下に移動」する必要があります。メンバーの順序でダウン。

  • また、私が防ごうとしているのは、ユーザーがサインアップし、すべてのプロファイルフィールドに入力し(その後、user_percentage値は= 100になります)、写真をアップロードしました(その後、user_photoは= 1になります)が、それ以降はログインしていません。長い間(彼は非常に古いuser_lastlogin =タイムスタンプを持っているので)、このユーザーをメンバーリストの順序で下に移動させたいと思います。

私の質問は:これは1つのMySQL ORDER BYステートメントでどういうわけか可能ですか?

user_photoの重要度が30%であるのに対し、user_lastloginの重要度が高く、user_percentageの重要度も少し高いとします。

何か案は?

よろしくお願いします!

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

cakephp - 関連性による CakePHP 検索

関連性によって求人広告を検索したい求人サイトを開発しています。たとえば、役職、job_text などのフィールドがあります。ここで、ある人が Cakephp を検索するとしましょう。最初に Cakephp の結果を取得し、その後、これも一致する php を入力しますが、cakephp が明らかに最も関連性が高いとします。これどうやってするの?

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

php - キーワード結果の関連性を並べ替える

ユーザーが作成したキーワードに基づいて、データベースからかなり短い文字列を取得するクエリを作成しました (彼の回答はzhikharevの功績によるものです)。

私の問題は、この結果を関連性でソートする方法がわからないことです。データベース内の 1 つのタグに複数の単語を含めることができることに注意してください。

ユーザーが「ニューヨーク市」を検索したとします。次に、データベースに次のものがあります。

結果を次のようにしたいと思います。

ユーザー入力の単語と最も一致するタグ、および検索の単語の順序とほぼ同じ単語の順序を持​​つタグを探す必要があります。

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

sql - FREETEXTTABLE を使用してマルチ テーブルからの検索結果の関連性を処理する

ユーザーがキーワードで検索して製品リファレンスを見つけることができるアプリケーションを開発しています (SQL 2008 のフルテキスト インデックス テーブルの FREETEXTTABLE 機能を使用)。これらの参照は、信頼できる 2 つの異なるデータベースから抽出されています。ただし、ランク順に並べると、同じ結果が得られません。私は次のようなリクエストを使用します:

ここで、両方のリクエストのランキングに従って、最も関連性の高いリファレンスを見つけたいと思います。

ランキングを追加する方が良いかどうか疑問に思っています。たとえば、最初のテーブルのランキングが 115 で、2 番目のテーブルのランキングが 95 の場合、合計で 210 ランクになります。または、それらを乗算する方が良い場合 (100, 100 の参照は 10 000 の参照になります)、105,95 の参照は、加算で同じスコアであっても同じ結果ではないため、少なくなります。

この状況での結果の関連性を改善するためのアドバイスをいただければ幸いです

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

freebase - データ ダンプによる Freebase スコアリング

Freebase 検索を使用して任意のエンティティを名前で一致させると、関連性スコアで並べ替えられた結果が得られます。たとえば、タージ・マハルを試してみてください。

私は Freebase のデータ ダンプを使用して同様の結果を得ようとしています。そのため、私のデータベースでは「タージ マハル」関連のトピックが関連性によって並べ替えられます。つまり、建物が最初に来て、ミュージシャンが次に来ます。

Freebase 検索 API を照会せずにこれを達成する方法について何か提案はありますか?

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

mysql - How to obtain a relevance score in a table

I have a mysql table that has typetags for games, like

table game_typetags:

and another table games like

And I want to list relevant games (score them with number of common typetags) and sort with playcount.

So I'm trying to get such an array in PHP:

So that when I call this function with $typetags = [race,sports] , it should return

What query should I use for this? Thanks !