python - Spacy:保存解析后的模型

标签 python serialization nlp pickle spacy

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

相关文章:

python - Python Flask 中用于验证用户 session 的全局函数

java - Gson 注释不适用于我的模型。

java - Apache OpenNLP : java. io.FileInputStream 无法转换为 opennlp.tools.util.InputStreamFactory

python - 最小化在 Python 中对磁盘的读取和写入以进行内存繁重的操作

python - 如何制作嵌套字典并动态追加数据

java - 将序列化的结果分配给变量

Java 序列化/反序列化给出空对象引用

python - 使用 Google Ngrams 训练语言模型

python - 获取 Lambda 演算表达式中的谓词

python - 在python中计算IP校验和