python - 使用 python 序列化语料库

标签 python serialization nltk corpus

我有一个巨大的论坛数据数据库。我需要从数据库中提取语料库以用于 NLP 目的。提取步骤有参数(例如 FTS 查询),我想将语料库与参数元数据一起保存在文件系统上。

一些语料库有几十兆字节大。保存文件及其元数据的最佳方法是什么,以便我可以在不加载整个文件的情况下读取元数据。

我正在使用以下可能相关的技术:PyQt、Postgres、Python、NLTK。

一些注意事项:

  1. 我希望语料库与重量级数据库分离。
  2. 我不想使用 sqlite,因为元数据的结构非常简单。
  3. 据我所知,Pickling 不允许部分反序列化。
  4. 我不想有单独的元数据文件。
  5. 我有使用 Protocol Buffer 的经验,但同样,这似乎过于严厉。

我想我可以将元数据腌制为字符串,并让文件的第一行代表元数据。这似乎是我认为最简单的方法。也就是说,pickle 格式是否是 ASCII 安全的。

最佳答案

在 NLTK 的术语中,“语料库”是整个集合,可以由多个文件组成。听起来您可以将每个论坛 session (称为“语料库”)存储到一个单独的文件中,使用允许您在文件开头存储元数据的结构化格式。

NLTK 通常使用 XML 来实现此目的,但开发自己的语料库阅读器并不难,该阅读器读取文件头,然后遵循 PlainTextCorpusReader 或任何最适合您的文件格式的标准阅读器。如果您使用 XML,则还必须扩展 XMLCorpusReader 并提供方法 sents()words() 等。

关于python - 使用 python 序列化语料库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817673/

相关文章:

python - 查找两个字符串之间的匹配百分比,同时考虑单词的顺序 - Python

c# - 如何解决: "You need to add XmlChoiceIdentifierAttribute to the member." when using XmlAttributeOverrides?

python - NLTK Sentence Tokenizer,自定义句子启动器

python - 为什么 Vim 使用 +python3 编译时运行 python2?

python - Sympy 返回 log 而不是 ln

c# - 如何在我的 WP7 应用程序中序列化委托(delegate)

c++ - 从基类发送和接收序列化类

python - 在 Python 中执行多个列表理解的最有效方法

python - 我如何在 NLTK 中使用书籍功能(例如协调)?

python - 求减IPSet