2014-04-04 52 views
0

找到一个好问题标题对我的问题很困难,所以如果你有更好的问题,随时编辑!检查单词是否多次提及

目前我正在使用file_get_contents检索一个页面,然后我会去掉所有的javascript,将所有的html设置为小写,并且将所有的html标签都去掉。

此后,我正在做一个阵列,每一个字,就像这样:

preg_match_all("/((?:\w'|\w|-)+)/", $contents, $words);

$frequency = array(); 

    foreach($words[0] as $word) { 

     unset($words[$word]); 

     // This is the filter out the 'common words' 
     if(in_array($word, $common_words)) continue; 

     if(isset($frequency[$word])) { 
      $frequency[$word] += 1; 
     } else { 
      $frequency[$word] = 1; 
     } 
    } 

但是,这适用于单个的词,如果我检索与该文本在HTML页面它:

'这是一个示例文本。这是一个HTML文本可以是什么样子”

这将导致以下使用我的代码:

this = 2 is = 2 a = 2 sample = 1 text = 2 what = 1 html = 1 can = 1 look = 1 like = 1

但现在我想的东西,看起来很相似,但2个字。我将如何实现这一目标?它应该是这个样子用同一句话:

this is = 2

我试着给尽可能多的例子,因为我可以使它尽可能明确。

如果您需要任何澄清,请不要问!

+0

当你打算组建使用多个字键,我想有必要一些字典(不是字面的一个,只是一个数组,文件或者其他东西)来匹配。你是否有一个? – Sayed

+0

或者,您实际上可以使用预执行(在单次运行中使用先前的查询)结果来查找匹配项。这可以作为你的字典,因此,你可能能够生成像'this is = 2'这样的密钥。 – Sayed

+0

这个函数可能有助于[str_word_count](http://www.php.net/manual/en/function.str -word-count.php) – Class

回答