4

我正在使用 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)

谢谢。

4

1 回答 1

0

没有 pickle 解决方案,但我过去编写了这个脚本来将 SpaCy 输出存储为 XML(以 NAF 格式)。

根据您的管道,您还可以尝试以 CoNLL 格式存储输出(例如CoNLL-U)。这使您的代码可以与许多其他 NLP 工具互操作,这很棒,因为您可以毫无问题地更改解析器。

我没有这方面的示例代码,但过程应该是相似的。

于 2017-10-29T12:05:18.203 回答