PHP计算文件或数组中单词出现的频率
2018-03-11 17:35:27
•
阅读
打赏
这篇文章主要介绍了PHP计算文件或数组中单词出现的频率的方法,
给出了2个统计单词频率的示例,涉及php正则、数组操作及字符串遍历等相关技巧,需要的朋友参考下
如果是小文件,我们把文件内容一次性读入到数组中,使用数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词)
$str = file_get_contents("/path/to/file.txt");
preg_match_all("//b(/w+[-]/w+)|(/w+)/b/", $str, $r);
$words = array_count_values(array_map("strtolower", $r[0]));
arsort($words);
print_r($words);
如果是大文件,一次全部读入内存就不合适了,我们采用如下方法:
$filename = "/path/to/file.txt";
$handle = fopen($filename, "r");
if ($handle === false) {
exit;
}
$results = 0;
$word = "";
while (false !== ($letter = fgetc($handle))) {
if ($letter == ' ') {
$results[$word]++;
$word = "";
} else {
$word .= $letter;
}
}
fclose($handle);
print_r($results);
对于大文件,第二种方法比较快比较安全,不会引起内存异常。
PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:
在线字数统计工具:http://tools.jb51.net/code/zishutongji
在线字符统计与编辑工具:http://tools.jb51.net/code/char_tongji
以上就是本文PHP计算文件或数组中单词出现的频率的全部内容,希望本文所述对大家PHP程序设计有所帮助。
相关推荐
深度学习 -- 损失函数
深度残差网络(Deep Residual Networks (ResNets))
深度学习 -- 激活函数
神经网络训练 -- 调整学习速率
生成对抗网络(GAN)改进与发展
生成对抗网络(GAN)优点与缺点
生成对抗网络(GAN)的训练
生成对抗网络(GAN)基本原理
生成模型与判别模型