【发布时间】:2011-05-27 03:19:22
【问题描述】:
不幸的是,我正在处理一个非常大的语料库,该语料库分布在数百个 .gz 文件中——事实上,价值 24 GB(打包)。 Python 确实是我的母语(哈哈),但我想知道我是否没有遇到需要学习“更快”语言的问题?
每个 .gz 文件都包含一个纯文本文档,压缩后的大小约为 56MB,解压缩后的大小约为 210MB。
每一行都有一个 n-gram(二元、三元、四元等),右边是一个频率计数。我基本上需要创建一个文件,将每个四边形的子串频率与其全串频率计数一起存储(即,4 个一元组频率、3 个二元组频率和 2 个三元组频率,总共 10 个数据点)。每种类型的 n-gram 都有自己的目录(例如,所有二元组都出现在它们自己的 33 个 .gz 文件集中)。
我知道一个简单的蛮力解决方案,以及要导入哪个模块来处理 Python 中的 gzip 文件,但我想知道是否有什么东西不会占用我数周的 CPU 时间?任何有关加快此过程的建议,无论多么轻微,都将不胜感激!
【问题讨论】:
-
你的问题是......?
-
糟糕。你发布就像我编辑它一样。 :)
-
正如 Andrew 所说,您需要在此处实际指定一个问题,但通常我敢打赌,处理语言不是您的问题,而是磁盘访问速度将成为一个重要的限制因素。
-
您是否根据处理单个文件所需的时间来估算时间,还是您在猜测?
-
嗨,凯西——在这一点上,我不记得使用单个文件执行此操作需要多长时间,但即使对于包含 4 克的单个文件,这也意味着搜索每个文件其中包括 3-gram、bigram 和 unigram。我什至不确定哪种数据结构使用起来最快。
标签: python gzip large-files large-data-volumes corpus