Apache Storm的实时情绪分析示例

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

我选择了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

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

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

相关文章

flink sql设置并行度_《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍

前言之所以写这个是因为前段时间自己的项目出现过这样的一个问题:Caused by: akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://flink/user/taskmanager_0#15608456]] after [10000 ms]. Sender[null] sent message of type "org.apache.f…

zabbix3.2监控

自动化运维框架 运维标准流程监控管理容量管理、关联关系、任务管理、自动部署、分布式集群、传统集群、机器管理安全控制灾难管理 自动化监控 监控评估数据采集主动式数据采集: client、公共插件、自定义脚本被动式服务状态: 服务状态、程序状态、用户访问质量第三方信息 公…

fasttext 文本分类_一文综述经典的深度文本分类方法

作者 | 何从庆转载自AI算法之心(ID:AIHeartForYou)笔者整理最近几年比较经典的深度文本分类方法,希望帮助小伙伴们了解深度学习在文本分类中的应用。Convolutional Neural Networks for Sentence Classification (EMNLP 2014)Kim在EMNLP2014提出的TextCNN方法&…

vi/vim 编辑器详解

vi/vim : 强大的编辑器 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi n filename :打开文件,并将光标置于第n行首 vi filename :打开文件,并将光标置于最后一行首 vi /pattern …

实验三+067+冯艳芳

一、实验目的 掌握黑盒测试用例设计方法 二、实验要求 (1)对被测程序进行黑盒测试用例设计 (2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。 (3)对手机上任意一款音乐软件进行黑盒测试实践。…

python越来越慢_为什么Python中的串联速度越来越慢?

为什么在某些情况下,Python 3中的连接似乎比Python 2中的连接慢? 影响最大的串联方法似乎是字节对象的连续串联,从O(n)到O(n?)操作. 我的分析代码大部分在这里: #!/usr/bin/env python from operator import concat from sys import version, version_i…

jvm gc策略_IBM JVM调整– gencon GC策略

jvm gc策略本文将向您详细介绍从Java虚拟机(例如HotSpot或JRockit)迁移到IBM JVM时重要的Java堆空间调整注意事项。 此调整建议基于我为我的一个IT客户端执行的最新故障排除和调整任务。 IBM JVM概述 正如您可能从其他文章中看到的那样,IBM …

芬兰高性能图表控件-免费试用并提供技术支持

图表控件对于很多技术研发人员、工程设计师来说肯定不陌生,但市面上已有的图表控件产品大多功能单一、性能也不稳定,很难满足不同人群在不同场合的使用需求。为此,专注于开发高性能和最先进的数据可视化工具公司Arction则给出了完美的解决方案…

linux open函数_Linux驱动开发 / 字符设备驱动内幕 (1)

哈喽,我是老吴,继续记录我的学习心得。一、保持专注的几个技巧将最重要的事放在早上做。待在无干扰环境下,比如图书馆。意识到刚坐下开始投入工作前,有点负面小情绪是特别正常的现象。让“开心一刻”成为计划的一部分。拥有合情合…

github删除文件_github 仓库中删除历史大文件

问题如果git中提交了大文件,而且保存到了版本库中,那在下载或者克隆git包的时候,速度会非常慢。再加上github在国内访问本来就很慢,可能会导致包无法下载(克隆)。为了提升下载(克隆)速度,可以永久的删除这些文件(包括该…

linux plc编程软件,基于Linux平台的可编程控制器软PLC设计

实例下面以一个简单的对3并口通道循环控制为例,说明软PLC 的工作流程。(1)梯形图编程。从软PLC 主界面进入后,启动梯形图编程,调用梯形图编程的主程序。梯形图编程共需要调用梯形图界面模块、关闭模块、IO 模块,这些均在配置文件中…

insert into语句_入门MySQL——DML语句篇

前言:在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了。本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作。这里说明下DDL与DML语句的分类,可能有的同学还不太清楚。DDL(Data Definitio…

linux不重启换root密码是什么原因,在Linux下修改和重置root密码的方法(超简单)

刚开始接触linux的人,忘记了root密码可能会不知所措。想找回自己的root密码,但是又不知道方法。其实,只需要简单的几步就可以重置自己的root密码了(找回密码我也不会)1.开机HcQBEm上敲击e,然后编辑选项2.在linux16这一行&#xff…

SCP-bzoj-1019

项目编号:bzoj-1019 项目等级:Safe 项目描述: 戳这里 特殊收容措施: 对于一个hanoi,知道了各种移动操作的优先级,也就确定了方案。可以证明对于盘子数为N的hanoi,任意移动方案都等价于将数目为N…

一键分享手机代码_通过广告路由器指定手机浏览器自动认证WIFI上网 附代码

说说应用过程,下面用手机QQ浏览器为例。在路由器搭建免费WIFI,用户连接免费WIFI后,使用手机QQ浏览器点击打开任意网页即可自动通过认证并上网,有的手机会自动打开认证网页,如果使用其他手机浏览器则自动跳转到引导认证…

netbeans7.4_NetBeans 7.1:创建自定义提示

netbeans7.4我已经在帖子中对我最喜欢的NetBeans提示进行了讨论,这些帖子中包含用于现代化Java代码的七个NetBeans提示和七个不可或缺的NetBeans Java提示 。 这两个帖子中涉及的十四个提示仅占NetBeans支持的“即开即用”提示总数的一小部分。 但是,由于…

linux uboot启动流程分析,uboot启动流程分析

uboot版本为NXP维护的2016.03版本下载地址为http://git.freescale.com/git/...分析uboot的启动流程,需要编译一下uboot,然后打开链接脚本u-boot.lds在u-boot.lds中1 OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf…

JavaOne 2015 –第二十版十大收获

我们刚刚在旧金山有了JavaOne的第二十版。 这将是我自2004年以来第十二次参加不间断的系列活动。最大的教训是什么,可以揭示Java的未来。 模块化斗争 自从Java 2007首次提到模块以来,已经花费了将近9年的时间,或者说,直到2016年9…

IOS--文件管理NSFileManager

iOS的沙盒机制。应用仅仅能訪问自己应用文件夹下的文件。iOS不像android。没有SD 卡概念。不能直接訪问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每一个沙盒含有3个文件 夹:Docum…

linux修改文件内容_详解5种实用方法---Linux系统清空或删除大文件内容

概述有时我们在处理Linux终端中的文件时,可能要去清除文件的内容,而无需使用任何Linux命令行编辑器打开它。怎么才能实现呢?下面通过几种不同的方式教大家清空文件内容。1.通过重定向到空来清空文件内容使用shell重定向null(不存在的对象)清空…