我试图弄清楚如何使用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) 我defaultdict用来存储数百万个短语,所以我的数据结构看起来像mydict['string'] = set(['other', 'strings']).它似乎适用于较小的套装但是当我击中任何超过1000万个按键时,我的程序只是崩溃了有用的信息Process killed.我知道defaultdict内存很重,但是有一个使用defaultdicts 存储的优化方法还是我必须查看其他数据结构,如numpy数组?
谢谢
我试图在文本中挑选所有令牌,并需要匹配所有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)
什么都没有匹配.
有没有办法做到这一点.
目前,我正在为 Mallet 关于 HMM 的糟糕得可笑的文档而苦苦挣扎。我已经设法将数据导入到实例中(改编自 ImportExample.java 片段),我只是想知道如何使用它们来训练 HMM 模型。我首先创建了一个 HMM 实例,但我不确定是否去:
Run Code Online (Sandbox Code Playgroud)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);
我收到以下错误:
cc.mallet.types.FeatureVector 不能转换为 cc.mallet.types.FeatureVectorSequence
如果您能提供任何帮助,我将不胜感激。
干杯
我试图计算字符串对集合的编辑距离,以找到最接近的匹配.我目前的问题是集合非常大(大约25000个项目),所以我不得不将集合缩小到相似长度的字符串,但仍然只会将其缩小到几千个字符串,这仍然非常慢.是否存在允许快速查找类似字符串的数据结构,还是有另一种方法可以解决此问题?
java algorithm edit-distance pattern-matching data-structures
java ×2
python ×2
algorithm ×1
antlr ×1
antlr3 ×1
defaultdict ×1
insert ×1
large-data ×1
mallet ×1
numpy ×1
sqlalchemy ×1
transactions ×1
unicode ×1