問題タブ [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.
feature-extraction - tf-idf で非常に珍しい用語を扱う方法は?
素朴な「キーワード抽出アルゴリズム」を実装しています。私は独学なので、オンライン文献で一般的な用語や数学が不足しています。
ドキュメントの「最も関連性の高いキーワード」を次のように見つけています。
- 各用語が現在のドキュメントで使用されている頻度を数えます。これをtfとしましょう。
- これらの各用語がドキュメントのデータベース全体でどのくらいの頻度で使用されているかを調べます。これをdfとしましょう。
- r = tf / dfによって、各用語の関連性の重みrを計算します。
各ドキュメントはコーパスの適切なサブセットであるため、コーパスにない用語を含むドキュメントはありません。これは、ゼロ除算について心配する必要がないことを意味します。
すべての用語をrで並べ替え、上位の用語の多くを保持します。これらは、このドキュメントに最も密接に関連する上位のキーワードです。このドキュメントで一般的に使用される用語は、より重要です。ドキュメントのデータベース全体に共通する用語は、それほど重要ではありません。
これは単純な形式のtf-idfだと思います。
問題は、用語がデータベース全体で非常にまれであるが、現在のドキュメントで使用されている場合、 r値が高すぎるように見えることです。
これは、サンプル サイズが小さいため、ある種のアーティファクトと考えることができます。これを補うための最善の方法または通常の方法は何ですか?
- データベース全体で特定のしきい値よりも一般的でない用語を破棄します。もしそうなら、そのしきい値はどのように計算されますか? ハードコードされた値になるには、あまりにも多くの要因に依存しているようです。
- 逆二乗やコサインなどの数学関数で加重または平滑化できますか?
私はウェブを検索してtf-idfを読んでみましたが、私が興味を持っていないドキュメントの比較を扱っていることがわかりました。さらに、それらのほとんどは、説明と専門用語や公式の比率が低くなっています。
(実際、私のプロジェクトはこの問題の一般化です。私は実際に Stack Exchange サイトのタグを扱っているので、用語の総数は少なく、ストップワードは無関係であり、使用頻度の低いタグは使用頻度の低い単語よりも一般的かもしれません。通常のケースです。)
mysql - mysqlと同様のタグに基づいて関連タイトルを選択します
タグ
投稿
同じpost_idに値を含むpost_id=1と2を取得するにはどうすればsome
よいgood
ですか?
結果は
good title
some
タグのpost_id=4に値
がないため、dosentshow。some
要件をbeouseに表示しませんgood
php - 関連性による MYSQL 全文検索の順序
全文検索を関連性順に並べ替えようとしています。これが私のコードです。ORDER BYを削除しても機能しますが、関連性でソートされません。私はこれを試してみましたが、実際には結果が得られないため、結果がまったく見つかりません...何かアイデアはありますか?
編集*
その後、コードで
更新 これは私にとってはうまくいきました
django - 関連データをオブジェクト内の個々のアイテムに一致させることによる、Django での関連に基づくテキスト検索
手元にあるデータ org_name、name、phone、email_id、incorporation_date... モデル内のデータと比較し、関連性に基づいて結果を表示するために必要なデータを使用するにはどうすればよいですか。
例:
Apple と org_name のデータ、Steve の名前などを比較し、一致する行を DJANGO を使用して関連性の降順で表示できるはずです!
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の重要度も少し高いとします。
何か案は?
よろしくお願いします!
cakephp - 関連性による CakePHP 検索
関連性によって求人広告を検索したい求人サイトを開発しています。たとえば、役職、job_text などのフィールドがあります。ここで、ある人が Cakephp を検索するとしましょう。最初に Cakephp の結果を取得し、その後、これも一致する php を入力しますが、cakephp が明らかに最も関連性が高いとします。これどうやってするの?
sql - FREETEXTTABLE を使用してマルチ テーブルからの検索結果の関連性を処理する
ユーザーがキーワードで検索して製品リファレンスを見つけることができるアプリケーションを開発しています (SQL 2008 のフルテキスト インデックス テーブルの FREETEXTTABLE 機能を使用)。これらの参照は、信頼できる 2 つの異なるデータベースから抽出されています。ただし、ランク順に並べると、同じ結果が得られません。私は次のようなリクエストを使用します:
ここで、両方のリクエストのランキングに従って、最も関連性の高いリファレンスを見つけたいと思います。
ランキングを追加する方が良いかどうか疑問に思っています。たとえば、最初のテーブルのランキングが 115 で、2 番目のテーブルのランキングが 95 の場合、合計で 210 ランクになります。または、それらを乗算する方が良い場合 (100, 100 の参照は 10 000 の参照になります)、105,95 の参照は、加算で同じスコアであっても同じ結果ではないため、少なくなります。
この状況での結果の関連性を改善するためのアドバイスをいただければ幸いです
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 !