質問

い機能を持っている二つの配列を含むトークン/言葉の二つのテキストとのコサイン類似性値の関係を示もします。

の配列$tokensA(0=>ハウス1=>バイク2=>男)は、配列$tokensB(0=>バイク1=>ハウス2=>車)を算定し、類似性がついては、全体としての浮動小数点値です。

function cosineSimilarity($tokensA, $tokensB) {
    $a = $b = $c = 0;
    $uniqueTokensA = $uniqueTokensB = array();
    $uniqueMergedTokens = array_unique(array_merge($tokensA, $tokensB));
    foreach ($tokensA as $token) $uniqueTokensA[$token] = 0;
    foreach ($tokensB as $token) $uniqueTokensB[$token] = 0;
    foreach ($uniqueMergedTokens as $token) {
        $x = isset($uniqueTokensA[$token]) ? 1 : 0;
        $y = isset($uniqueTokensB[$token]) ? 1 : 0;
        $a += $x * $y;
        $b += $x;
        $c += $y;
    }
    return $b * $c != 0 ? $a / sqrt($b * $c) : 0;
}

したい場合は比較75テキストが互い5,625単に比較してすべてのテキストを比較します。

利用は可能でMySQLの空間の列の数を削減する比較?

いつ私の機能やつを比較します。もの数を減らしていく。

MySQLの空間列

  • を作成す空間でカラム:このように作成されたテーブルをabc(clmnName型)
  • 可能種類を掲載 こちらの
  • こちらの はいを選択し、データの後に[例MultiPointFromText()またはAsText()]
  • 挿入する値をこのように:挿入clmnName値GeomFromText(点(1 1)'))

で使い分けが面倒くさくないことも問題なのか。

PS:を探していを削減する方法についての数との比較アルゴリズム この質問.Vinko Vrsalovic言う他の問題のための空間が特徴です。

役に立ちましたか?

解決

ながら R-Trees 一般のできる指標データを任意の数の寸法 MySQL 空間能力のみに限らせていただき Geometry 種類(2 寸法)です。

場ベクトル 2-元 きを正常化し、その

  • 分割の円の倍数の角度に合の違い
  • MBR ベクターの指定されたコサインのセンターの各部門
  • すべてのベクトルの MBR
  • の微細フィルタリングのための正確な差です。

この場合、しかし、少し高めではないでしょうかるだけでprecaculateの角度値と指す平野 B-Tree index.

他のヒント

実際には、あなただけの 75 * 2分の74 = 2775 の比較を持っています。あなたは74の他の人とすべての単語を比較していますが、WORD2でWORD1を比較する必要があり、再び単語1とWORD2はありません。だから、比較のを半分以下を与えます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top