游戏数据文本分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文本分析流程
一.文本预处理(Java)
聊天记录-数据格式:
目的:
提取聊天文本,删除时间行和空隔行。
思路:
startsWith("2014"),就是判断一行从哪一个字符开始
利用java读文本,一行行的读入,一行行的判断。不符合要求的的删除,符合要求的重新写到一个文本。
Java中提供了一个BufferedReader类,此类就是一行行的读文本,每读入一行把其赋值给一个字符串,然后判断字符串是否符合要求。符合要求的,我们写入到一个新文本,不符合要求,不写入到新文本。
最后,所有符合要求的行都写入到新文本。这就对文本进行第一步文本预处理。
核心代码:
File Writefile = new File("D:\\wang21.txt");
// 新建文本,存储符合条件的行
BufferedReader bufferedReader = new BufferedReader(read);
//定义缓冲阅读器String lineTxt = null;
// 定义lineTxt,用来存储每次读到的一行while ((lineTxt = bufferedReader.readLine()) != null)
// bufferedReader一行行的读文件,while()判断文档是否读完if (!(lineTxt.startsWith("2014")) && !(lineTxt.equals("")))
// if判断条件:如果一行不是以2014起使,不是空行。lineTxt = lineTxt + "\r\n";
//"\r\n代表换行,输出到新建的文本中,然后换行处理结果:
二.文本分词
https:///fxsjy/jieba
插件:"结巴"中文分词。
这里用的是Python版结巴分析插件。
首先安装Python,根据Python版本,安装结巴分词包。
结巴分词:
∙支持三种分词模式:
o精确模式,试图将句子最精确地切开,适合文本分析;
o全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
o搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
∙支持繁体分词
支持自定义词典。
代码示例:
import jieba
【单句模式】
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print "Full Mode:", "/ ".join(seg_list) # 全模式
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print "Default Mode:", "/ ".join(seg_list) # 精确模式
【精确模式】: 我/ 来到/ 北京/ 清华大学
seg_list = jieba.cut("他来到了网易杭研大厦") # 默认是精确模式
print ", ".join(seg_list)
【新词识别】:他, 来到, 了, 网易, 杭研, 大厦 (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print ", ".join(seg_list)
【搜索引擎模式】:小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造
【文本格式】
【分词结果】
Python代码:
a = open("/root/Desktop/wang.txt", 'rb').read() //指定路径读文本
seg_list = jieba.cut('a',cut_all=False) //调用jieba分词包,cut_all=False是精确模式print "Default Mode:", "/ ".join(seg_list) //终端打印数据分词结果。