2011-01-12 11 views
5

可能性の重複:
php: sort and count instances of words in a given stringテキスト中の単語頻度をカウントするか?

私は、入力として文字列を受け取り、PHPの関数を記述しているよ、言葉にそれを分割して、周波数によってソートされた単語の配列を返します。各単語の出現の

これを達成する最もアルゴリズム的に効率的な方法は何ですか?

+0

を含む少なくとも2つの他の質問の重複しているので、CWをマーク。いずれにせよ、そのようなパーサがそこにたくさんあります。最も効率的なプログラミング方法は、自分で書くよりも、再利用することです。ちょうどGoogleの単語頻度カウンタphp ' – dnagirl

+0

それはあなたが'単語 'でも何を意味するかによって異なります。 「s」は、それが所有マーカーであると言いますか?それが「is」の収縮ではどうでしょうか?他の収縮はどうですか?空白やハイフンで分割することに興味があるのであれば(あなたの電話のT9のように)、ゴードンのようなビルドされたものを使うのが一番良いでしょう。同じトピックのStackOverflowからの前の2つの質問: – Crisfole

+0

役に立つはずです。 [PHP:ソートし、指定された文字列内の単語のインスタンスをカウント] [1] [単語がPHPでのテキストで発生頻度をカウント] [2] [ 1]:http://stackoverflow.com/questions/2123236/count-how-often-the-word-occurs-in-the-text-in-php [2]:http://stackoverflow.com/質問/ 2984786/php-sort-and-count-instances-of-a-given-string – Paul

答えて

22

最善の策は、これらは以下のとおりです。

$words = 'A string with certain words occuring more often than other words.'; 
print_r(array_count_values(str_word_count($words, 1))); 

出力

Array 
(
    [A] => 1 
    [string] => 1 
    [with] => 1 
    [certain] => 1 
    [words] => 2 
    [occuring] => 1 
    [more] => 1 
    [often] => 1 
    [than] => 1 
    [other] => 1 
) 

質問は、私はそれがテキストのサイズに依存するであろう期待して同じ答え

関連する問題