これを解決する方法がよくわからないという問題があります。
次のような形式の配列が与えられます。
$array01 = array(
0 => array("hallo", "welt", "du", "ich"),
1 => array("mag", "dich"),
2 => array("nicht", "haha", "huhu")
);
$array02 = array(
0 => array("haha", "welt", "dich"),
1 => array("hallo", "mag", "nicht"),
2 => array("du", "ich", "huhu")
);
ここで、これらの配列のある種の類似値を計算したいと思います。これらの配列は、意味に従って用語をクラスタリングした結果です。
私が知りたいのは、これらの用語が 2 人の異なるユーザーによってどの程度類似しているかということです($array01 = user1, $array02 = user2)
。0,1,2 はそれらのクラスターです (同じ長さである必要はありません)
編集:だから私はもう少し説明しようとします:すべての配列は、ユーザーが意味に従って用語(ハロー、ウェルト、デュ、イク...)をクラスタリングした結果です。したがって、すべてのサブアレイは、ユーザーによって定義された 1 つのクラスターです。問題は、ユーザーが用語またはクラスター全体を配置する場所に制限されていないため、$array01[0] と $array02[0] を単純に比較できないことです。サブアレイを最も一般的な用語と比較する必要があると思います。ただし、すべてのユーザーはすべての用語をクラスター化する必要があります。
たとえば、次のようになります。
$array01[0] と $array02[2]。「du」と「ich」の 2 つの用語が共通している -> +1
他の用語には明確なクラスタリングがないため、クラスタリングがあまり似ていないため、この例では 1 が返されると思います。