专业编程基础技术教程

网站首页 > 基础教程 正文

运营干货:词云分析解决玩家诉求(词云步骤)

ccvgpt 2025-03-25 11:23:20 基础教程 15 ℃

点击分享本文:

2015-01-09 | 标签:游戏运营玩家诉求词云分析| 来源:gamedatas

运营干货:词云分析解决玩家诉求(词云步骤)

文/Fish

在实际游戏运营工作中,游戏从业人员除了关注游戏体验,游戏各系统设计,运营活动,游戏数据表现等等以外,玩家反馈及玩家诉求也是各位同行重点关注的内容。时下这种客服机制难以支撑运营策划人员了解玩家诉求的需求;由于玩家抵触性,运营成本受限,地域受限,时间受限等等原因,运营策划人员也难以通过自身主动了解来满足这一需求。Fish旨在介绍一种简便的方法(词云分析)有效的解决这一困境,不单单让玩家体验游戏,也能更好的让玩家诉求成为游戏版本策划,运营活动策划的考虑因素。

问题背景:从玩家评论中,获得玩家诉求中的关键词,进而了解玩家情感,玩家需求

数据获取:借助Python强大的爬虫模块(urllib2&Tornado),抓取9游上海岛奇兵(http://www.9game.cn/hdqb/)的玩家评论数据(1000条)。

简单代码如下:

#!/usr/bin/python

#coding:utf-8

import tornado.httpclient

import re

import pandas as pd

import sys

reload(sys)

sys.setdefaultencoding(‘utf8′)

comment_utf8 =

url=’http://www.9game.cn/tpl/pc/common/commentajax.html?count=1000&total=10003&gameid=539038&platform_id=2&offset=20&isAjax=1′

http_header = {‘User-Agent':’Chrome’}

http_request = tornado.httpclient.HTTPRequest(url=url,method=’GET’,headers=http_header)

http_client = tornado.httpclient.HTTPClient

http_response = http_client.fetch(http_request)

body = http_response.body

commentId=re.compile(‘

  • ’).findall(body)

    comment_time=re.compile(‘(.*)<\/span>’).findall(body)

    comment=re.compile(‘

    (.*)<\/p>’).findall(body)

    for item in comment:

    item.decode(‘utf8′)

    comment_utf8.append(item)

    result = pd.DataFrame([commentId,comment_time,comment]).T

    print result

    result.to_csv(r’C:\Users\Administrator\Desktop\fish\short.csv’)

    数据简单描述

    利用R强大的描述统计能力,获得近期玩家评论趋势

    由上图可见,海岛奇兵的评论数每天保持在20以上,说明这款游戏在上线将近一年之后仍保持这玩家高关注度。

    分词分析&词云分析

    借助强大的数据分析语言R,及其丰富的统计分析工具包,进行文本分词及词云分析,此处会使用到Rwordseg包及wordcloud包。安装这两个包还是挺麻烦的,如果有兴趣的同学遇到什么麻烦可以加入Gamedatas游戏分析群(90342017)咨询Fish。

    部分R代码如下:

    f_cut <- function(x) {

    library(Rwordseg)

    unlist(strsplit(segmentCN(x, nature = T), ” “))

    }

    word_cut <- function(x, n = 1) {

    x <- gsub(“[a-z]|\\.”, “”, x)

    x[nchar(x) > n]

    }

    comment.words <- lapply(comment, f_cut)

    words <- lapply(comment.words, word_cut, 1)

    # 去掉words词汇量为0的文本

    cw.len <- unlist(lapply(words, length))

    short2 <- shortcw.len> 0, ]

    words2 <- wordscw.len> 0]

    cw.len <- cw.lencw.len> 0] #8028

    # 词频统计

    all.words <- unlist(words2)

    freq <- sort(table(all.words), decreasing = T)

    words.name <- names(freq)

    words.freq <- freq

    sum(words.freq[1:50])/sum(words.freq)

    # 词长至少为1

    w3 <- all.wordsncharall.words> 1]

    f3 <- sort(table(w3), decreasing = T)

    w3.name <- names(f3)

    w3.freq <- f3

    par(mar = c(0, 0, 3, 0), bg = “black”)

    wordcloud(words.name, words.freq, scale = c(5, 1.5), min.freq = 1, max.words = 100, colors = rainbow(130))

    title(main = “评论出现频率最高的100个词汇”, col.main = “red”)

    结果如图:

    从词云分析的结果中可以看出,“好玩”这一词汇在玩家评论中曝光程度最高,达到152次,在出现频数最高的词汇中,褒义词居多。而“流量”,“Wifi”这种词汇的出现也不容忽视,其频数也分别达到了16和12次,侧面反映了玩家在体验过程中存在受网络因素的影响。“2275866599”这一词汇的出现,也反映了在实际评论信息中存在这水军,噪声信息这一因素,可以在处理数据时做剔除处理 。

    就此,这样一个分析玩家诉求的思路就阐述完毕了,希望能在实际工作中帮助到运营策划人员了解玩家诉求,在接下来的文章中,Fish将会结合本次词云分析的结果,重点讲述关联规则的一些数据分析方法,敬请期待。

  • 最近发表
    标签列表