文档词频分析小工具
来源:互联网 发布:java android api 编辑:程序博客网 时间:2024/05/12 15:37
今天正打算看代码,忽然感觉一个代码分析的工具还是必不可少……之前下载的Understand什么的,用起来各种不好用是真的……所以今天拿python先写了一个词频分析的小工具,花了好几个小时 = =# 因为写的时候发现python好多函数也并不知道,一边写一遍百度。然而还是有点着急,好多模块并没有弄清楚,先mark一下以后再说:
1. codes: 以其他格式读写文件;但是没成功,我后来用 file.read().decode(‘utf-8’)也不好用,说是ascii码转换不了什么的种种;
2. re:正则表达式;因为要匹配的字符还包含各种括号引号斜杠,也是没有用好,干脆直接split循环暴力解决了最后;
3. 最后输出的时候中文字符串全部没有输出,取而代之输出到目标文件中的是一个空字符,而且显示这个空字符的数量是最庞大的了,所以应该就是代表中文字符串
好了进入正文
不贴代码也不写注释了因为9点了宝宝要回家了嗷嗷嗷 0.0 ……
全局配置……
g_readfilepath = "E:/XXX/"f_writefilename = "E:/test.txt"g_file_postfix = ('.cpp', '.h', '.ipp', )g_split_char = ('!', ' ', '#', '"', "'", '&', ')', '(', '+', '*', '-', ',', '/', '.', ';', ':', '=', '<', '>', '[', ']', '\\', '{', '}', '|', '~', )g_split_re = '[!#&)(+*-,/.;:=<>}|~]'g_wordchar = frozenset(('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', '', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', '', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '_', ))g_ifIgnoreSysWord = Trueg_word = frozenset(('const', 'if', 'return', 'void', 'virtual', 'class', 'int', 'char', 'true', 'false', ))g_ifIgnoreDigit = True
类……
class FileNode(object):passclass FileTree(FileNode):pass
函数……
def ifCareFile(filename):passdef splitStr(string):passdef analysisUnwordchar(file_tree):pass #这个只用来输出上边的g_split_chardef analysisWord(file_tree):passdef printSort_file(analysisRes, writefilename):passdef main(): file_tree = FileTree(g_readfilepath) ana_res = analysisWord(file_tree) printSort_file(ana_res, f_writefilename)
我分析了一个文件,速度居然还挺快……是我小看python了……
- 2320586GetWndManager - 38765getResourceManager - 37081cacheUIR - 36754AddCustomizedPosition - 21516parent - 15876CLRect - 15831AddCustomizedRect - 14823id - 14755infoMap - 13139Create - 13003ParseXml - 12554InitID - 12454InitPosition - 12450this - 11563i - 11056。。。
统计后感:
- 我发现用到的最多的是死代码……也就是程序生成的那部分代码……如何找到关键函数还是任重道远啊
- 0乃数字之最!其次是1280和768……其次是1 =。=
- 前四个系统关键字是 void、int、if、virtual
- 下一步可以开始考虑分析类层次和类调用了,因为顺便输出了下某个大文件夹下所有文件数量发现也不过2000来个~
0 0
- 文档词频分析小工具
- C++性能分析小工具
- [软件]多文档批量打印小工具
- 个人文档保护---小工具,大功能
- 一天一个小工具---读取Word文档
- TCP/IP协议分析-常用小工具
- java性能分析小工具--jconsole
- Java性能分析小工具 ---- jconsole
- HTTPS性能分析小工具HTTPStat
- 小工具
- 小工具
- 小工具
- 小工具
- 小工具
- 小工具
- 小工具
- 小工具
- 小工具
- 最火爆的开源流式系统Storm vs 新星Samza
- binder第二课
- HDU 5654 xiaoxin and his watermelon candy
- 关于大型网站技术演进的思考(十四)--网站静态化处理—前后端分离—上(6)
- 挖掘DBLP作者合作关系,FP-Growth算法实践(5):挖掘研究者合作关系
- 文档词频分析小工具
- 关于大型网站技术演进的思考(十三)--网站静态化处理—CSI(5)
- UVa 340 - Master-Mind Hints
- 笔试练习二
- 有关Mac版本AS类里面无法编写代码的问题
- MYSQL中group_concat有长度限制!默认1024
- 微信手机网页上传图片高效率压缩(Canvas+Base64)
- Java中的native方法
- 《深入理解java虚拟机》读书笔记:Java对象的内存布局