R语言学习系列12-文本分词

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12. 文本分词

文本分词,就是对文本进行合理的分割,从而可以比较快捷地获取关键信息。

例如,电商平台要想了解更多消费者的心声,就需要对消费者的文本评论数据进行内在信息的数据挖掘分析,而文本分词是文本挖掘的重要步骤。

R语言中,对中文分词支持较好的包有RWordseg包和jiebaR包。

一、配置Java环境

步骤1. 下载JDK安装包

/technetwork/java/javase/downloads/index.html

点Java Download图标进入下载界面(Java SE Development Kit);点Accept License Agreement,接受许可协议,选择对应系统的版本下载,比如Windows x64

步骤2. 安装JDK

安装路径(可修改),比如D:\Program Files\Java\jdk1.8.0_101

特别注意:第2次出现选择路径时,是选择jre的安装路径,一定不要和前面jdk同一个路径,建议也在放在Java目录下,单放在jre 文件夹,比如D:\Program Files\Java\jre1.8.0_101 否则将有问题。

步骤3. 配置环境变量

右键计算机->属性->高级系统设置->环境变量,在“环境变量”窗口“系统变量”区域操作:

(1) 【新建…】,变量名输入:JAVA_HOME

变量值输入JDK安装路径:D:\Program Files\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-proje

")

注意:该网址很可能不能正常打开。

建议采用本地安装:

下载Rwordseg.zip包,R操作界面,程序包->Install Package(s) from local files…, 找到Rwordseg.zip文件,确定安装即可,测试下图则表示安装成功:

3. Rwordseg包常用函数

insertWords(x, save=TRUE)

向词库导入新词汇x,save=TRUE保存新词汇,下次启动仍可用;

deleteWords(x)——从词库中删除词汇x

getOption("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") #安装自定义的词典2388 words were loaded! ... New dictionary 'qiche' was installed!

> listDict() #显示已安装词典

Name Type Des

1 qiche 汽车官方推荐,词库来源于网友上传!

Path

1 d:/Program Files/R/R-3.3.1/library/Rwordseg/dict/qi che.dic

> segmentCN("雷克萨斯品牌",nature=TRUE)

qiche n

"雷克萨斯" "品牌"

> uninstallDict(removedict="qiche") #卸载词典

2388 words were removed! ... The dictionary 'qiche' wa

三、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(关键词提

相关文档
最新文档