我已经与Spacy NLP在木星笔记本中练习了一段时间,并创建了一些脚本,以满足我的需要。
我也有一个网站,我已经创建(内置的反应)。我需要能够根据用户在我的网站上选择的内容将数据传递给Spacy脚本,然后当Spacy NLP脚本完成其传递的数据时,需要再次从Spacy NLP脚本接收结果。
我已经寻找了相当长的时间(并且对于使用Python来说还是个新手),我根本不知道如何从我的网站上使用/访问Python Spacy脚本,也完全不知道如何从脚本中获得信息。
有人能建议怎么做吗?如果这是个愚蠢的问题,请提前道歉。非常感谢。
发布于 2017-11-10 16:48:56
当然,这取决于您到底想要做什么,以及您希望spaCy提取什么。在大多数情况下,您至少需要一个API端点,应用程序可以将文本字符串发布到其中,并将文本解析为spaCy Doc
,并返回应用程序所需的任何内容。例如,如果需要提取实体,端点将执行如下操作:
def extract_entities(text):
doc = nlp(text)
entities = [{'start': ent.start_char, 'end': ent.end_char, 'label': ent.label_}
for ent in doc.ents]
return {'entities': entities}
然后,您的React应用程序就可以这样做:
fetch('http://your-api:8080/extract_entities', {
method: 'POST',
headers: { 'Accept': 'application/json', 'Content-Type': 'application/json' },
body: JSON.stringify({ text })
})
.then(res => res.json())
.then(json => this.setState({ entities: json.entities }))
您还需要确保预加载所使用的模型。特别是当您使用spaCy v1.x时,模型相当大,内存也很密集-但无论如何,您肯定不希望在每个请求或会话上加载模型。
一些额外资源:
flask
或hug
(我个人最喜欢的-需要Python3)。spacy-services
回购,其中包括斯佩西的displaCy可视化器的REST服务(不幸的是,它现在有点过时了--但很快就会修复!)spacy_api
项目--这是由spaCy社区的人开发的一个很好的扩展。它帮助您在一个单独的专用过程中加载模型。但是,如果您是Python新手,那么这可能会有一些需要立即深入研究的地方--您最好从一种非常简单的方法开始,然后在应用程序运行后再使用它。https://stackoverflow.com/questions/46990884
复制相似问题