R语言学习系列12-文本分词_第1页
R语言学习系列12-文本分词_第2页
R语言学习系列12-文本分词_第3页
R语言学习系列12-文本分词_第4页
R语言学习系列12-文本分词_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12.文本分词文本分词,就是对文本进行合理的分割,从而可以比较快捷地获取关键信息。例如,电商平台要想了解更多消费者的心声,就需要对消费者的文本评论数据进行内在信息的数据挖掘分析,而文本分词是文本挖掘的重要步骤。R语言中,对中文分词支持较好的包有RWordseg包和jiebaR包。一、配置Java环境步骤1.下载JDK安装包/technetwork/java/javase/downloads/index.html点JavaDownload图标进入下载界面(JavaSEDevelopmentKit);点AcceptLicenseAgreement,接受许可协议,选择对应系统的版本下载,比如Windowsx64步骤2.安装JDK安装路径(可修改),比如D:\ProgramFiles\Java\jdk1.8.0_101特别注意:第2次出现选择路径时,是选择jre的安装路径,一定不要和前面jdk同一个路径,建议也在放在Java目录下,单放在jre文件夹,比如D:\ProgramFiles\Java\jre1.8.0_101否则将有问题。步骤3.配置环境变量右键计算机->属性->高级系统设置->环境变量,在“环境变量”窗口“系统变量”区域操作:(1)【新建…】,变量名输入:JAVA_HOME变量值输入JDK安装路径:D:\ProgramFiles\Java\jdk1.8.0_101【确定】(2)双击Path,在变量值框末尾加上;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin【确定】(3)【新建…】,变量名输入:CLASSPATH变量值输入:%JAVA_HOME%lib\dt.jar;%JAVA_HOME%\lib\tools.jar【确定】步骤4.测试是否配置成功运行->cmd,回车,输入java–version回车,显示版本号等信息;输入javac–version回车,也显示版本号,如下图所示,则表示配置成功二、RWordseg包1.先安装rJava包(正常命令安装即可)2.安装Rwordseg包命令安装:install.packages("Rwordseg",repos="http://R-Forge.R-")注意:该网址很可能不能正常打开。建议采用本地安装:下载Rwordseg.zip包,R操作界面,程序包->InstallPackage(s)fromlocalfiles…,找到Rwordseg.zip文件,确定安装即可,测试下图则表示安装成功:3.Rwordseg包常用函数insertWords(x,save=TRUE)向词库导入新词汇x,save=TRUE保存新词汇,下次启动仍可用;deleteWords(x)——从词库中删除词汇xgetOption("isNameRecognition")查看人名识别功能的状态,结果为TRUE表明能够识别;segment.options("isNameRecognition"=TRUE)设置人名识别功能的状态;installDict(dictpath=词典路径,dictname="自定义词典名称",dicttype=c("text","scel"),load=TRUE)添加用户自定义的词典;dicttype指定安装词典的类型,text为普通文本格式,scel为搜狗细胞词库;load设置安装后是否自动加载到内存,默认为TRUE;listDict()——查看已安装词典;uninstallDict(removedict=listDict()$Name,remove=TRUE)卸载用户自定义的词典,removedict指定要卸载的词典名称;remove指定是否立即清除词典中的词语;segmentCN(x,nature=TRUE,nosymbol=TRUE)实现中文分词,nature设置是否输出词性,默认不输出;nosymbol默认为TURE,表示不输出标点,只有汉字、英文、数字。注意:目前的词性识别和标点识别容易出错,只作为参考。4.实例>library(rJava)>library(Rwordseg)>segmentCN("雷克萨斯品牌")#导入词汇前的分词[1]"雷""克""萨""斯""品牌">insertWords(c("雷克萨斯"))#导入词汇>segmentCN("雷克萨斯品牌")#导入词汇后的分词[1]"雷克萨斯""品牌">deleteWords(c("雷克萨斯"))#删除词汇>installDict(dictpath="E:/办公资料/R语言/文本分词包/汽车词汇大全.scel",dictname="qiche")#安装自定义的词典2388wordswereloaded!...Newdictionary'qiche'wasinstalled!>listDict()#显示已安装词典NameTypeDes1qiche汽车官方推荐,词库来源于网友上传!Path1d:/ProgramFiles/R/R-3.3.1/library/Rwordseg/dict/qiche.dic>segmentCN("雷克萨斯品牌",nature=TRUE)qichen"雷克萨斯""品牌">uninstallDict(removedict="qiche")#卸载词典2388wordswereremoved!...Thedictionary'qiche'wasuninstalled!三、jiebaR包jiebaR包支持最大概率法、隐马尔可夫模型、索引模型、混合模型4种分词模式,还有词性标注、关键词提取、文本Simhash相似度比较等功能。1.先用函数worker()初始化分词引擎:worker(type="mix",dict=DICTPATH,hmm=HMMPATH,user=USERPATH,idf=IDFPATH,stop_word=STOPPATH,write=T,qmax=20,topn=5,encoding="UTF-8",detect=T,symbol=F,lines=1e+05,output=NULL,bylines=F,user_weight="max")其中,type指定分词引擎类型:mix(混合模型)、mp(支持最大概率法)、hmm(隐马尔可夫模型)、query(索引模型)、tag(词性标注)、simhash(文本simhash相似度比较)、keywords(关键词提取);dict指定词库路径,默认为DICTPATH,可用于除hmm之外的分词引擎;hmm为隐马尔可夫模型的路径,默认为HMMPATH,可用于除mp之外的分词引擎;user为用户自定义词库;idf为逆文本频率指数路径,默认为IDFPATH,可用于simhash和keywords分词引擎;stop_word为停止词词库路径,默认为STOPPATH,可用于simhash、keywords、tagger、segment分词引擎;qmax为词的最大查询长度,默认为20,可用于query分词引擎;topn为关键词个数,默认为5,可用于simhash和keywords分词引擎;symbol指定输出结果是否保留符号,默认为FALSE。2.使用分词运算符<=或函数segment(),进行分词segment(code,jiebar,mod=NULL)qseg<=codeqseq[code]其中,code为中文句子或文本文档路径;jiebar为某一个jiebarR分词引擎;mod可改变默认的分词引擎,其值可为mix、hmm、query、full、level、mp;qseq默认的分词模式为mix,可通过qseg$type修改分词模式。>library(jiebaR)>mixseg=worker()#默认mix分词引擎>mpseg=worker(type="mp")>hmmseg=worker(type="hmm")>word="人们都说桂林山水甲天下">mixseg<=word[1]"人们""都""说""桂林山水"[5]"甲天下">hmmseg<=word[1]"人们""都""说""桂林山""水甲天"[6]"下">segment(word,mixseg)#与前面运算符结果相同[1]"人们""都""说""桂林山水"[5]"甲天下">qseg<=word#用qseg进行分词[1]"人们""都""说""桂林山水"[5]"甲天下">qseg[word][1]"人们""都""说""桂林山水"[5]"甲天下">setwd("E:/办公资料/R语言/R语言学习系列/codes")>segment("ex12_data.txt",mixseg)#对文件进行分词[1]"./ex12_data.segment.2016-08-08_21_59_24.txt">mixseg<="ex12_data.txt"[1]"ex12_data.segment.2016-08-08_22_07_21.txt"注:初始化分词引擎后,例如可用mixseg命令,输出其设置信息,可用$修改其参数,例如mixseg$encoding="unicode";有些参数初始化时设定无法修改,可通过mixseg$PrivateVarible查看。3.词性标注使用tag来进行分词和词性标注,词性标注使用混合模型分词,标注采用和ictclas兼容的标记法。>word="人们都说桂林山水甲天下">tagger=worker("tag")#初始化分词引擎type=“tag”>tagger<=wordndvns"人们""都""说""桂林山水"l"甲天下">qseg$type="tag"#将分词模式改为tag>qseg[word]ndvns"人们""都""说""桂林山水"l"甲天下"注:汉语文本词性标注对照表见附录。4.关键词提取和simhash计算需要将worker中的type参数设置成“keywords”或“simhash”,并使用topn指定关键词的个数。>keys=worker("keywords",topn=1)>keys<=word10.6048"桂林山水">simhash=worker("simhash",topn=2)>simhash<=word$simhash[1]"17867597785105042892"$keyword10.604810.2631"桂林山水""甲天下"主要参考文献:张良均,谢佳标,杨坦,肖刚.R语言与数据挖掘.机械工业出版社,2016.附录:汉语文本词性标注标记对照表:#1.名词

(1个一类,7个二类,5个三类)

名词分为以下子类:

n名词

nr人名

nr1汉语姓氏

nr2汉语名字

nrj日语人名

nrf音译人名

ns地名

nsf音译地名

nt机构团体名

nz其它专名

nl名词性惯用语

ng名词性语素

nw新词

#2.时间词(1个一类,1个二类)

t时间词

tg时间词性语素

#3.处所词(1个一类)

s处所词

#4.方位词(1个一类)

f方位词

#5.动词(1个一类,9个二类)

v动词

vd副动词

vn名动词

vshi动词“是”

vyou动词“有”

vf趋向动词

vx形式动词

vi不及物动词(内动词)

vl动词性惯用语

vg动词性语素

#6.形容词(1个一类,4个二类)

a形容词

ad副形词

an名形词

ag形容词性语素

al形容词性惯用语

#7.区别词(1个一类,2个二类)

b区别词

bl区别词性惯用语

#8.状态词(1个一类)

z状态词

#9.代词(1个一类,4个二类,6个三类)

r代词

rr人称代词

rz指示代词

rzt时间指示代词

rzs处所指示代词

rzv谓词性指示代词

ry疑问代词

ryt时间疑问代词

rys处所疑问代词

ryv谓词性疑问代词

rg代词性语素

#10.数词(1个一类,1个二类)

m数词

mq数量词

#11.量词(1个一类,2个二类)

q量词

qv动量词

qt时量词

#12.副词(1个一类)

d副词

#13.介词(1个一类,2个二类)

p介词

pba介词“把”

pbei介词“被”

#14.连词(1个一类,1个二类)

c连词

cc并列连词

#15.助词(1个一类,15个二类)

u助词

uzhe着

ule了喽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论