当我将displacy.render(doc,style =“ dep”)的输出保存到svg文件时,出现TypeError:write()参数必须为str,而不是None。

时间:2019-04-17 09:04:25

标签: python spacy

我要保存spaCy的可视化内容,其中包含spaCy在此处提供的代码:https://spacy.io/usage/visualizers

这是我的代码:

nlp = spacy.load("en_core_web_sm")
doc = nlp(u"Autonomous cars shift insurance liability toward manufacturers")
svg = spacy.displacy.render(doc, style="dep")
output_path = Path(os.path.join("./", "sentence.svg"))
output_path.open('w', encoding="utf-8").write(svg)

但是当我执行此代码时,会出现错误:TypeError:write()参数必须为str,而不是None

那么如何保存spacy.displacy.render的输出?如何解决此错误?

1 个答案:

答案 0 :(得分:1)

在像PyCharm这样的IDE中执行时,问题中提供的代码可以正常工作。

但是,displacy.render()在Jupyter笔记本中的工作方式略有不同,请参见文档herehere

  

如果您正在运行Jupyter笔记本,则displaCy将检测到该情况,并以准备好呈现和导出的格式返回标记。

您可以通过在jupyter=False调用中显式设置render()来覆盖此自动检测。