我正在使用 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 工具互操作,这很棒,因为您可以毫无问题地更改解析器。
我没有这方面的示例代码,但过程应该类似。
关于python - Spacy:保存解析后的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39509230/