用python序列化语料库
我有一个巨大的论坛数据数据库。我需要从数据库中提取语料库用于NLP目的。提取步骤有参数(例如FTS查询),我想用参数元数据将语料库保存在文件系统中 有些语料库将有几十兆字节大。保存带有元数据的文件的最佳方式是什么,这样我就可以在不加载整个文件的情况下读取元数据 我正在使用以下可能相关的技术:PyQt、Postgres、Python、NLTK 一些注意事项:用python序列化语料库,python,serialization,nltk,corpus,Python,Serialization,Nltk,Corpus,我有一个巨大的论坛数据数据库。我需要从数据库中提取语料库用于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
,这允许您指定所需内容的元素。