当前位置: 首页 > 知识库问答 >
问题:

Stanford nlp for python

姚钊
2023-03-14

我想做的只是找到任何给定字符串的情绪(积极/消极/中性)。在研究中,我遇到了斯坦福大学的NLP。但可悲的是它在爪哇。对于如何使它适用于Python有什么想法吗?

共有1个答案

宫铭
2023-03-14

当前的最新版本(2020-05-25)是4.0.0:

wget https://nlp.stanford.edu/software/stanford-corenlp-4.0.0.zip https://nlp.stanford.edu/software/stanford-corenlp-4.0.0-models-english.jar

如果没有wget,则可能有curl:

curl https://nlp.stanford.edu/software/stanford-corenlp-4.0.0.zip -O https://nlp.stanford.edu/software/stanford-corenlp-4.0.0-models-english.jar -O

如果其他一切都失败,请使用浏览器;-)

unzip stanford-corenlp-4.0.0.zip
mv stanford-corenlp-4.0.0-models-english.jar stanford-corenlp-4.0.0
cd stanford-corenlp-4.0.0
java -mx5g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -timeout 10000

备注:

    null
pip install pycorenlp
pip install git+https://github.com/sam-s/py-corenlp.git
from pycorenlp import StanfordCoreNLP

nlp = StanfordCoreNLP('http://localhost:9000')
res = nlp.annotate("I love you. I hate him. You are nice. He is dumb",
                   properties={
                       'annotators': 'sentiment',
                       'outputFormat': 'html" target="_blank">json',
                       'timeout': 1000,
                   })
for s in res["sentences"]:
    print("%d: '%s': %s %s" % (
        s["index"],
        " ".join([t["word"] for t in s["tokens"]]),
        s["sentimentValue"], s["sentiment"]))
0: 'I love you .': 3 Positive
1: 'I hate him .': 1 Negative
2: 'You are nice .': 3 Positive
3: 'He is dumb': 1 Negative
  1. 您将整个文本传递给服务器,服务器将其拆分为句子。它还将句子拆分为标记。
  2. 情感归因于每句话,而不是整篇文章。跨句子的meansentimentvalue可以用来估计整个文本的情绪。
  3. 句子的平均情感介于中性(2)和否定(1)之间,范围从非常否定(0)到非常肯定(4)之间,这似乎相当罕见。
  4. 您可以通过在启动服务器的终端键入Ctrl-C或使用shell命令kill$(lsof-ti tcp:9000)来停止服务器。9000是默认端口,您可以在启动服务器时使用-port选项更改它。
  5. 如果出现超时错误,则增加服务器或客户端的超时(以毫秒为单位)。
  6. foment只是一个注释符,还有更多的注释符,您可以请求多个注释符,并用逗号分隔它们:'annotators':'fomentity,lemma'
  7. 要注意情感模型有些特殊(例如,根据您提到的是David还是Bill而得到的结果是不同的)。

ps.我不敢相信我添加了第9个答案,但是,我猜,我不得不这样做,因为现有的答案都没有帮助我(之前的8个答案中的一些现在被删除了,其他的一些被转换成评论)。

 类似资料:

相关问答

相关文章

相关阅读