tb_content
(左)とtb_word
(右):
===================================== ================================
|id|sentence |sentence_id|content_id| |id|word|sentence_id|content_id|
===================================== ================================
| 1|sentence1| 0 | 1 | | 1| a | 0 | 1 |
| 2|sentence2| 1 | 1 | | 2| b | 0 | 1 |
| 3|sentence5| 0 | 2 | | 3| c | 1 | 1 |
| 4|sentence6| 1 | 2 | | 4| a | 1 | 1 |
| 5|sentence7| 2 | 2 | | 5| e | 1 | 1 |
===================================== | 6| f | 0 | 2 |
| 7| g | 1 | 2 |
| 8| h | 1 | 2 |
| 9| i | 1 | 2 |
|10| f | 2 | 2 |
|11| h | 2 | 2 |
|12| f | 2 | 2 |
================================
すべての文が、すべての他の文が所有する単語で構成されているかどうかを確認する必要がありますcontent_id
。
例えば :
content_id
=1
それらがsentence1
とであるかどうかを確認しsentence2
ます。からtb_word
、それを見ることができ、同じ単語sentence1
で構成されています。2文の数が、の場合、結果になります。したがって、結果を出力する場合は、次のようにする必要があります。
ここで、means =および=sentence2
a
a
>=2
a
00Array ( [0] => a [1] => b) 01Array ( [3] => a ) 10Array ( [3] => a )11Array ( [0] => c [1] => a [2] => e)
00
sentence_id
0
sentence_id
0
まず、すべての人が所有しているもの functionTotal
の数を数えます:sentence
content_id
$total = array();
$sql = mysql_query('select content_id, count(*) as RowAmount
from tb_content Group By contente_id') or die(mysql_error());
while ($row = mysql_fetch_array($sql)) {
$total[] = $row['RowAmount'];
}
return $total;
その関数から私はの値を取得し、そこから2のすべての可能性の間$total
のいくつかの単語(から)の類似性をチェックする必要がありますtb_word
sentence
foreach ($total as $content_id => $totals){
for ($x=0; $x <= ($totals-1); $x++) {
for ($y=0; $y <= ($totals-1); $y++) {
$shared = getShared($x, $y);
}
}
の機能getShared
は:
function getShared ($x, $y){
$token = array();
$shared = array();
$i = 0;
if ($x == $y) {
$query = mysql_query("SELECT word FROM `tb_word`
WHERE sentence_id ='$x' ");
while ($row = mysql_fetch_array($query)) {
$shared[$i] = $row['word'];
$i++;
}
} else {
$query = mysql_query("SELECT word, count(word) as jml
FROM `tb_word` WHERE sentence_id ='$x'
OR sentence_id ='$y'
GROUP BY word ");
while ($row = mysql_fetch_array($query)) {
$jml = $row['jml'];
$token[$i] = $row['word'];
if ($jml >= 2) {
$shared[$i] = $token[$i];
}
$i++;
}
しかし、私が得る結果はまだ間違っています。結果はまだ異なる間で混合されますcontent_id
。結果もgroupbyである必要がありますcontent_id
。私の悪い英語と私の悪い説明でごめんなさい。cmiiw、助けてください..ありがとう:)