用python序列化语料库

用python序列化语料库,python,serialization,nltk,corpus,Python,Serialization,Nltk,Corpus,我有一个巨大的论坛数据数据库。我需要从数据库中提取语料库用于NLP目的。提取步骤有参数(例如FTS查询),我想用参数元数据将语料库保存在文件系统中 有些语料库将有几十兆字节大。保存带有元数据的文件的最佳方式是什么,这样我就可以在不加载整个文件的情况下读取元数据 我正在使用以下可能相关的技术:PyQt、Postgres、Python、NLTK 一些注意事项: 我希望语料库与重量级数据库分离 我不喜欢使用sqlite,因为元数据的结构非常简单 据我所知,酸洗不允许部分非序列化 我不希望有一个单独的元

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

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

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

一些注意事项:

  • 我希望语料库与重量级数据库分离
  • 我不喜欢使用sqlite,因为元数据的结构非常简单
  • 据我所知,酸洗不允许部分非序列化
  • 我不希望有一个单独的元数据文件
  • 我有使用协议缓冲区的经验,但它似乎过于繁重

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

    为什么不向语料库文件添加JSON头?
    或任何其他类型的结构化格式。。。我现在可以想到Jekyll的文章。

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


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

    是的,带有默认(0)协议的pickle格式是ASCII安全的。文件路径中是否有太多元数据要存储?目前没有,但这不是一个经得起未来考验的解决方案。这可能是我想要的。我将尝试查找XMLCorpusReader的文档。请查看模块
    xmldocs
    nltk/corpus/reader/xmldocs.py
    )的文档。类
    XMLCorpusReader
    可以将所有节点内容作为文本提供给您;但是您的方法可以在内部使用
    xmlcoppusview
    ,这允许您指定所需内容的元素。