舆情分析是基于新闻媒体数据的信息抽取、分析,对特定群体的情绪、意图等思维动态的侦测。为了给智能理财等应用服务,目前主要关心的是重大政经新闻、财经证券类新闻,以及股评、论坛、微博等平台的用户发文。
及时、 持续地获取舆情分析依赖于一系列的工作:稳定的爬虫平台,数据仓库管理,基于NLP和机器学习的分析平台,以及日志、统计和报表生成工具等。
这里通过一个实例来展示舆情分析模块的工作模式。更多的功能支持计划在最后给出。
12/29/2016
舆情分析是基于新闻媒体数据的信息抽取、分析,对特定群体的情绪、意图等思维动态的侦测。为了给智能理财等应用服务,目前主要关心的是重大政经新闻、财经证券类新闻,以及股评、论坛、微博等平台的用户发文。
及时、 持续地获取舆情分析依赖于一系列的工作:稳定的爬虫平台,数据仓库管理,基于NLP和机器学习的分析平台,以及日志、统计和报表生成工具等。
这里通过一个实例来展示舆情分析模块的工作模式。更多的功能支持计划在最后给出。
library(mongolite)
# Init connection to local mongod
coll <- mongo(collection = "sina_stock_comments_NLPresult", db = "spider_resultdb",
url = "mongodb://10.253.101.47:27017")
# Records in the sina comments collection
coll$count()
## [1] 93431
out <- coll$find('{"symbol" : "sh600742"}') # 获取某支股票的股评记录
## Found 30 records... Imported 30 records. Simplifying into dataframe...
names(out[1,]) # 集合中每条记录中包含的字段
## [1] "id" "time" "timeString" "symbol" "author" ## [6] "url" "title" "content" "reply" "click" ## [11] "tokens" "topWords" "tops"
out[1,"content"] # 股评的正文
## [1] "[\"明日开盘涨两个点,就是未来三年的大顶了!留字\"]"
out[1,"topWords"] # 第一条记录中的高频词
## [1] "就是,未来三年,顶,[,明日,两个,留字,开盘,],!"
out[1, "tops"]
## [1] "(14910,0.2528193735542444,就是); (1190,0.2518006482539551,未来三年); (39030,0.2518006482539551,顶); (91,0.2516888035785591,[); (93111,0.2516888035785591,明日); (45830,0.25157722362453583,两个); (63198,0.251244059633177,留字); (41464,0.24971968867420125,开盘); (93,0.24961266817746344,]); (65281,0.24939935329509896,!)"
out <- coll$find()[,c("symbol","tokens","tops")]
library(wordcloud2)
load("~/work/shiny-examples/082-word-cloud/tfidf_ALL.RData")
wordcloud2(tw, size = 0.5)
词云的规模
length(tfidfWordMap$keys())
词频的范围
range(tw$freq)
词云的主要作用是抓取出用户最关心的维度,如,资金、板块、公司、题材等,以及股价、均线、换手率、净利润等技术指标
library(wordcloud2)
load("~/work/shiny-examples/082-word-cloud/tfidf_VR.RData")
wordcloud2(tw[tw$freq<100,], size = 0.15) ##去掉高频(没有太多信息量)的词