小编fly*_*use的帖子

如何解决Python中的内存错误

我正在处理几个大的txt文件,每个文件大约有8000000行.这些行的一个简短例子是:

usedfor zipper fasten_coat
usedfor zipper fasten_jacket
usedfor zipper fasten_pant
usedfor your_foot walk
atlocation camera cupboard
atlocation camera drawer
atlocation camera house
relatedto more plenty
Run Code Online (Sandbox Code Playgroud)

将它们存储在字典中的代码是:

dicCSK = collections.defaultdict(list)
for line in finCSK:
    line=line.strip('\n')
    try:
        r, c1, c2 = line.split(" ")
    except ValueError:
        print line
    dicCSK[c1].append(r+" "+c2)
Run Code Online (Sandbox Code Playgroud)

它在第一个txt文件中运行良好,但是当它运行到第二个txt文件时,我收到了一个错误MemoryError.

我使用的是带有python 2.7 32bit,intel i5 cpu,8Gb内存的7位64位窗口.我该如何解决这个问题?

进一步解释:我有四个大文件,每个文件包含许多实体的不同信息.例如,我想查找cat其父节点animal及其子节点persian cat等的所有信息.所以我的程序首先读取字典中的所有txt文件,然后我扫描所有字典以查找cat其父亲及其子代的信息.

python memory

10
推荐指数
2
解决办法
10万
查看次数

Mallet主题模型示例无法编译

我想在我的Java中编译mallet(而不是使用命令行),所以我在我的项目中包含jar,并引用示例的代码:http://mallet.cs.umass.edu/topics-devel. PHP的,但是,当我运行此代码,有错误:

Exception in thread "main" java.lang.NoClassDefFoundError: gnu/trove/TObjectIntHashMap
    at cc.mallet.types.Alphabet.<init>(Alphabet.java:51)
    at cc.mallet.types.Alphabet.<init>(Alphabet.java:70)
    at cc.mallet.pipe.TokenSequence2FeatureSequence.<init>    (TokenSequence2FeatureSequence.java:35)
at mallet.TopicModel.main(TopicModel.java:25)
Caused by: java.lang.ClassNotFoundException: gnu.trove.TObjectIntHashMap
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more
Run Code Online (Sandbox Code Playgroud)

我不确定导致错误的原因.有人可以帮忙吗?

package mallet;

import cc.mallet.util.*;
import cc.mallet.types.*;
import cc.mallet.pipe.*;
import cc.mallet.pipe.iterator.*;
import cc.mallet.topics.*;

import java.util.*;
import java.util.regex.*;
import java.io.*;

public class TopicModel {

public static void main(String[] args) throws Exception { …
Run Code Online (Sandbox Code Playgroud)

mallet topic-modeling

7
推荐指数
1
解决办法
1961
查看次数

Python CSV写入文件在Excel中无法读取(中文字符)

我正在尝试对中文文本进行文本分析.该计划如下.我得到的结果有不可读的字符,比如????????.如果我将输出文件更改result.csvresult.txt,则字符正确为??????.那有什么不对呢?我弄不清楚.我试过几种方法,包括添加decoderencoder.

    # -*- coding: utf-8 -*-
    import os
    import glob
    import jieba
    import jieba.analyse
    import csv
    import codecs  

    segList = []
    raw_data_path = 'monthly_raw_data/'
    file_name = ["201010", "201011", "201012", "201101", "201103", "201105", "201107", "201109", "201110", "201111", "201112", "201201", "201202", "201203", "201205", "201206", "201208", "201210", "201211"]

    jieba.load_userdict("customized_dict.txt")

    for name in file_name:
        all_text = ""
        multi_line_text = ""
        with open(raw_data_path + name + ".txt", "r") as file:
            for line in …
Run Code Online (Sandbox Code Playgroud)

python csv unicode excel

7
推荐指数
1
解决办法
6866
查看次数

如何在Python中删除中文标点符号

我有以下句子,我想删除所有标点符号。

\n\n
\xe9\xa6\x96\xe9\xa1\xb5 \xc2\xbb \xe6\x94\xbf\xe7\xad\x96\xe6\xb3\x95\xe8\xa7\x84 \xc2\xbb \xe6\xad\xa3\xe6\x96\x87\xe5\x90\x89\xe6\x9e\x97\xe7\x9c\x81\xe5\xae\x9e\xe6\x96\xbd\xe3\x80\x8a\xe4\xb8\xad\xe5\x8d\x8e\xe4\xba\xba\xe6\xb0\x91\xe5\x85\xb1\xe5\x92\x8c\xe5\x9b\xbd\xe8\x80\x81\xe5\xb9\xb4\xe4\xba\xba\xe6\x9d\x83\xe7\x9b\x8a\xe4\xbf\x9d\xe9\x9a\x9c\xe6\xb3\x95\xe3\x80\x8b\xe8\x8b\xa5\xe5\xb9\xb2\xe8\xa7\x84\xe5\xae\x9a   \xe5\x8f\x91\xe5\xb8\x83\xe6\x97\xb6\xe9\x97\xb4\xef\xbc\x9a 2008-01-04              \n
Run Code Online (Sandbox Code Playgroud)\n\n

我想删除所有中文标点符号,包括空格“”。下面是我的代码:

\n\n
line = line.decode("utf8")\nline = re.sub("[\\s+\\.\\!\\/_,$%^*(+\\"\\\']+|[+\xe2\x80\x94\xe2\x80\x94\xef\xbc\x81\xef\xbc\x8c\xe3\x80\x82\xef\xbc\x9f\xe3\x80\x81~@#\xef\xbf\xa5%\xe2\x80\xa6\xe2\x80\xa6&*\xef\xbc\x88\xef\xbc\x89\xef\xbc\x9a\xef\xbc\x9b\xe3\x80\x8a\xef\xbc\x89\xe3\x80\x8a\xe3\x80\x8b\xe2\x80\x9c\xe2\x80\x9d()\xc2\xbb\xe3\x80\x94\xe3\x80\x95-]+".decode("utf8"), "".decode("utf8"),line)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我仍然有未删除的空白空间。我想知道是否有更简单的方法来删除中文标点符号?

\n

python chinese-locale

6
推荐指数
2
解决办法
7745
查看次数

如何将一个.docx中的某些内容复制到另一个.docx,使用POI而不丢失格式?

假设我有两个.DOCX文件,input.docx以及output.docx我需要选择一些内容input.docx,并复制它们output.docx.在newdoc显示其在控制台中的内容似乎是正确的,但我没有得到的东西output.docx,除了空行.任何人都可以提供建议吗?

InputStream is = new FileInputStream("D:\\input.docx"); 
XWPFDocument doc = new XWPFDocument(is);

List<XWPFParagraph> paras = doc.getParagraphs();  
List<XWPFRun> runs;
XWPFDocument newdoc = new XWPFDocument();                                     
for (XWPFParagraph para : paras) {  
            runs = para.getRuns();      
            if(!para.isEmpty())
            {
                XWPFParagraph newpara = newdoc.createParagraph(); 
                XWPFRun newrun = newpara.createRun();
                for (int i=0; i<runs.size(); i++) {                       
                    newrun=runs.get(i);
                    newpara.addRun(newrun);
                }
            }
        }


        List<XWPFParagraph> newparas = newdoc.getParagraphs(); 
        for (XWPFParagraph para1 : newparas) {  
            System.out.println(para1.getParagraphText());
        }// in the console, I …
Run Code Online (Sandbox Code Playgroud)

java apache-poi

5
推荐指数
1
解决办法
8022
查看次数

如何在Python中读取间隔中的行?

我有一个txt文件,那里有数千行,例如:

line 1 test
line 2 test
line 3 test 
line 4 test
line 5 test
line 6 test
line 7 test
line 8 test
line 9 test
Run Code Online (Sandbox Code Playgroud)

我希望阅读line 1, line 4, line 7, line 10, line 13 ...但忽略line 2, 3, 5, 6, 8, 9....我怎么读这些线?

python

3
推荐指数
1
解决办法
670
查看次数

发生Python scipy.optimize.fmin_l_bfgs_b错误

我的代码是使用L-BFGS优化来实现主动学习算法.我想优化四个参数:alpha,beta,wgamma.

但是,当我运行下面的代码时,我收到一个错误:

optimLogitLBFGS = sp.optimize.fmin_l_bfgs_b(func, x0 = x0, args = (X,Y,Z), fprime = func_grad)                                           
  File "C:\Python27\lib\site-packages\scipy\optimize\lbfgsb.py", line 188, in fmin_l_bfgs_b
    **opts)
  File "C:\Python27\lib\site-packages\scipy\optimize\lbfgsb.py", line 311, in _minimize_lbfgsb
    isave, dsave)
    _lbfgsb.error: failed in converting 7th argument ``g' of _lbfgsb.setulb to C/Fortran array 
    0-th dimension must be fixed to 22 but got 4
Run Code Online (Sandbox Code Playgroud)

我的代码是:

# -*- coding: utf-8 -*-
import numpy as np
import scipy as sp
import scipy.stats as sps

num_labeler = 3 …
Run Code Online (Sandbox Code Playgroud)

python numpy mathematical-optimization scipy

2
推荐指数
1
解决办法
2484
查看次数

如何从 Scipy Optimize 函数中获取结果数组

我现在正在scipy.optimize.minimize为我的算法使用函数。代码是这样的:

optim = scipy.optimize.minimize(blablabla)
print optim
Run Code Online (Sandbox Code Playgroud)

然后我在控制台中打印了结果。

status: 0
  success: True
     nfev: 42
 hess_inv: <20x20 LbfgsInvHessProduct with dtype=float64>
      fun: 97330.117758336462
        x: array([ 0.34842437,  0.31432181,  0.3231227 ,  0.82165996,  0.01639795,
    ])
  message: 'CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL'
Run Code Online (Sandbox Code Playgroud)

但是,我需要在代码中再次使用结果,我希望得到 的数组x和 的值fun。如何获得它们?

python optimization scipy

1
推荐指数
1
解决办法
3935
查看次数

为什么分裂的结果中有一个"数组"?(蟒蛇)

我想将一个数组拆分成子数组.原始数据是:

['4 2','1 4','1 4']
['4 1','4 1','3 1']
['3','2','1']
Run Code Online (Sandbox Code Playgroud)

我想得到的结果是:

['4','1','1']
['2','4','4']
['4','4','3']
['1','1','1']
['3','2','1']
Run Code Online (Sandbox Code Playgroud)

所以我的代码是:

raw = [['4 2','1 4','1 4'],['4 1','4 1','3 1'],['3','2','1']]
newraw =[]
for item in raw:
    #print item
    numberOfRow = len(item[0].split(" "))
    temp = np.empty((numberOfRow,5))


    for i in range(len(item)):
        test = item[i].split(" ")
        for j in range(len(test)):
            temp[j,i]=test[j]
    for it in temp:
        newraw.append(it)
print newraw
Run Code Online (Sandbox Code Playgroud)

当我print newraw,我发现问题:(1),结果包含非整数,(2)结果包含[array([...])...,但我不知道为什么.

那么有任何解决方案,还是有任何简单的方法来获得我想要的结果?谢谢〜

python arrays

1
推荐指数
1
解决办法
74
查看次数

如何在Python中将两个元素写入一行

目标很简单,假设我有一个数据数组x和一个标签数组y,它们是两个独立的文件.例如:

x= [['first sentence'],['second sentence'],['third sentence']]
y= [1,0,1]
Run Code Online (Sandbox Code Playgroud)

我想得到一个组合的3*2 csv文件:

first sentence, 1
second sentence, 0
third sentence, 1
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来完成这项工作?我的代码是导入csv包并使用双循环,但我相信存在一种更简单的方法.

python

1
推荐指数
2
解决办法
418
查看次数

根据Python中的规则将所有字符串更改为整数

我有一个数组,string如:

[['2', '1', '1', '1', '4']
['4', '3', '3', '5', '6']
['7', '7', '2', '2', '7']]
Run Code Online (Sandbox Code Playgroud)

我想得到的结果与integer元素为:

[[0,0,0,0,0]
[0,0,0,1,1]
[1,1,0,0,1]]
Run Code Online (Sandbox Code Playgroud)

基于以下规则:如果元素大于4,则将其替换为1else0

我试图在Python中使用双循环,但是它太复杂了,有没有简单的方法可以完成这项工作?

python string

0
推荐指数
1
解决办法
73
查看次数

为什么我的程序需要这么长时间?

我正在处理一个大的txt文件,总共有8050000行.这些行的一个简短例子是:

usedfor zipper fasten_coat
usedfor zipper fasten_jacket
usedfor zipper fasten_pant
usedfor your_foot walk
atlocation camera cupboard
atlocation camera drawer
atlocation camera house
relatedto more plenty
Run Code Online (Sandbox Code Playgroud)

我编写了一个python代码来读取行,并将它们存储为字典.我的代码是:

dicCSK = {} 
for line in finCSK:
    line=line.strip('\n')
    try:
        r, c1, c2 = line.split(" ")
    except ValueError: print line
    if c1 not in dicCSK.keys():
        dicCSK[c1]= []
    str1 = r+" "+c2
    dicCSK[c1].append(str1)
Run Code Online (Sandbox Code Playgroud)

但是,我运行该程序超过20个小时,它仍在运行.那么有没有更好的方法将它们存储在字典中?我的代码太慢了.谢谢.

python

0
推荐指数
1
解决办法
76
查看次数