python 的斯坦福大学 nlp

2024-03-24

我想做的就是找到任何给定字符串的情绪(积极/消极/中性)。在研究过程中,我遇到了斯坦福 NLP。但遗憾的是它是在 Java 中。关于如何让它适用于 python 有什么想法吗?


Use py-corenlp https://github.com/smilli/py-corenlp/

下载斯坦福核心自然语言处理 http://stanfordnlp.github.io/CoreNLP/

此时(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 https://www.gnu.org/software/wget/,你可能有curl https://curl.haxx.se/:

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

开始server http://stanfordnlp.github.io/CoreNLP/corenlp-server.html

cd stanford-corenlp-4.0.0
java -mx5g -cp "*" edu.stanford.nlp.pipeline.StanfordCoreNLPServer -timeout 10000

Notes:

  1. timeout单位是毫秒,我上面设置为10秒。 如果将巨大的 blob 传递到服务器,则应该增加它。
  2. 更多的选择 https://stanfordnlp.github.io/CoreNLP/corenlp-server.html#command-line-flags,你可以列出它们--help.
  3. -mx5g应该分配足够的memory https://stackoverflow.com/q/14763079/850781,但是YMMV,如果您的盒子动力不足,您可能需要修改该选项。

安装python包

标准套餐

pip install pycorenlp

does not使用Python 3.9,所以你需要做

pip install git+https://github.com/sam-s/py-corenlp.git

(也可以看看官方名单 https://stanfordnlp.github.io/CoreNLP/other-languages.html).

Use it

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': '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

Notes

  1. 您将整个文本传递给服务器,服务器将其分割成句子。它还将句子分割成标记。
  2. 感情归于每个人sentence,不是全文. The mean https://en.wikipedia.org/wiki/Mean sentimentValue跨句子可以用来估计整个文本的情绪。
  3. 一个句子的平均情绪介于Neutral(2和Negative(1)、取值范围为VeryNegative (0) to VeryPositive(4) 看起来相当罕见。
  4. You can stop the server https://stanfordnlp.github.io/CoreNLP/corenlp-server.html#stopping-the-server either by typing Ctrl-C at the terminal you started it from or using the shell command kill $(lsof -ti tcp:9000). 9000 is the default port, you can change it using the -port option when starting the server.
  5. 增加timeout(以毫秒为单位)在服务器或客户端中如果出现超时错误。
  6. sentiment只是one注释器,有还有很多 https://stanfordnlp.github.io/CoreNLP/annotators.html,您可以请求多个,用逗号分隔:'annotators': 'sentiment,lemma'.
  7. 请注意,情绪模型有些特殊(例如,根据你提到的是大卫还是比尔,结果会有所不同 https://github.com/stanfordnlp/CoreNLP/issues/351).

PS。我不敢相信我添加了一个9th答案,但是,我想,我必须这样做,因为现有的答案都没有帮助我(之前的 8 个答案中的一些现已被删除,其他一些已转换为评论)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 的斯坦福大学 nlp 的相关文章

随机推荐

  • 如何在重置表单时运行 JavaScript 代码?

    我知道我们可以将处理程序附加到表单onsubmit 但是我们如何向表单重置事件添加处理程序 通常当点击
  • #1030 - 从存储引擎 Aria 收到错误 176“读取校验和错误的页面”

    创建了新数据库 但由于此错误而无法创建新用户帐户 有谁知道如何解决这一问题 我找不到任何解决方案来解决这个问题 1030 从存储引擎 Aria 收到错误 176 读取校验和错误的页面 就我而言 上述解决方案不起作用 但解决方案类似于建议的
  • guice 辅助注入 + 多重绑定 + 仿制药

    我试图结合 Guice 的这 3 个功能 注入 多重绑定 泛型 我创建了一个生产项目的原型 所以这里是 首先 这是泛型的一个小层次结构 在生产情况下有 N 个实体的层次结构 public interface Type public clas
  • sqlalchemy:在日期时间列上应用类似 SQL 的 date() 函数

    我想按日期分组并计算结果数id使用 sqlalchemy 不幸的是 我的专栏包含日期信息created datetime是一个日期时间 我想使用像这样的sql函数 group by date created datetime 为了按日期分组
  • 即使应用程序被强制停止,也要重新启动服务,并且即使关闭应用程序后,也要在后台继续运行服务如何?

    我正在尝试在后台运行服务 我的应用程序所做的是 当用户选中复选框时 服务启动 未选中时服务停止 这工作得很好 但问题是 当我从任务管理器关闭应用程序时 它也会停止服务 我想要的是即使在关闭任务管理器后仍保持服务运行 那么停止该服务的唯一方法
  • 类型错误:无法在反应中读取 null 的属性“名称”

    我对 React 和 Redux 很陌生 所以在做了大量研究后我无法轻松解决这个错误 我试图以卡片的形式在单独的页面中显示用户的个人资料 但出现错误 TypeError Cannot read property name of null P
  • 我们如何在 Apache Arrow 中存储哈希表?

    我对 Apache Arrow 很陌生 所以这个问题可能是无知的 Apache Arrow 提供了以标准化内存格式存储原始类型 结构 数组等数据结构的功能 我想知道是否可以使用 Apache Arrow 存储更复杂的数据结构 如哈希表 或平
  • javascript date getYear() 在 IE 和 Firefox 之间返回不同的结果,如何解决这个问题?

    显然 javascript日期对象的方法 getYear 在 IE8 和 Firefox3 6 之间返回不同的结果 我的机器上有这两个 不确定其他浏览器或版本 Date d new Date alert d getYear FF3 6 gt
  • 如何在iis 7.5中使Asp.net网站离线

    我有一个 ASP NET 网站 但我想在我的客户尝试访问该网站时显示 正在维护 页面 有谁知道如何做到这一点 如果您在 NET 4 0 应用程序池 IIS 7 0 或 IIS 7 5 中运行应用程序 或者您的网站配置为 ASP NET 4
  • Angular - 周围的条件 div 容器

    在我的 app component html 中 我想根据当前 url 渲染某些 div 容器 例如 1 如果当前 URL 是authenticate 则呈现以下内容 div div
  • nvm ls-remote 命令结果为“N/A”

    我正在尝试使用 nvm 安装 Node 但是当我输入任何版本时它都不可用 当我打字时nvm ls remote我只是得到 不适用 我可以访问互联网 所以我不知道会发生什么 更新维护 nvm sh 的 LJHarb 的评论 LJHarb 表示
  • 声明 @synthesize 时单下划线和双下划线的区别

    在最近的 Xcode 4 3 项目模板中 一些 synthesze声明为 synthesize window window synthesize managedObjectContext managedObjectContext synth
  • 无法推送到 Gitlab 注册表 | Quarkus - 臂架构建

    我目前正在开发 Quarkus 应用程序 因此需要 CI 管道 容器注册表 由于通过 docker 的容器化不起作用 docker 守护进程 特权模式 我想使用 Jib Quarkus 已经支持它 管道中的命令 mvn clean pack
  • 有没有办法动态配置 nginx(或其他快速反向代理)?

    假设我们有几个相同的节点 它们是某个 n 层服务的应用程序服务器 假设我们使用 Apache ZooKeeper 来保存分布式应用程序的所有配置 另外 我们在此应用程序前面有一个 nginx 作为负载均衡器和反向代理 假设我们执行的命令仅更
  • 使用BIOS int 13h访问不同磁头的扇区

    我的磁盘每磁道有 63 个扇区 根据我的观察 我假设 我想使用 int 13h 读取 16 位引导加载程序上的扇区 例如 如果我想读取扇区号 63 我将执行以下操作 mov dl 0x80 Drive number mov dh 0 Thi
  • 如何在d3中增量绘制网格?

    下面是一个 HTML 文件 它将绘制一个 10x10 的浅灰色和深灰色交替的正方形网格 它填充一个名为的二维数组the grid与 0 或 1 然后填充一个名为的一维数组nodes with x y and color 然后画nodes与
  • JUnitCore 停止

    我想停止 销毁正在运行的 JUnitCore 它的启动方式是 JUnitCore run Request aClass ClassToRun Like pleaseStop 在 RunNotifier 上 有任何想法吗 http junit
  • ajax 请求后重新加载 dojo 小部件

    我是这个主题的新手 我有 div 里面有一些 dojo 小部件 我使用 ajax 重新加载这个 div 但是之后我的 dojo 小部件没有显示 我怎样才能让我的浏览器在ajax请求后再次重新加载小部件 我不想重新加载整个页面 我的ajax视
  • Polymer 2.0:通知并反映到属性

    我是这个框架的新手 希望看到一些有用且简单的通知和反映属性属性的示例 请保持示例简单或为您提供的任何代码添加解释 Notify 可以设置为 True False 假设你有parent element and child element 工作
  • python 的斯坦福大学 nlp

    我想做的就是找到任何给定字符串的情绪 积极 消极 中性 在研究过程中 我遇到了斯坦福 NLP 但遗憾的是它是在 Java 中 关于如何让它适用于 python 有什么想法吗 Use py corenlp https github com s