一:如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词):

$str = file_get_contents("/path/to/file.txt"); //get string from file

preg_match_all("/\b(\w+[-]\w+)|(\w+)\b/",$str,$r); //place words into array $r - this includes hyphenated words

$words = array_count_values(array_map("strtolower",$r[0])); //create new array - with case-insensitive count

arsort($words); //order from high to low

print_r($words)

二:如果是大文件,读入内存就不合适了,可以采用如下方法:

$filename = "/path/to/file.txt";

$handle = fopen($filename,"r");

if ($handle === false) {

exit;

}

$word = "";

while (false !== ($letter = fgetc($handle))) {

if ($letter == ' ') {

$results[$word]++;

$word = "";

}

else {

$word .= $letter;

}

}

fclose($handle);

print_r($results);

Linux命令经典面试题:统计文件中出现次数最多的前10个单词

使用linux命令或者shell实现:文件words存放英文单词,格式为每行一个英文单词(单词可以重复),统计这个文件中出现次数最多的前10个单词。

cat words.txt | sort | uniq -c | sort -k1,1nr | head -10

主要考察对sort、uniq命令的使用,相关解释如下,命令及参数的详细说明请自行通过man查看,简单介绍下以上指令各部分的功能:

sort:  对单词进行排序

uniq -c:  显示唯一的行,并在每行行首加上本行在文件中出现的次数

sort -k1,1nr:  按照第一个字段,数值排序,且为逆序

head -10:  取前10行数据

(责任编辑:最模板)

php单词出现频率,PHP计算文件或数组中单词出现频率相关推荐

  1. php单词出现频率,PHP编程计算文件或数组中单词出现频率的方法

    本文实例讲述了PHP编程计算文件或数组中单词出现频率的方法.分享给大家供大家参考,具体如下: 如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词 ...

  2. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)

    python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value) 目 ...

  3. C语言:编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递

    /*编写一个函数,计算二维数组中的最大元素,数组以指针的方式传递*/ #include<stdio.h> #define N 4 #define M 3 int findmax(int ( ...

  4. 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号。 例如输入“I am a student”,则通过控制台输出“student a

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开,为简单起见,不带标点符号. 例如输入"I am a student",则通过控制台输出& ...

  5. python编程单词排序_Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  6. rc振荡器振荡频率计算_微控制器中的振荡器频率

    rc振荡器振荡频率计算 微控制器中的振荡器频率 (Oscillator Frequency in Microcontrollers) The digital computer systems must ...

  7. c语言编写计算单词长度,编写一个程序,打印输入中单词长度的直方图

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #define inside 1 #define outside 0 /*编写一个程序,统计并打印输入单词不同长度的个数,并打印输入中单 ...

  8. Linux数组计算平均值,从数组中读取并计算平均值

    我正在尝试编写从数组中读取一行字符的代码,将这些字符分配给一个整数,然后对该行的所有整数进行平均,然后对数组中的每一行执行此操作.以下是我迄今为止:从数组中读取并计算平均值 Scanner in = ...

  9. 简单的MapReduce项目,计算文件中单词出现的次数

    简单的MapReduce项目,计算文件中单词出现的次数 计算文件中单词出现的次数,试题如下图 1.创建读取单词的文件tast,内容如下: hadoop core map reduce hiv hba ...

最新文章

  1. 路由器:访问控制列表
  2. ASP.Net ViewState的实现
  3. 【JAVA】使用IntelliJ IDEA创建Java控制台工程
  4. 框架:Mybatis开发规范及输入输出映射配置时注意事件
  5. 练习利用LSTM实现手写数字分类任务
  6. oracle里查询表的语句,Oracle查询用户所有表的语句
  7. 使用 Python 实现多进程
  8. Laravel5.4 导出Excel表格
  9. JAVA内存模型和GC原理
  10. 区块链软件公司:食品溯源+区块链
  11. pitch yaw roll是什么
  12. Air Keyboard
  13. Panel的基本用法
  14. Python爬虫进行web 数据可视化挖掘总结和分析
  15. centos7安装或升级Google chrome、安装Firefox浏览器详细过程及设置桌面快捷方式
  16. 谁将泡泡玛特推上千亿市值神坛?
  17. 关于小米文件管理器的介绍及源码下载
  18. BUU刷题记录——5
  19. linux下Oracle常用命令
  20. 【OpenCV入门教程之十七】OpenCV重映射 SURF特征点检测合辑

热门文章

  1. 写 Python 时的 5 个坏习惯
  2. python之super
  3. socket通信流程图
  4. html div中的id和class
  5. python numba jit加速使用方法
  6. indexes和indices的区别(下标)
  7. opencv python destroyAllWindows() destroyWindow() 销毁窗口
  8. 第十届蓝桥杯大赛软件赛省赛 C/C++ 大学B组
  9. html方框中能放置图片么,html中的img标签你不知道的那些细节!
  10. 如何用 Redis 实现延迟队列?