文档章节

统计出现频率最高的十个单词的程序性能分析

 大脸猫cat
发布于 2014/03/17 22:48
字数 747
阅读 636
收藏 2
点赞 1
评论 2

李竹君 2011211964 0401115班

    1.使用C语言。

     2.整体思路:首先将一篇文章分词,分词的方法是将逐字符的判断一篇文章,如果该字符的ASCII码在“A~Z”或“a~z”之间(区分大小写),则该字符属于一个单词的一部分,如果该字符不在“A~Z”或者“a~z”,则该字符为两个单词之间的分隔符(多个标点或者空格相连的情况下在3.讲)。将分隔下来的单词和该单词的长度存入结构体,将所有结构体构成链表,将表头的单词与除表头外的所有单词进行比较,如果出现一个单词和原节点单词相等,则将该节点删掉,以此类推,直到最后一个节点,记录相等节点数目,并存入该节点结构体,然后再将表头的下一个节点单词与该节点的后续节点比较,以此类推,直到所有节点都比较完毕。再对所有链表节点内的相等节点数目进行升序排序,取前十位,则得到结果。

     3.具体实现细节:1)多个标点或空格:在形成链表的过程中,若出现多个标点或空格,则判断该节点内的单词是否为'\0',若为'\0',则原文中此处出现多个标点或空格相连。将该节点删去即可。2) 将节点的单词长度记录下来是为了在比较过程中提高效率,即单词长度不等则单词肯定不等。

     4.采用“选择排序”。

     5.原文档303kb.

      6.运行结果:

7.性能分析:



可以看到,总共程序运行1.6s,在单独工作的函数中,除主函数外,pre_sort()是占用时间百分比最多的,在pre_sort中,主要实现的是对于单词链表的处理,即使链表节点的单词不重复,并记录该单词出现的次数,其次是sort(),该函数主要是节点频数进行排序,如果要优化过程的话,可以从对排序进行优化,当单词数目较多时,改用快速排序,可以降低运行时间,优化代码。

8.心得:写完程序之后,我感觉技术性的工作就好比变魔术,其实原理是非常简单的,甚至可以说简单的可笑,但是当你就是做出这么一个简单的东西出来之后,一些外行们有时候会用崇拜的眼光看着你,觉得你很厉害,很高深莫测。但是制作的过程他们却不知道,也许知道之后他们只是会哑然失笑,原来这个东西的制作过程是如此的简单。这个可以说就是技术的魅力了。

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 2
码字总数 1360
作品 0
南岸
加载中

评论(2)

大脸猫cat

引用来自“genliu777”的评论

你这个分析报告的曲线是什么作出来的?

额……这个是我们的作业……忘了啥时候做的了……
g
genliu777
你这个分析报告的曲线是什么作出来的?
单词频率统计程序性能分析

/** 编程语言:java 文档大小:351KB / 问题解决步骤如下,首先我想到的是应该写一个类来读取自己电脑上的文本文档。部分代码如下代码所示: public class ReadTxt {/ * 读取文本文件,abs_p...

伊诗塔 ⋅ 2014/03/16 ⋅ 0

利用pandas+python制作100G亚马逊用户评论数据词云

Part 1: 你真的认识大数据吗? 我周围很多人,开口闭口都是云计算、大数据。你要是真的去追究什么事大数据,什么级别的数据才叫做大,那么他们多半是答不上来的。我见过好几个人,处理过的最...

YoghurtIce ⋅ 2015/12/18 ⋅ 0

最新阿里巴巴面试题(附带面试标准答案)

在上一节中,我们已经介绍了关于阿里巴巴的任职要求,这节我就详细的介绍一下关于阿里巴巴的面试题(涉及到标准代码部分不予以出现,如果想要可以加群:725479218,里面可以进行技术分享、技术...

柯西带你学编程 ⋅ 06/02 ⋅ 0

用Python分析《红楼梦》:见证了贾府的兴衰,你是否还能“笑道”世事无常

没读过《红楼梦》也能知道前后四十回是不是一个作者写的?很久以前,数据侠黎晨,用机器学习的算法分析了《红楼梦》,认为后四十回和前八十回内容上有明显差距。不过,数据侠楼宇却不这么认为...

dqcfkyqdxym3f8rb0 ⋅ 2017/12/09 ⋅ 0

如何站在大数据的角度看100000个故事

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文来自云+社区翻译社,作者HesionBlack 最近我从马克·里德尔 那拿到了很棒的自然语言方面的数据集 :从WIKI下载了112000个故事...

腾讯云加社区 ⋅ 06/15 ⋅ 0

【译文】100000个故事的情节分析:一个简单案例

作者:David Robinson 译者:钱亦欣 近来我从Mark Riedel那里拿到了一个很棒的自然语言方面的数据集。它有从英语wiki下载的112000个故事作品的情节,故事作品包括了图书,电影,电视剧和游戏...

上大飞猪钱小莲 ⋅ 2017/04/28 ⋅ 0

贝叶斯推断及其互联网应用(三):拼写检查

(这个系列的第一部分介绍了贝叶斯定理,第二部分介绍了如何过滤垃圾邮件,今天是第三部分。) 使用Google的时候,如果你拼错一个单词,它会提醒你正确的拼法。 比如,你不小心输入了seperat...

阮一峰 ⋅ 2012/10/16 ⋅ 0

各种实用应用程序中的词语分析和 N 元模型

在词语级别为自然语言特征建模,并生成频率图 系列内容: 此内容是该系列 # 部分中的第 # 部分: 利用人工智能创建模式,第 2 部分 此内容是该系列的一部分:利用人工智能创建模式,第 2 部分...

Uche Ogbuji ⋅ 05/21 ⋅ 0

在Hadoop上运行基于RMM中文分词算法的MapReduce程序

我知道这个文章标题很“学术”化,很俗,让人看起来是一篇很牛B或者很装逼的论文!其实不然,只是一份普通的实验报告,同时本文也不对RMM中文分 词算法进行研究。这个实验报告是我做高性能计...

solu ⋅ 2012/01/29 ⋅ 2

hive实现50w词频统计与ctrip数据集销售额计算

用hive对50万条记录(数据文件demo50w.utf8)进行词频统计,数据清洗转换自行处理,并列出词频最高的20个词。 首先准备好要统计单词的文件,并上传到hdfs上,登录hive,先创建一个表,这个表...

ls_6468 ⋅ 03/21 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

R计算IV

参考文章 #读取文件 rawdata = read.csv("/path/to/csv/file",header=T) colnames(rawdata)[18] <- "y" //重命名因变量y #数据分区 训练集测试集 trainIdx <- sample(nrow(rawdata), round(......

火力全開 ⋅ 15分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

阿里云云栖社区 ⋅ 15分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

猫耳m ⋅ 25分钟前 ⋅ 0

关于ireport自定义变量类型为list的时候

自己摸石头过河,我真的应该去趟市中心图书馆,借本真正靠谱的教材 网上的东西,只有0.01%是有用的,还有0.99%是垃圾,剩下的99%是垃圾的复制品。。 哎!~ 问题是这样的,报表带sql,从db中获...

炑炑milina ⋅ 26分钟前 ⋅ 0

Spring mvc ContextLoaderListener 原理解析

对于熟悉Spring MVC功能,首先应从web.xml 开始,在web.xml 文件中我们需要配置一个监听器 ContextLoaderListener,如下。 <!-- 加载spring上下文信息,最主要的功能是解析applicationContex...

轨迹_ ⋅ 27分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

阿里云官方博客 ⋅ 28分钟前 ⋅ 0

Redis安装异常解决办法

官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxvf redis-2.8.17.tar.gz 3. 进入解压缩后的文件夹:c...

slagga ⋅ 33分钟前 ⋅ 0

006. 深入JVM学习—年轻代

1. 年轻代图片 年轻代(Young)属于JVM堆内存空间的一个组成部分 所有使用关键字new新实例化的对象一定会在伊甸园区进行保存,而对于存活区保存的一定是已经在伊甸园区存在一段时间并且经过了...

影狼 ⋅ 34分钟前 ⋅ 0

如何成为一个合格的程序员

偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员...

柳猫 ⋅ 34分钟前 ⋅ 0

cups error_log日志暴增

日志内容 File \"/usr/lib/cups/notifier/dbus\" has insecure permissions 解决(未验证适用范围) sudo service cups stopsudo rm /etc/cups/subscriptions.conf*sudo rm -r /var/cac......

一介码夫_Hum ⋅ 38分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部