我正在使用Spacy,它是一个Python自然语言处理库,将原始文本解析为这种更复杂的面向对象格式,更具体地说是依赖树.
上面的操作需要一段时间才能执行:我需要加载一个非常昂贵的模型,然后解析大量的文本.我宁愿在后续执行中节省一些时间,以便在完成初始解析后更快地迭代处理数据.
如何在第一次运行后“保存”这些结果,然后在后续运行中更快地重新加载这些预处理版本?
PICKLE:当尝试使用pickle时,我得到以下错误反序列化Docs / Tokens类:
File "spacy/tokens/token.pyx", line 56, in spacy.tokens.token.Token.__cinit__ (spacy/tokens/token.cpp:3868)
TypeError: __cinit__() takes exactly 3 positional arguments (0 given)
谢谢.
解决方法:
没有pickle解决方案,但我过去写过this script将SpaCy输出存储为XML(NAF格式).
根据您的管道,您还可以尝试以CoNLL格式存储输出(例如CoNLL-U).这使得您的代码可以与许多其他NLP工具互操作,这很棒,因为您可以毫无问题地更改解析器.
我没有这方面的示例代码,但过程应该类似.