0

私の構造:各カテゴリーにはテキストがあります。これらのテキストは、それ自体のエントリです。したがって、テーブル'category'とテーブル'texts'です。すべてのカテゴリに約90のテキストがあり、各テキストは約300文字です。

私がやりたいのは、カテゴリのメタタグ(キーワード)を作成することです。>関連するすべての「テキスト」を取得し、すべての単語をランク付けして、上位10語を取得する方法。これらのトップ10は、カテゴリのキーワードメタタグになります。

さて..トリック>それらのトップ10の単語を取得する方法。現在>各テキスト(フルテキスト)は単語ごとの配列に分割されます。この配列(php)はかなり長くなります。その後、各単語の頻度を取得し、頻度で再度ランク付けします。出来上がりトップ10ワード。

この手順はテストしていませんが、少し時間がかかると思います。キャッシュされるので、週に1回程度実行するだけで済みますが、それでもタイムアウトは発生しません。

ヒントはありますか?助けていただければ幸いです。

ありがとう、

モーリス

4

1 に答える 1

0

わかりました、上記のコメントで私の平和を言ったので、アルゴリズムに取り掛かります。

これを行うにはいくつかの方法があります。ここでは、PHP を多用するアプローチに焦点を当て、他の SO 担当者に他の方法を実行してもらいます。

すでにデータベースにクエリを実行し、すべての単語をスペース区切りのリストとして変数 $texts に格納していると仮定します。

// Sample data in $texts
$texts      = "orange orange apple apple apple banana";
$withCounts = array_count_values( explode( ' ', $texts ) );

asort( $withCounts );
$topTen = array_keys( array_reverse( array_slice( $withCounts, -10 ) ) );

print_r( $topTen );
于 2009-06-25T16:46:26.590 に答える