# 开发记录 待办列表 * 打开时恢复至上次的状态 * 增加操作日志 开发进度 * 2023-07-05 - 增加文件选择功能 * 2023-07-06 - 增加正则匹配不限制位置 * 2023-07-08 - 增加支持4级筛选;调整界面结构,增大结果区域 - 增加历史记录功能,能打开上一次的位置 - 增加显示筛选数量和结果数量 # 待办日志 1. 链式调用 2. 聚合结果分析 # 处理步骤 1. 从5118下载泛词(csv文件) 2. 对泛词进行分词处理(cut.py) * 分词和词频统计 * 根据词频进行倒序排列 3. 根据词频获取拓展词 4. 把所有拓展词合并到一个文件中(merge.py) 5. 生成关键词文件,包含三个要素:序号、关键词、分词结果(key.py) 6. 对关键词文件生成索引文件(key_index.py) 7. 根据关键词文件生成倒排文件(key_reverse.py) 8. 根据关键词文件、索引文件、倒排文件生成最终的聚合分析文件(agg_word.py) # 进程相关 1. 普通的只有一个进程 2. 普通使用ProcessPoolExecutor只有4个进程 3. 如果使用Manager会额外多一个进程 # 文件位置相关 1. with open 与 mmap 读取到的每行的位置是一样的 # 文件读取速度比较 1. 从单进程的角度看:仅以顺序读文件来说mmap的速度快很多,如果对内容进行编码,速度也较with open快一点 2. 从多进程的角度看:仅以顺序读文件来说mmap的速度快很多,如果对内容进行编码,速度也较with open快一点 3. 仅以顺序读取同一个文件,with open 与 mmap 均是 单进程读取一次的速度 比 多进程读取一次要快,而且with open的差距更明显 4. 多进程分段读取中 mmap比with open快很多,with open非常的慢 * 总结: * mmap(单)>>mmap(单,对内容进行编码)>with open(单) * mmap(多)>>mmap(多,对内容进行编码)>with open(多) * (这个结论没啥用处,因为多进程一般是完成不同的任务)仅以顺序读取同一个文件,with open 与 mmap 均是 单进程读取一次的速度 比 多进程读取一次要快,而且with open的差距更明显 * 多进程分段读取中 mmap比with open快很多,with open非常的慢