在PHP中查找重复的单词而不指定单词本身
发布时间:2020-12-13 21:46:11 所属栏目:PHP教程 来源:网络整理
导读:我一直在为我想做的项目考虑一些事情,我不是一个先进的用户而且我只是在学习.不知道这是否可行: 假设我们有100个html文档,其中包含许多表和文本. 问题一是:是否可以分析所有这些文本并找到重复的单词并计算它? 是的,这可能与某些功能有关,但问题在于:如
我一直在为我想做的项目考虑一些事情,我不是一个先进的用户而且我只是在学习.不知道这是否可行:
假设我们有100个html文档,其中包含许多表和文本. 问题一是:是否可以分析所有这些文本并找到重复的单词并计算它? 是的,这可能与某些功能有关,但问题在于:如果我们不知道会发现的话会怎么样?也就是说,我们必须告诉代码一个词的含义. 例如,假设一个单词是七个字符的联合,那么想法就是找到其他类似的模式并提及它.最好的方法是什么? 非常感谢你提前. 例: 搜索:下一个短语上的五个字符模式: 文字一:
文字二:
结果 Takes 1 Break 1 water 1 Ocean 2 在此先感谢您的帮助. 解决方法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); OUTPUT 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的评论更新以处理基本标点符号. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |