小编Lez*_*zan的帖子

交易和sqlalchemy

我试图弄清楚如何使用python3中的sqlalchemy将许多(大约100k)记录插入到数据库中.一切都指向使用交易,但是我对如何做到这一点感到有些困惑.有些页面声明你从connection.begin()获得了一个事务,其他地方说它是session.begin(),这里的这个页面说它是session.create_transaction(),它不存在.

这是我想要做的:

def addToTable(listOfRows):
    engine = create_engine('postgresql+pypostgresql:///%s' % db,echo = False)
    Session = sessionmaker(bind = engine)
    session = Session()
    table = myTable(engine,session)

    for row in listOfRows:
       table.add(row)
    table.flush() ### ideally there would be a counter and you flush after a couple of thousand records


class myTable:

    def __init__(self,engine,session):
       self.engine  = engine
       self.session = session
       self.transaction =createTransaction()# Create transaction code here

   def add(self,row):
       newRow = tableRow(row) ## This just creates a representation of a row in the DB
       self.transaction.add(newRow) …
Run Code Online (Sandbox Code Playgroud)

python transactions sqlalchemy insert

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

用于大型数据集的Python defaultdict

defaultdict用来存储数百万个短语,所以我的数据结构看起来像mydict['string'] = set(['other', 'strings']).它似乎适用于较小的套装但是当我击中任何超过1000万个按键时,我的程序只是崩溃了有用的信息Process killed.我知道defaultdict内存很重,但是有一个使用defaultdicts 存储的优化方法还是我必须查看其他数据结构,如numpy数组?

谢谢

python numpy large-data defaultdict

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

如何匹配antlr中的unicode字符

我试图在文本中挑选所有令牌,并需要匹配所有Ascii和Unicode字符,所以这就是我如何摆出它们.

fragment CHAR     :  ('A'..'Z') | ('a'..'z');
fragment DIGIT    :  ('0'..'9');
fragment UNICODE  :  '\u0000'..'\u00FF';
Run Code Online (Sandbox Code Playgroud)

现在,如果我将令牌规则写为:

TOKEN  :  (CHAR|DIGIT|UNICODE)+;
Run Code Online (Sandbox Code Playgroud)

我得到"决定可以匹配输入,例如"'A'..'Z'"使用多种选择:1,3结果,替代(s)3被禁用该输入""决定可以匹配输入,如"' 0'..'9'"使用多个替代方案:2,3结果,替代(s)3被禁用该输入"

没有任何东西可以匹配:而且如果我把它写成

TOKEN  :  (UNICODE)+;
Run Code Online (Sandbox Code Playgroud)

什么都没有匹配.

有没有办法做到这一点.

unicode antlr antlr3

5
推荐指数
2
解决办法
9608
查看次数

Mallet HMM 训练问题

目前,我正在为 Mallet 关于 HMM 的糟糕得可笑的文档而苦苦挣扎。我已经设法将数据导入到实例中(改编自 ImportExample.java 片段),我只是想知道如何使用它们来训练 HMM 模型。我首先创建了一个 HMM 实例,但我不确定是否去:

    HMM hmm = new HMM(instances.getDataAlphabet(), instances.getTargetAlphabet());
Run Code Online (Sandbox Code Playgroud)

或者像这样使用相同的数据字母两次:

    HMM hmm = new HMM(instances.getDataAlphabet(), instances.getDataAlphabet());
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,当我到达

    hmm.train(instances);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

cc.mallet.types.FeatureVector 不能转换为 cc.mallet.types.FeatureVectorSequence

如果您能提供任何帮助,我将不胜感激。

干杯

java hidden-markov-models mallet

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

快速将字符串与Java中的Collection进行比较

我试图计算字符串对集合的编辑距离,以找到最接近的匹配.我目前的问题是集合非常大(大约25000个项目),所以我不得不将集合缩小到相似长度的字符串,但仍然只会将其缩小到几千个字符串,这仍然非常慢.是否存在允许快速查找类似字符串的数据结构,还是有另一种方法可以解决此问题?

java algorithm edit-distance pattern-matching data-structures

5
推荐指数
2
解决办法
658
查看次数