目录
简介
原神是一款流行的游戏,自公测以来,游戏内的玩家数量和现金流屡创新高,我也是玩家之一。为了找出玩家最关心的因素是什么,我下载了玩家关于“’原神’的优势是什么?”的回答,数据源来自知乎。我将通过 Python 从文本中提取数据并通过 R 将结果可视化。

Python流程步骤
从文本文件导入数据
with open('data/advantage.txt',encoding="utf8") as f:
text=f.read()
从反馈中提取关键词
您可以在keywords.text 中添加关键字。如果要在 Rmarkdown 中运行,由于长度限制,您必须将关键字拆分为 2 个文本。您可以一瞥下面的所有关键字。
# Following code for Python
with open('data/keywords.txt',encoding="utf8") as f:
keywords=f.read().split()
# Following code for R only
with open('data/keywords1.txt',encoding="utf8") as f:
keywords1=f.read().split()
with open('data/keywords2.txt',encoding="utf8") as f:
keywords2=f.read().split()
count=0
for i in keywords1:
print("\"",i,"\"",",",sep="",end="\t")
count+=1
if count>9:
count=0
print("\n")
for i in keywords2:
print("\"",i,"\"",",",sep="",end="\t")
count+=1
if count>9:
count=0
print("\n")

统计关键字出现的次数
这个对关键字计数的功能是通过 Python 中的 re 包来实现的。我将结果存储在 Pandas 的 DataFrame 中。它可以让我轻松地将输出转换为 csv 文件以供 R 分析。
import re
import pandas
DataTable = pandas.DataFrame(columns=['keywords','num'])
count=0
for i in range(len(keywords)):
temp=re.findall(r'{}'.format(keywords[i]),text)
DataTable.loc[i]=[keywords[i], len(temp)]
Python输出
由于我们的结果有中文单词,您需要将保存设置更改为“utf_8_sig”。
DataTable.to_csv("result.csv",encoding="utf_8_sig",index=False)
用 R 语言可视化结果
安装包和导入数据
感谢 python,现在我们可以使用 R 使我们的数据变得生动。在我看来,通过 WordCloud 图形可视化结果是一个好主意。首先,我们可以通过 DT 包查看我们的数据。
packages=c('readr','tidytext','widyr','wordcloud','DT','textplot',
'tidygraph','ggraph','tidyverse')
for (p in packages){
if(!require(p,character.only=T)){
install.packages(p)
}
library(p,character.only = T)
}
keywords=read_csv("data/result.csv")
DT::datatable(keywords)
Cloudwords词云图
您可以从下图中观察结果。字数越大,该词出现的频率越高。因此,您可以知道玩家在知乎中提到的更多内容,以解释为什么 Genshin Impact 是一款好游戏/为什么他们喜欢这款游戏。
wordcloud(keywords$keywords,
keywords$num)

不足与改进
上一篇
下一篇
由于这次我没有太多时间做这个项目,我只从知乎平台收集数据。因此,这个结果不能代表 原神中的所有玩家。将来,我可以用 Python 编写一个增量网络爬虫,以获取有关每个通信平台的更多信息。所以我可以从我的观察中得出一个更令人信服的结果。