使用python序列化语料库

时间:2012-08-05 15:30:23

标签: python serialization nltk corpus

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

一些语料库将大到几十兆字节。使用元数据保存文件的最佳方法是什么,这样我就可以在不加载整个文件的情况下读取元数据。

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

一些注意事项:

  1. 我希望语料库与重量级数据库脱节。
  2. 我不想使用sqlite,因为元数据的结构非常简单。
  3. 酸洗不允许从我能说的部分反序列化。
  4. 我不希望有单独的元数据文件。
  5. 我有使用协议缓冲区的经验,但是再次看起来太过沉重了。
  6. 我想我可以将元数据挑选成字符串,并让文件的第一行代表元数据。这似乎是我认为最简单的方式。也就是说,如果pickle格式是ASCII安全的。

2 个答案:

答案 0 :(得分:2)

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

NLTK通常使用XML来达到此目的,但是不难推出自己的语料库读取器,读取文件头然后推迟到PlainTextCorpusReader,或者最适合您文件格式的标准读取器。如果您使用XML,则还必须扩展XMLCorpusReader并提供方法sents()words()等。

答案 1 :(得分:0)

为什么不在语料库文件中添加JSON标头? 或者任何其他类型的结构化格式......我现在可以想到Jekyll帖子中的YAML front matter