4

私はやりたいプロジェクトのために何かを考えていました。私は上級ユーザーではなく、ただ学んでいます。これが可能かどうかわからない:

多くの表とその中にテキストを含む 100 個の html ドキュメントがあるとします。

質問 1 は、このすべてのテキストを分析し、繰り返されている単語を見つけて数えることは可能ですか?.

はい、いくつかの関数を使用することは可能ですが、ここに問題があります。検索される単語を知らなかったらどうなるでしょうか? つまり、単語の意味をコードに伝える必要があります。

たとえば、1 つの単語が 7 つの文字の結合であると仮定すると、アイデアは、他の同様のパターンを見つけて言及することです。これを行う最良の方法は何ですか?

事前にどうもありがとうございました。

例:

検索: 次のフレーズの 5 つの文字パターン:

テキスト 1:

「壊れないためには大海が必要だ」

テキスト 2:

「海は塩水です」

結果

Takes 1 
Break 1
water 1
Ocean 2

よろしくお願いします。

4

2 に答える 2

8
function get_word_counts($phrases) {
   $counts = array();
    foreach ($phrases as $phrase) {
        $words = explode(' ', $phrase);
        foreach ($words as $word) {
          $word = preg_replace("#[^a-zA-Z\-]#", "", $word);
            $counts[$word] += 1;
        }
    }
    return $counts;
}

$phrases = array("It takes an ocean of water not to break!", "An ocean is a body of saline water, or so I am told.");

$counts = get_word_counts($phrases);
arsort($counts);
print_r($counts);

出力

Array
(
    [of] => 2
    [ocean] => 2
    [water] => 2
    [or] => 1
    [saline] => 1
    [body] => 1
    [so] => 1
    [I] => 1
    [told] => 1
    [a] => 1
    [am] => 1
    [An] => 1
    [an] => 1
    [takes] => 1
    [not] => 1
    [to] => 1
    [It] => 1
    [break] => 1
    [is] => 1
)

編集 @Jack
のコメントに基づいて、基本的な句読点を処理するように更新されました。

于 2012-12-26T04:19:41.407 に答える