连接到专用服务器CoreNLP

2024-05-15 11:13:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找连接到斯坦福CoreNLP服务器的本地实例化所需的python代码。在

我已经成功地连接并与斯坦福的服务器通信,您需要在命令行提示符中输入以下内容:

java -mx4g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 15000

并在python代码中包含nlp = StanfordCoreNLP('http://localhost:9000')。在

我现在有一个在CentOS 6上运行的本地CoreNLP服务器。我使用终端提示符:sudo service corenlp start并得到系统响应CoreNLP server started.,我假设这意味着我的CoreNLP服务器的本地实例化正在监听任何请求。我现在需要知道如何与本地服务器通信。在

有谁能告诉我需要用什么来代替{},以便能够与本地CoreNLP服务器对话?在


Tags: 实例代码命令行服务器nlppipelinejavacp
2条回答

您应该使用Stanford NLP组的Python库stanza

https://github.com/stanfordnlp/stanza

希望在接下来的一个月里,在Python中启动和停止服务器将有更好的文档和支持。在

如@StanfordNLPHelp所述,stanza可以导入并与以下代码一起使用:

from stanza.nlp.corenlp import CoreNLPClient
client = CoreNLPClient(server='http://localhost:9000', default_annotators=['ssplit', 'tokenize', 'lemma', 'pos', 'ner'])
annotated = client.annotate('This is an example document. Here is a second sentence')

这段代码的行为方式与这行代码类似,如果您一直连接到斯坦福的服务器nlp = StanfordCoreNLP('http://localhost:9000'),那么这段代码应该看起来很熟悉。在

我的问题是我无法连接到驻留在基于CentOS的本地操作系统上的专用服务器。在

解决我问题的办法是我错过了“中间人”。我的意思是我错过了连接到专用服务器的过程。我已经正确地设置和运行了专用服务器,并且我有可以连接到服务器的Python代码,但是我没有打开专用服务器的“管道”。在

为此,我只需遵循以下简单步骤:

  1. 下载CoreNLP 3.7.0到Downloads文件夹。在

    a.解压文件夹。请注意提取到的位置

  2. 断开与互联网的连接!!

  3. 在终端窗口中输入以下内容:

    a.cd~/stanford-corenlp-full-2016-10-31(<;存储此文件的位置)

    b.java-mx4g-cp“*”斯坦福大学.pipeline.StanfordCoreNLPServer-端口80-超时15000

  4. 运行Python代码。

*请注意,我已断开与互联网的连接。如果不这样做,java命令将不会连接到您的本地服务器,而是连接到Stanford的服务器

摘要:使用Stanford CoreNLP时,需要三个组件(1)Python脚本中的适当代码行来调用服务器。上面有两个选项(2)一个正常运行的服务器。我知道的两个选项包括斯坦福自己的服务器,或者本地系统上的专用服务器。以及(3)CoreNLp软件,打开从系统到服务器的管道。第三是我被抓的地方。在

*我很想知道是否有办法在不断开互联网的情况下连接到我的本地服务器。看来,如果启用了internet,代码将默认为Stanford的服务器实例。是否可以覆盖此默认值?请随意评论下面的输入在这侧栏。在

编辑:我认为上述信息不正确。根据Stanford CoreNLP's Server page,“Stanford CoreNLP附带一个内置服务器,它只需要CoreNLP依赖项。”我相信我上面的解决方案只是使用这个“内置”服务器,而不是我的本地专用服务器。我还在调查这个问题。我会编辑更多的信息被发现。在

相关问题 更多 >