我正在运行一个文本机器学习算法,它生成n个图形。当然,这会极大地膨胀输入的大小。要将它放在上下文中,最初的输入是文件中的30K行,在生成trigram之后,我有348000条条目。
我使用的是scikit及其TfidfVectorizer,如果给出了太多的值,就会得到一个由numpy数组抛出的MemoryError。在我达到极限之前,我只能使用~27500三格。这意味着我只能使用最多10%的可用数据。
我能做些什么来帮助解决这个问题?我有什么选择吗?
发布于 2015-11-27 17:39:45
正如@jme所提到的,python对操作系统的内存管理没有影响。可能最合理的方法(如果您找不到一台拥有更多内存的机器)可能是以某种方式限制特性的数量,例如使用TfidfVectorizer的下列选项参数之一
max_df:浮动范围为0.0,1.0或int,default=1.0 在构建词汇表时,忽略文档频率严格高于给定阈值的术语(特定于语料库的停止词)。如果浮动,则该参数表示文档的比例,整数绝对计数。如果词汇表不是None,则忽略此参数。 min_df:浮动范围为0.0,1.0或int,default=1 在构建词汇表时,忽略文档频率严格低于给定阈值的术语。这一价值在文学中也被称为“切断”。如果浮动,则该参数表示文档的比例,整数绝对计数。如果词汇表不是None,则忽略此参数。 max_features:int或None,default=None 如果没有,那么构建一个词汇表,它只考虑所有语料库中按词频排序的顶级max_features。 如果词汇表不是None,则忽略此参数。
https://stackoverflow.com/questions/33948886
复制相似问题