【发布时间】:2013-05-14 17:04:33
【问题描述】:
我有一个问题,我很不确定如何解决。
给出的是这样格式的数组:
$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")
);
现在我想计算这些数组的某种相似度值。这些数组是根据含义对术语进行聚类的结果。
我想知道的是,两个不同的用户($array01 = user1, $array02 = user2) 对这些术语的相似程度如何。 0,1,2 是那些簇(它们不必是相同的长度)
编辑: 所以我试着进一步描述一下: 每个数组都是用户根据其含义对术语(hallo、welt、du、ich...)进行聚类的结果。所以每个子数组都是用户定义的一个簇。现在的问题是用户不受限制在他放置术语或整个集群的位置,所以我不能只比较 $array01[0] 和 $array02[0]。 我想我需要将子数组与最常见的术语进行比较。但是,每个用户都必须对所有术语进行聚类。
例如:
$array01[0] 和 $array02[2]。它们有两个共同点:“du”和“ich” -> +1
其他术语没有明确的聚类,所以我猜这个例子会产生 1,因为聚类不是很相似。
【问题讨论】:
-
那么来自 user1 的任何单词,都可以在 user2 的任何其他子数组中吗?
-
您能否更具体地说明您想要比较的内容以及比较的含义?例如,您是否只想比较
$array01和$array02之间嵌套数组的所有值,看看有多少相互值?您是否只想比较 0 与 0、1 与 1 等? -
您能否发布您给出的示例的预期结果?
-
我试图更好地描述这个问题...寻找我的编辑。
-
那么你想要一个关于 subArary 有多少项重叠的 Matrix 结果?