我越来越
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
当我将来自我使用SQLAlchemy访问的MySQL数据库的文本传递给此函数时:
re.compile(ur"<([^>]+)>", flags=re.UNICODE).sub(u" ", s)
Run Code Online (Sandbox Code Playgroud)
数据库编码是utf-8,我甚至将编码传递给SQLAlchemy的create_engine函数.
编辑: 这是我查询数据库的方式:
doc = session.query(Document).get(doc_id)
s = doc.title
Run Code Online (Sandbox Code Playgroud)
根据建议,我将s.decode('utf-8')传递给了sub
.上面的错误消失了,但是我为另一个文档得到了不同的错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xeb in position 449: invalid continuation byte
Run Code Online (Sandbox Code Playgroud)
数据库表的定义如下:
CREATE TABLE `articles` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) DEFAULT NULL,
`cdate` datetime DEFAULT NULL,
`link` varchar(255) DEFAULT NULL,
`content` text,
UNIQUE KEY `id` (`id`),
UNIQUE KEY `link_idx` (`link`)
) ENGINE=InnoDB …
Run Code Online (Sandbox Code Playgroud) 我试图从荷兰文本中提取命名实体.我使用nltk-trainer在conll2002荷兰语语料库上训练一个tagger和一个chunker.但是,来自chunker的解析方法未检测到任何命名实体.这是我的代码:
str = 'Christiane heeft een lam.'
tagger = nltk.data.load('taggers/dutch.pickle')
chunker = nltk.data.load('chunkers/dutch.pickle')
str_tags = tagger.tag(nltk.word_tokenize(str))
print str_tags
str_chunks = chunker.parse(str_tags)
print str_chunks
Run Code Online (Sandbox Code Playgroud)
而这个程序的输出:
[('Christiane', u'N'), ('heeft', u'V'), ('een', u'Art'), ('lam', u'Adj'), ('.', u'Punc')]
(S Christiane/N heeft/V een/Art lam/Adj ./Punc)
Run Code Online (Sandbox Code Playgroud)
我期待Christiane被检测为命名实体.有帮助吗?
注意:我意识到在SO上有一个类似的问题,但是它谈到了Casbah的旧版本,而且,答案中解释的行为不是我所看到的!
我的印象是Casbah的MongoClient处理连接池.然而,在我的进程中做lsof我看到一个庞大且越来越多的mongodb连接,这让我怀疑这个池真的存在.
基本上,这就是我正在做的事情:
class MongodbDataStore {
val mongoClient = MongoClient("host",27017)("database")
var getObject1(): Object1 = {
val collection = mongoClient("object1Collection")
...
}
var getObject2(): Object2 = {
val collection = mongoClient("object2Collection")
...
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我从不关闭MongoClient.
我应该在每次查询后关闭它吗?实现我自己的池?然后怎样呢?
谢谢
我正在尝试在一个非常简单的数据库上使用python的olap框架多维数据集,但是我在连接表时遇到了一些麻烦.
我的架构如下所示:
Users table
ID | name
Products table
ID | name | price
Purchases table
ID | user_id | product_id | date
Run Code Online (Sandbox Code Playgroud)
而立方体模型:
{
'dimensions': [
{'name': 'user_id'},
{'name': 'product_id'},
{'name': 'date'},
],
'cubes': [
{
'name': 'purchases',
'dimensions': ['user_id', 'product_id', 'date'],
'measures': ['price']
'mappings': {
'purchases.user_id': 'users.id',
'purchases.product_id': 'products.id',
'purchases.price': 'products.price'
},
'joins': [
{
'master': 'purchases.user_id',
'detail': 'users.id'
},
{
'master': 'purchases.product_id',
'detail': 'products.id'
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在我想显示所有购买,显示产品名称,用户名和购买日期.我似乎找不到办法做到这一点.文档有点稀缺.
谢谢
我有一个相当大的稀疏矩阵,我估计,当加载到内存中时会占用1Gb.
我不需要一直访问整个矩阵,因此某种内存映射可以工作; 然而,似乎不可能使用numpy或spicy(我熟悉的工具)来记忆映射稀疏矩阵.
它可以很容易地融入内存,但如果我每次运行程序时都必须加载它,那将会非常痛苦.也许某种方式可以在运行之间保持内存?
所以,你有什么建议:1.找到一种记忆映射稀疏矩阵的方法; 2.每次只需将整个思想加载到内存中.