我有一个巨大的论坛数据数据库。我需要从数据库中提取语料库以用于 NLP 目的。提取步骤有参数(例如 FTS 查询),我想将语料库与参数元数据一起保存在文件系统上。
一些语料库有几十兆字节大。保存文件及其元数据的最佳方法是什么,以便我可以在不加载整个文件的情况下读取元数据。
我正在使用以下可能相关的技术:PyQt、Postgres、Python、NLTK。
一些注意事项:
- 我希望语料库与重量级数据库分离。
- 我不想使用 sqlite,因为元数据的结构非常简单。
- 据我所知,Pickling 不允许部分反序列化。
- 我不想有单独的元数据文件。
- 我有使用 Protocol Buffer 的经验,但同样,这似乎过于严厉。
我想我可以将元数据腌制为字符串,并让文件的第一行代表元数据。这似乎是我认为最简单的方法。也就是说,pickle 格式是否是 ASCII 安全的。
最佳答案
在 NLTK 的术语中,“语料库”是整个集合,可以由多个文件组成。听起来您可以将每个论坛 session (您称为“语料库”)存储到一个单独的文件中,使用允许您在文件开头存储元数据的结构化格式。
NLTK 通常使用 XML 来实现此目的,但开发自己的语料库阅读器并不难,该阅读器读取文件头,然后遵循 PlainTextCorpusReader
或任何最适合您的文件格式的标准阅读器。如果您使用 XML,则还必须扩展 XMLCorpusReader
并提供方法 sents()
、words()
等。
关于python - 使用 python 序列化语料库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11817673/