运用R软件中的Rwordseg完成中文分词
n
uj
n
p
b
uj
v
v
d
p
v
c
p
d
"技术"
"的" "作用"
"从" "短期"
"的"
"来"
"看" "往往"
"被" "高估" "但是"
"从" "长期"
v
v
d
d
a
p
v
v
uj
v
v
n
f
m
"来"
"看"
"又" "往往" "容易"
"被" "低估"
"转"
"的" "认为"
"有" "道理" "最后" "一次"
v
v
"思考" "思考"
Rwordseg包使用rJava中文分词工具Ansj来实现,Ansj是基于中科院ictlas中文分词算法的开源工具。Rwordseg包依赖于rJava和java环境,所以安装前需要安装好JRE。在导入该包是需要编辑java环境变量,可以在R中直接设定当前JRE环境变量:
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre7')
#设置JRE的安装目录
library(rJava)
library(Rwordseg)
library(Rwordseg)
weibo <- "技术的作用从短期的来看往往被高估,但是从长期来看,又往往容易被低估,转的,认为有道理最后一次,思考,思考"
weiboseg <-
segmentCN(weibo,nature=T)
weiboseg
"技术"
"思考" "思考"
在实际工作中,我们经常需要进行一些集合运算,在R中怎么实现呢?当然用不着写for或者while循环那么复杂了,R已经为我们提供了非常强大的集合运算系列函数,下面就简单的介绍一下这些函数(假设A,B,C为三个集合):
#首先对集合A,B,C赋值
> A<-1:10
> B<-seq(5,15,2)
> C<-1:5
> #求A和B的并集
> union(A,B)
[1] 1 2 3 4 5 6 7 8 9 10 11 13 15
> #求A和B的交集
> intersect(A,B)
[1] 5 7 9
> #求A-B
> setdiff(A,B)
[1]1 2 3 4 6 8 10
> #求B-A
> setdiff(B,A)
[1] 11 13 15
> #检验集合A,B是否相同
> setequal(A,B)
[1] FALSE
> #检验元素12是否属于集合C
> is.element(12,C)
[1] FALSE
> #检验集合A是否包含C
> all(C%in%A)
[1] TRUE
> all(C%in%B)
[1] FALSE