高速テキスト比較(特徴ベクトル)と空間MySQLの特徴
-
12-09-2019 - |
質問
い機能を持っている二つの配列を含むトークン/言葉の二つのテキストとのコサイン類似性値の関係を示もします。
の配列$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はありません。だから、比較のを半分以下を与えます。
所属していません StackOverflow