Return to Snippet

Revision: 32419
at September 24, 2010 01:52 by bhu1st


Initial Code
<?php

$filename = "largefile.txt";

/* get content of $filename in $content */
$content = strtolower(file_get_contents($filename));

/* split $content into array of substrings of $content i.e wordwise */
$wordArray = preg_split('/[^a-z]/', $content, -1, PREG_SPLIT_NO_EMPTY);

/* "stop words", filter them */
$filteredArray = array_filter($wordArray, function($x){
       return 		!preg_match("/^(.|a|an|and|the|this|at|in|or|of|is|for|to)$/",$x);
     });
	 
/* get associative array of values from $filteredArray as keys and their frequency count as value */
$wordFrequencyArray = array_count_values($filteredArray);

/* Sort array from higher to lower, keeping keys */
arsort($wordFrequencyArray);

/* grab Top 10, huh sorted? */
$top10words = array_slice($wordFrequencyArray,0,10);

/* display them */
foreach ($top10words as $topWord => $frequency)
    echo "$topWord --  $frequency<br/>";

?>

Initial URL
http://stackoverflow.com/questions/3169051/code-golf-word-frequency-chart

Initial Description
Credit for this code goes to the author, refer the discussion in stackoverflow.

Initial Title
Word Frequency Count

Initial Tags


Initial Language
PHP