小编use*_*915的帖子

SQLAlchemy和UnicodeDecodeError

我越来越

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)

python mysql unicode encoding sqlalchemy

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

NLTK在荷兰命名实体识别

我试图从荷兰文本中提取命名实体.我使用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被检测为命名实体.有帮助吗?

python nlp named-entity-recognition nltk

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

如何使用Cashbah MongoDB连接?

注意:我意识到在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.

我应该在每次查询后关闭它吗?实现我自己的池?然后怎样呢?

谢谢

database scala mongodb casbah

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

Python Cubes OLAP框架 - 如何使用连接?

我正在尝试在一个非常简单的数据库上使用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)

现在我想显示所有购买,显示产品名称,用户名和购买日期.我似乎找不到办法做到这一点.文档有点稀缺.

谢谢

python database olap star-schema

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

存储和检索大型稀疏矩阵

我有一个相当大的稀疏矩阵,我估计,当加载到内存中时会占用1Gb.

我不需要一直访问整个矩阵,因此某种内存映射可以工作; 然而,似乎不可能使用numpy或spicy(我熟悉的工具)来记忆映射稀疏矩阵.

它可以很容易地融入内存,但如果我每次运行程序时都必须加载它,那将会非常痛苦.也许某种方式可以在运行之间保持内存?

所以,你有什么建议:1.找到一种记忆映射稀疏矩阵的方法; 2.每次只需将整个思想加载到内存中.

python memory numpy matrix sparse-matrix

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