用大数据实时分析航空公司的客户满意度

大数据分析是时下最流行的话题,很多人认为这不过是IT厂商的炒作,但实际上大数据分析应用得当的话,确实能以极低的成本交付极高的商业价值。

下面介绍一个航空业利用大数据实时分析客户满意度的案例。剑桥航空研究机构的总裁Jeffrey Breen利用R语言分析了消费者在Twitter上公开表达的,对几家主要美国航空公司的态度倾向。详见PPT:


在PPT的27页,Breen通过Twitter分析出的航空公司用户满意度与美国用户满意度指数(ACSI)的调查结果非常接近。

这个结果的惊人之处在于:Breen使用的是免费的R语言和公开的Twitter数据,而ACSI则是费时费力,且成本很高的市场调查研究项目,而且社会化数据分析一个人就可以完成。更重要的是,社会化数据分析相比传统市场调查最大的优势是其实时性。

 

ACSI给出的美国各行业客户满意度排行榜:

output002

航空业客户满意度看上去还不错,比银行、服装、汽车行业排名高,但下表可以看出比酒店、餐饮和超市等行业的要低:

output003

航空业Twitter文本数据分析流程:

twitter文本分析流程

 

Twitter数据分析结果与ACSI调查结果的对比(基本一致,西南航空遥遥领先其他航空公司):

twitter分析结果与ACSI结果的对比

进行Twitter信息倾向性判断(正面还是负面)的R语言代码实例:

score.sentiment = function(sentences, pos.words, neg.words,. progress=’none’)

{

require(plyr)

require(stringr)

# we got a vector of sentences. Plyr will handle a list or a vector as an “l” for us

# we want a simple array of scores back, so we use “l” + “a” + “ply” = laply:

scores= laply(sentences, function(sentence, pos.words, neg.words) {

# clean up sentences with R’s regex-driven global substitute, gsub( ):

Sentence = gsub(‘[[:punct:]]’,”,sentence)

Sentence = gsub(‘[[:cntrl:]]’,”,sentence)

Sentence = gsub(‘\\d+’,”,sentence)

# and convert to lowercase:

Sentence = tolower(sentence)

# split into words. str_split is in the stringr package

word.list = str_split(sentence,’\\s+’)

# sometimes a list() is one level of hierarchy too much

Words = unlist(word.list)

# compare our words to the dictionaries of positive & negative terms

pos.matches = match(words, pos.words)

neg.matches = match(words, neg.words)

# match() returns the position of the matched term or NA

# we just want a TRUE/FALSE:

pos.matches = !is.na(pos.matches)

neg.matches = !is.na(neg.matches)

# and conveniently enough, TRUE/FALSE will be treated as 1/0 by sum():

Score = sum(pos.matches) – sum(neg.matches)

return(score)

},pos.words, neg.words,. progress=.progress)

scores.df = data.frame(score=scores, text=sentences)

return(scores.df)}
Via:IT经理世界

感谢支持199IT
我们致力为中国互联网研究和咨询及IT行业数据专业人员和决策者提供一个数据共享平台。

要继续访问我们的网站,只需关闭您的广告拦截器并刷新页面。
滚动到顶部