Linux centos7 高频词统计

如何统计文章中高频词?是我们经常遇到的问题,也是多场合考察个人知识整合能力的重要手段。招聘经典问题:linux中命令行统计文件中前10个高频词。

在讨论此问题中,主要应用到的知识点有:排序、去重、单词查询、grep、sed和awk使用。

本文分四种情况,逐一分析讨论。

一、单列多行单词

这种情况比较简单,不需要作分隔处理,直接进行单词排序与去重,再排序。

1.文本素材

cat  test1.txt

hello

world

you

hello

are

world

hello

2.命令

cat test1.txt |sort |uniq -c |sort -r

通过查看文件,所有单词都显示出来了。

sort  排序后,相同的单词排在一起(这是去重的必要条件)。

uniq –c 统计单词重复的次数

sort -r 指定顺序为从大到小

3.效果

二、第一列单词

这种情况比较简单,不需要作分隔处理,直接进行单词排序与去重,再排序。

1.文本素材

为了简单起见,假设文本素材中只包括小写字母和 ' '。

cat  test2.txt

hello a1234

world weripa

you  are working

hello alice

are   one

world two

hello six

2.命令

相较于第一类情况,统计难度加大。我们要解决的问题是如何获取第一列内容。获得第一列后就可以与前一类情况同样处理了。

a.cut

cat test2.txt |cut -d' ' -f1 |sort|uniq -c |sort –r

-f1 切割后仅保留第1列

b.grep

grep -Eo '^[[:alpha:]]+' test2.txt|sort|uniq -c|sort -r

grep -E 执行扩展正则,-o仅显示匹配单词

^[[:alpha:]]+  开头的第一个英语单词

c.awk

awk '{print $1}' test2.txt |sort|uniq-c |sort -r

'{print $1}' 仅输出文件第1列

3.效果

cut命令执行效果

    grep命令执行效果

awk命令执行效果

三、单词与空格

这种情况仅需要作分隔处理,把单个或多个空格替换为换行符。然后进行单词排序与去重,再排序。

1.文本素材

为了简单起见,假设文本素材中每个单词只由小写字母组成,单词间由一个或多个空格字符分隔。

cat  test3.txt

my name is shantong

my qq num is 845537614

my ip is 192.168.1.171

123 222 345

12345 789

my email is 845537614

my telephone num is 13523072436

servername is chaoxing

company site is hnqz

mmmmmmmm

192.168.89.115

2.命令

相较于前两类情况,此类问题难度也不大。我们仅需要把空格替换为换行符。所有单词变为一列内容后就可以与前两类情况同样处理。

a.tr

cat test3.txt| tr -s ' ' '\n'|sort|uniq -c |sort -r

tr -s ' ' '\n' #空格换行并清除空行

b.sed

sed  's/ /\n/g' test3.txt|sort|uniq -c |sort -r

sed  's/ /\n/g'

s表示替换,\n表示换行符,s/ /\n/将空格替换为换行符,最后的g标志表示全部替换

整理文本内容,使得每个单词占一行:

sed '/^$/d' #删除所有空行

3.效果

tr命令执行效果

sed命令执行效果

     删除空行后效果

四、任意文本

这种情况是最普通的。不作任何设定,对任意一个文件进行高频词统计。

主要思路就是:把文本进行分隔,仅保留单词。根据文本的常用格式,需要用不同的分隔符。

处理单词时,先排序,再去重,最后仍然要排序。

此类情况,需要把前面的命令综合起来,完成高频词统计

1.文本素材

cat test4.txt

123 222 345

my name is shantong

12345 789

my qq number is 36142959

my email is 36142959@qq.com

my ip is 192.168.1.141

my name is zhange

My telephone num is 13523072436

My qq number is 845537614

Server_name is Softeem

Company Site is http://www.pili-zz.net

MMMM1234

192.168.89.115

2.命令

相较于前三类情况,此类问题难度很大。我们不仅需要分隔单词,还需要把单词排序、去重和再排序。考虑到文本中单词较多,可以仅获取前5个单词。

a.sed awk

sed 's/[,.:;/!_@?]/ /g' test4.txt |awk '{for(i=1;i<=NF;i++)array[$i]++;}END{for(i in array) print i,array[i]}' |sort -nr -k 2 |head -5

b.awk

awk 'BEGIN{RS="[,.:;/!?]"} {for(i=1;i<=NF;i++)array[$i]++;}END{for(i in array) print i,array[i]}' test4.txt |sort -nr -k 2 |head -5

我们经常会说,awk是基于行列操作文本的,但如何定义“行”呢?这就是RS的作用。
  默认情况下,RS的值是\n。我们可以改变RS变量的值,为不同的分隔符。本案例中,RS的值是多个字符。

3.效果

sed awk

awk

小结

通过统计文本中的高频单词,综合应用命令cat cut tr sort uniq等,特别是linux三剑客grep、sed和awk。在实际应用中,情况会更复杂,可能需要编程处理。但掌握基本命令的各种应用十分重要,值得学习与巩固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549753.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Matplotlib学习笔记

Matplotlib数据可视化库 jupyter notebook优势 画图优势&#xff0c;画图与数据展示同时进行。数据展示优势&#xff0c;不需要二次运行&#xff0c;结果数据会保留。 Matplotlib画图工具 专用于开发2D图表以渐进、交互式方式实现数据可视化 常规绘图方法 子图与标注 想要…

python网易云_python下载网易云音乐

1.安装python3 2.安装pip 3.安装requests模块和urllib模块 通过pip 安装 4.看下面的视频操作https://www.zhihu.com/video/1120981899643940864 代码 import requests import urllib def cbk(a,b,c): 回调函数 a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 …

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)/SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)

SSL/TLS协议信息泄露漏洞(CVE-2016-2183)/SSL/TLS RC4 信息泄露漏洞(CVE-2013-2566)/SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808&#xff09; 这几个漏洞都指向ssl&#xff0c;服务器为win2012 r2 standard 一、漏洞说明 Windows server 2012R2远程桌面服务SSL加密默…

惠普打印机USB安装成功,但断开USB重新连接时显示脱机无法打印问题(上一版本的驱动程序还在内存中,因此无法加载驱动程序)

在惠普打印机驱动官网上下载好了驱动&#xff0c;通过USB安装成功&#xff0c;也能成功打印测试页。断开了USB后&#xff0c;再次连接也能显示打印机名称&#xff0c;但打印时总是出错&#xff0c;并且显示脱机状态。来来回回把驱动卸载重装了几回也没用。 好吧&#xff0c;百…

【第21章】网络设备安全(软考:信息安全工程师) 学习笔记

第21章 网络设备安全 21.1 网络设备安全概况 21.1.1 交换机安全威胁 交换机是构成网络的基础设备&#xff0c;主要的功能是负责网络通信数据包的交换传输 。 目前&#xff0c;工业界按照交换机的功能变化&#xff0c;将交换机分为第 一代交换机、第 二代交换机、第 三代交换机…

python 爬取网易云音乐歌单

Python 爬取网易云音乐 来自哔哩哔哩学习视频 爬取网易云音乐视频总结&#xff0c;也算是为自己记个笔记吧 所需库 requests 点击查看介绍 lxml 点击查看介绍 确定url地址 以谷歌浏览器 进入所需歌单&#xff0c;随便点首歌&#xff0c;右键&#xff0c;检查 找到network—XH…

生态经济学领域里的R语言机器学(数据的收集与清洗、综合建模评价、数据的分析与可视化、数据的空间效应、因果推断等)

近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、数据科学和计算机科学的机器学习是人工智能的主流方向之一&#xff0c;目前也在飞快的融入计量经济学研究。表面上机器学习通常使用大数据&#xf…

FPGA学习——矩阵键盘驱动及数码管显示键值

矩阵键盘原理 在做矩阵键盘的驱动时&#xff0c;写了好多次都没有成功&#xff0c;出现了各种奇奇怪怪的错误。最后在网上看了无数篇的博客和讲解&#xff0c;终于搞懂了原理。 矩阵键盘的电路原理图如图所示&#xff08;在网上看到别人的就随手down了下来&#xff09;&#x…

Linux-写USB键盘驱动(详解)

1.首先我们通过上节的代码中修改,来打印下键盘驱动的数据到底是怎样的 先来回忆下,我们之前写的鼠标驱动的id_table是这样: 所以我们要修改id_table,使这个驱动为键盘的驱动,如下图所示: 然后修改中断函数,通过printk()打印数据: 我们先按下按键A为例,打印出0x04,如下图: 我们…

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v7.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架&#xff0c;超轻量级、高度提炼&#xff0c;一套API优雅支持 UDP 、TCP 、WebSocket 三种协议&#xff0c;支持 iOS、Android、H5、标准Java、小程序、Uniapp&#xff0c;服务端基于Netty编写。 工程…

基于swing的教务管理系统java jsp学生教师信息mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的教务管理系统 系统有3权限&#xff1a;管…

推荐百度的八个不常用产品

大家最常用的百度产品就是搜索&#xff08;尤其是mp3搜索&#xff09;、贴吧&#xff08;我倒还没有用过&#xff09;、空间&#xff08;功能简单&#xff0c;但确实非常稳定&#xff09;。 其实百度还有一些不为人常用的产品&#xff0c;在这里。 如下图&#xff1a; 其中文档…

运行android项目时出现Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE错误!

[2011-12-14 11:10:00 - imusic] Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE [2011-12-14 11:10:00 - imusic] Please check logcat output for more details. [2011-12-14 11:10:02 - imusic] Launch canceled! 1: 我们再调试一个稍微比较大的应用&#xff0c;…

续一:《你的医书是假的!批评付施威的《DDD诊所——聚合过大综合症》

DDD领域驱动设计批评文集 “软件方法建模师”不再考查基础题 《软件方法》各章合集 我写了一篇文章&#xff0c;批评付施威的《DDD诊所——聚合过大综合症》&#xff08;以下简称《DDD诊所》&#xff09;&#xff0c;文章是《你的医书是假的&#xff01;批评付施威的《DDD诊…

qq windows版客户端0day复现——远程代码执行(七夕小礼物)

##ps&#xff1a;本文章仅用来分享&#xff0c;请勿将文章内的相关技术用于非法目的&#xff0c;请勿将文章内的相关技术用于非法目的&#xff0c;请勿将文章内的相关技术用于非法目的&#xff01;&#xff01;如有非法行为与本文章作者无任何关系。一切行为以遵守《中华人民共…

停车场收费软件兼容电脑操作系统问题如何搞定?

随着网络快速发展各式各样软件应运而生&#xff0c;同时操作系统对软件的要求也越来越高&#xff0c;兼容性问题越发重要。安装停车场收费软件&#xff0c;为了保障高效稳定的运行&#xff0c;前提也要兼容电脑的操作系统。 为此&#xff0c;易泊车牌识别停车场收费软件&#…

专访捷顺科技:“停车老司机”的智慧生态构想

本公众号已经改版&#xff0c;推出了线上线下课程&#xff0c;并且推出免费2个月广告服务业界优质产品。 实现智慧停车的过程中&#xff0c;互联网驱动下的模式创新是必要的&#xff0c;但有一个前提&#xff0c;即行业本身的技术创新。近日&#xff0c;捷顺科技总经理赵勇在接…

资本加速圈地,智慧停车战火越烧越旺

配图来自Canva 半年前&#xff0c;AIPARK爱泊车宣布完成B1和B2轮融资&#xff0c;投资方包括中美绿色一期基金、蔚来资本、中金资本、中关村启航基金等。 6月3日&#xff0c;城市级智慧云停车平台享停车宣布已完成数千万元融资&#xff0c;并获得了上亿元配套建设资金&#x…

SSM停车场管理系统-计算机毕设 附源码97557

SSM停车场管理系统 摘 要 21世纪时信息化的时代&#xff0c;几乎任何一个行业都离不开计算机&#xff0c;将计算机运用于停车场管理也是十分常见的。过去使用手工的管理方式对停车场进行管理&#xff0c;造成了管理繁琐、难以维护等问题&#xff0c;如今使用计算机对停车场的各…

django 停车场管理系统 计算机毕设源码19517

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…