storm apache_Apache Storm的实时情绪分析示例

storm apache

实时情感分析是指处理自然语言文本(或语音)流以提取主观信息。 琐碎的用例用于构建推荐引擎或查找社交媒体趋势。

我选择了Apache Storm作为实时处理引擎。 Storm非常强大(我们正在生产中使用它),并且非常容易在其之上实现自定义逻辑。

我编写了一个非常简单的项目( 源代码 ),该项目可以实时进行情感分析(使用随机句子作为输入数据)。 范围是获取随机句子作为输入,然后执行一些情感分析。 最终确定当前句子的分数是还是负,并保持结果。

simple_sentiment_analysis_storm_pipeline

实现逻辑如下:

  1. (虚拟喷口)带有随机句子的Feed管道。
  2. (加粗螺栓)阻止任何对计分无用的单词。 创建一个不包含无用词(例如文章)的新句子,并将其传递给下一个组件。
  3. (正计分)获得句子(修饰的)句子并提供正分。
  4. (负计分螺栓)获得句干并提供负分。
  5. (最终计分螺栓)比较正负分数,并确定此句子是正数还是负数。
  6. (持久性螺栓)持久化处理的数据:
    原始句子,修改句子以及最终分数,正负分数
    作为持久性存储,我选择了Apache HBase (仅供参考),它以批处理模式存储事件。 使用Storm(Tick Tuple)的内部触发机制,每1秒触发一次批量持久性(可配置)。 除了HBase之外,我们还可以轻松使用Redis,Cassandra,MongoDB或Elasticsearch(所有这些对于此用例均有效)。

每个词干和计分螺栓都使用内存数据库中的虚拟对象,其中包含可以用来对每个句子进行评分/加法的所有相对单词。

为了在单个节点或集群中运行此示例,可以使用Storm项目Flux 。 整个拓扑管道是使用单个配置文件( topology.yaml )定义的。

示例运行:

Local execution:
storm jar target/sentiment-analysis-storm-0.0.1-SNAPSHOT.jar org.apache.storm.flux.Flux --local src/test/resources/flux/topology.yaml -s 10000Cluster execution:
storm jar target/sentiment-analysis-storm-0.0.1-SNAPSHOT.jar org.apache.storm.flux.Flux --remote src/test/resources/flux/topology.yaml --c nimbus.host=localhost

另外,有一个简单的JUnit测试( SentimentAnalysisTopologyTest ),该测试在本地执行相同的拓扑。

您可以查看自述文件以了解详细信息。 至于先决条件,您可以检查我的最新帖子 ,以安装单个本地HBase实例和带有2个Workers的本地Storm集群。

这是使用Apache Storm进行情感分析的一种非常简单的方法。 我希望有更多的空闲时间来撰写新文章,并提供用于情感分析的切实可行的解决方案。

翻译自: https://www.javacodegeeks.com/2015/12/real-time-sentiment-analysis-example-apache-storm.html

storm apache

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么用python画圆的公式_怎么用python画圆

python中内置了许多第三方库,来帮助它完成各种功能。Turtle库就是Python语言中一个很流行的绘制图像的函数库(推荐学习:Python视频教程)Turtl库用于绘制线、圆、其他形状或者文本这个库被介绍为一个最常用的用来给孩子们介绍编程知识的方法库&#xff0c…

嵌入式java基准测试_Java正则表达式库基准测试– 2015年

嵌入式java基准测试在尝试使Java在计算机语言基准游戏的regexdna挑战中排名第一时,我正在研究Java正则表达式库的性能。 我可以找到的最新网站是2010年的tusker.org 。因此,我决定使用Java Microbenchmarking Harness重做测试并发布结果(破坏…

libgdx和unity_libgdx和Kotlin –类[2D平台原型]

libgdx和unity这篇文章是libgdx和Kotlin文章的后续文章。 我已经决定开发一个简单的2D平台程序的原型(沿着我的早期文章中的Star Assault进行介绍),但是我一直在使用和学习Kotlin,而不是Java。 对于本教程,该项目应处…

java1.7开发环境_在Windows平台搭建Java 1.7开发环境

OS:Windows 7 or laterJava Version: 1.7.x本文具体的演示环境是:Windows 8.1,Java 1.7.0_45。一、安装JDK需要注意的是安装路径中不要出现非西文符号。实际上我一般喜欢在安装路径中也尽可能不出现空格。比如:在我的PC上&#xf…

gluon_带有Gluon Ignite和Dagger的JavaFX中的依赖注入

gluon依赖注入抽象框架Gluon Ignite在几个流行的依赖注入框架(例如Spring,Dagger和Guice)上创建了一个通用抽象。 目前,Gluon 页面仅包含一个示例,该示例使用Gluon Ignite和Google Guice作为依赖注入框架,…

couchbase_具有Couchbase,Java EE和WildFly的CRUD Java应用程序

couchbaseCouchbase是一个开源的NoSQL文档数据库。 它允许访问,索引和查询JSON文档,同时利用集成的分布式缓存来实现高性能数据访问。 开发人员可以使用不同的语言(Java,Go,.NET,Node,PHP&…

java 对象的态_Java面向对象-------多态总结

1.多态:是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:多态性是对象多种表现形式的体现。2.多态作用:1. 消除类型之间的耦合关系2. 可替换性3. 可扩充性4…

netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类

netbeans连接数据库NetBeans IDE是开发各种应用程序的绝佳选择。 具体来说,我每天都使用它来开发和维护Java EE应用程序。 在过去的几个发行版中,不仅Java EE的生产力提高了,而且NetBeans IDE还减少了开发应用程序的时间……使Java EE和NetBe…

jboss fuse 教程_使用JBoss Fuse和OpenShift进行Cloud Native Camel骑行

jboss fuse 教程红帽公司最近发布了一个微服务集成工具包,用于在OpenShift v3的Docker和Kubernetes环境中运行我们的微服务。 为了帮助人们更好地理解这一点,我将Rider Auto应用程序迁移到一组微服务中,该应用程序已经存在了一段时间&#xf…

javaone_JavaOne 2015 –又一年,又向前迈进了一步

javaoneJavaOne 2015 San Francisco于10月25日至29日举行。 我很自豪地说这是我第九个人参加JavaOne,第七个人是演讲者,第四个人是Oracle员工,第三个人是内容委员会成员,第二个人是项目负责人。 我认为对于JavaOne来说&#xff0c…

lnp和mysql分开安装_毕业设计之LNP+DISCUZ +分离的数据库操作

环境介绍:CentOS6.9最小化安装https://nginx.org/download/nginx-1.16.1.tar.gzhttps://www.php.net/distributions/php-7.3.14.tar.gzhttps://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.29.tar.gznginxphp主机:192.168.111.141mysql主机&…

java中hotspot_Java 8中HotSpot选项的改进文档

java中hotspotOracle的HotSpot Java 8实现中引入的一些小但受欢迎的功能之一是在启动器的文档中添加了许多常见的HotSpot Java启动器 ( java )选项/标志。 过去,甚至对某些相当常见的HotSpot JVM选项都感兴趣的开发人员不得不潜在地寻找多个不…

qchart折现图_Qt开发技术:QCharts(二)QCharts折线图介绍、Demo以及代码详解

若该文为原创文章,未经允许不得转载各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究敬请期待…红胖子,来也!介绍了整体框架,开始动手码代码,按照顺…

各类算法思想

暴力枚举法 使用场景注意事项 1.建立一个简洁的搜索模型,变量尽可能少 2.尽可能减少搜索空间 递归与分治法 分治使用最广泛一类算法。采用递归的思想将较大规模的问题分成小问题来求。如果原问题可以分割成k个子问题,并且这些子问题可以重复利用&am…

eclipse neon_在自定义Java 9映像上运行Eclipse Neon

eclipse neon我已经开始修改自定义Java二进制运行时映像文件。 映像文件是打包为运行时平台的模块的配置。 基本上,默认映像包含组成Java运行时的所有内容。 自定义图像可以包含该图像的一些子集。 例如,我创建了一个仅包含“ compact 3”概要文件的映像…

java json注解_返回json用什么注解

返回json用“ResponseBody”注解,“ResponseBody”是作用在方法上的,“ResponseBody”表示该方法的返回结果直接写入“HTTP response body”中。本篇文章将介绍两种示例进行JSON返回注解方式演示。示例1ResponseBody是作用在方法上的,Respons…

java数据结构博客园_常见数据结构的Java实现

单链表的Java实现首先参考wiki上的单链表说明,单链表每个节点包含数据和指向链表中下一个节点的指针或引用。然后看代码import java.lang.*;public class SinglyLinkeList{Node start;public SinnglyLinkedList(){this.startnull;}public void addFront(Object newD…

jboss4 java_带有JBoss工具的OpenShift 3上的Java EE 7应用程序

jboss4 java您可以使用最新版本的JBoss Tools OpenShift插件在Eclipse中创建和管理OpenShift应用程序。 他们要么预先捆绑了最新的 JBoss Developer Studio(9.0.0.GA) ,也可以将它们安装到现有的Eclipse Mars中。 这篇文章将引导您通过JBoss…

javaslang_使用Javaslang的Java 8中的功能数据结构

javaslangJava 8的lambda(λ)使我们能够创建出色的API。 它们极大地提高了语言的表达能力。 Javaslang利用lambda来基于功能模式创建各种新功能。 其中之一是功能性集合库,旨在替代Java的标准集合。 (这只是鸟瞰图,您…

java调用kafka接口发送数据_Java调用Kafka生产者,消费者Api及相关配置说明

本次的记录内容包括:1.Java调用生产者APi流程2.Kafka生产者Api的使用及说明3.Kafka消费者Api的使用及说明4.Kafka消费者自动提交Offset和手动提交Offset5.自定义生产者的拦截器,分区器那么接下来我就带大家熟悉以上Kafka的知识说明1.Java调用生产者APi流…