壊れたリンクのコメントに基づいて私自身の質問に答えようとします(これをありがとう):
ドキュメントのデータベースから1〜3語のフレーズを抽出しました。これらの余分なフレーズの中には、次のフレーズがあります。
フレーズごとに、すべての特殊文字と空白スペースを取り除き、文字列を小文字にします。
$phrase='半血の王子様'; $ phrase = preg_replace('/ [^ az] / i'、''、$ phrase); $ phrase = strtolower($ phrase); //結果は「halfbloodprince」です
これを行うと、3つのフレーズすべて(上記を参照)に共通のスペルが1つあります。
- ハーフブラッドプリンス=>ハーフブラッドプリンス
- 半血の王子=>半血の王子
- ハーフブラッドプリンス=>ハーフブラッドプリンス
したがって、「halfbloodprince」が親フレーズです。通常のフレーズと親フレーズの両方をデータベースに挿入します。
Twitterのような「トレンドトピック管理者」を表示するには、次のようにします。
// first select the top 10 parent phrases
$sql1 = "SELECT parentPhrase, COUNT(*) as cnt FROM phrases GROUP BY parentPhrase ORDER BY cnt DESC LIMIT 0, 10";
$sql2 = mysql_query($sql1);
while ($sql3 = mysql_fetch_assoc($sql2)) {
$parentPhrase = $sql3['parentPhrase'];
$childPhrases = array(); // set up an array for the child phrases
$fifthPart = round($sql3['cnt']*0.2);
// now select all child phrases which make 20% of the parent phrase or more
$sql4 = "SELECT phrase FROM phrases WHERE parentPhrase = '".$sql3['parentPhrase']."' GROUP BY phrase HAVING COUNT(*) >= ".$fifthPart;
$sql5 = mysql_query($sql4);
while ($sql6 = mysql_fetch_assoc($sql5)) {
$childPhrases[] = $sql3['phrase'];
}
// now you have the parent phrase which is on the left side of the arrow in $parentPhrase
// and all child phrases which are on the right side of the arrow in $childPhrases
}
これはあなたが考えたものですか、壊れたリンクですか?これは機能しますか?