
python
文章平均质量分 60
谷堆间的驴子
这个作者很懒,什么都没留下…
展开
-
50万邮件文本分域检索与查询的python实现(3)
思前想后,还是决定将这个小工程写完。为表示与之前的不同,采用阿拉伯数字标号。 本节的内容是为邮件的五个区域“To”,“From”,“Subject”,"Data"以及内容分别建立倒排表,由于各个区域内容的性质不同,因此采取的构建方式也不同。 首先从硬盘导入id和doc的映射,load之前序列化的序列: def opendb(): opdb=open('dbase_doc_id','原创 2012-09-16 20:43:49 · 859 阅读 · 2 评论 -
50万邮件文本分域检索与查询的python实现(4)
第四小节介绍对每个域的倒排表分别进行Top 50统计 在shell中与用户交互,根据用户输入决定导入哪个datebase。然后统计字典中每个键值的数目,接着调用sorted函数。代码如下: import pickle def frncy(Field_Name,Dbase_Name): mydb=open(Dbase_Name,'r') mapping=pickle.load(mydb)原创 2012-09-16 20:54:56 · 624 阅读 · 0 评论 -
50万邮件文本分域检索与查询的python实现(5)
第5小节介绍布尔查询的实现 之前在第3小节中已经建立好的各个域的倒排表,对于每个域,都支持AND、OR和NOT这几个简单的布尔查询。 首先导入id与文档路径的映射,方便打印时使用: def opendb(): opdb=open('dbase_id_doc','r') iddoc=pickle.load(opdb) return iddoc 函数主入口: def ma原创 2012-09-16 21:36:46 · 759 阅读 · 0 评论 -
50万邮件文本分域检索与查询的python实现(一)
( --原创,转载请声明-- ) # 把最近用python写的一个邮件分区域检索和查询的实现贴出来 # 课余时间不多,没来得及考虑效率问题,思路较简单。so,有更高效的方法请不吝赐教~ # 轻拍~ 一、构建索引目录 邮件数据集:1.3G,约50万个邮件文本。 目录树层次关系如下: 一级目录:有146个文件夹,对应146个人 二级目录:每个人的文件夹下有多原创 2012-04-23 15:59:12 · 1138 阅读 · 0 评论 -
50万邮件文本分域检索与查询的python实现(二)
上一篇里提到了构建目录树的弱智方法,当时只提取了146个人中的2个人作为测试集,也因此就认为所有人文件夹深度都为3。 后来对所有的人文档遍历后,再进行倒排构建的时候程序报错,错误原因是当前生成的路径是一个文件夹。 随后打印了一些信息,发现有的人文档深度远不止3,而有的人文档深度仅为2,所以把程序改了一下,采用递归的方式遍历所有深度的文件: def find_file(filedir,fi原创 2012-04-29 15:44:22 · 524 阅读 · 0 评论 -
50万邮件文本分域检索与查询的python实现(6)
最后一节介绍分区域布尔查询的实现 分区域查询现在可以支持单个词查询(xxx.region),OR(xxx1.region1 OR xxx2.region2),NOT(xxx1.region1NOT xxx2.region2, NOT xxx1.region1),AND(xxx1.region1 AND xxx2.region2,xxx1.region1 AND xxx2.region2AND原创 2012-09-16 22:05:08 · 655 阅读 · 0 评论 -
50万邮件文本分域检索与查询的python实现(结)
at last 这个“大量邮件的分域检索与查询,python实现”系列是自己研一下学期(2012上半年)初学python的一个小尝试,利用空闲的时间写了些代码。 整个实现过程有很多漏洞和不科学的地方,但作为一门语言的入门学习,还是收获了不少东西。 最后,以《人月神话》中我非常喜欢的一句话作为这个系列的结束: Good cooking takes time. If you are made原创 2012-09-16 22:10:11 · 937 阅读 · 0 评论 -
lambda表达式(python & C++)
1. python中的lambda表达式 ##声明:内容整理自Dive in python中文版,一个不错的学习python地方。 lambda函数允许用户快速定义单行最小函数,有点像C中的inline函数,当函数过于复杂时,不建议使用lambda。 lambda可以接收任意多个参数并返回单个表达式的值,同时,lambda函数不能包含命令,包含的表达式不能超过一个。 # 以下三种方原创 2012-12-29 12:19:10 · 1236 阅读 · 0 评论