在经历了昨天的千里之行死于脚下之后,今天早上重新尝试了一下,JRE居然很顺利的就下载完了,难道真的只是因为大晚上网速不好??,现在小编就来说说关于r语言的条件语句?下面内容希望能帮助到你,我们来一起看看吧!

r语言的条件语句(R语言产生词库)

r语言的条件语句

在经历了昨天的千里之行死于脚下之后,今天早上重新尝试了一下,JRE居然很顺利的就下载完了,难道真的只是因为大晚上网速不好??

反正不管咋样,分词包能装上就是好事,总算可以开工了

#已做完安装JDK、JRE等等步骤的情况下,装Rwordseg包

library("rJava")

#从本地加载Rwordseg的zip

library("Rwordseg")

#此处显示版本号的话应该就是OK了

所谓工欲善其事,必先利其器,刚到手的工具还不太熟,先小小地实验一下

上边的字请不要纠结意思,因为都是随便擦键盘擦出来的,目前来看,这个segmentCN函数大体上还是挺可以的,输出结果里至少告诉了咱两个重要事实:

1、 输入值是向量时,输出结果的形式是列表(那估计输入的维度到向量也就到顶了)

2、 标点、空格和一些乱七八糟的符号在分词过程中会被全部去掉,这个灰常好,我要的就是这样

既然能用,那就开始吧,上数据

setwd("D:/")

Table <- read.csv("BOM.csv", stringsAsFactors = FALSE)

str(Table)

length(Table$Description.Component)

要做分词的目标列是这个表里头的Description.Component,由于里头有大量重复值,所以容我先把它拎出来去个重

Base <- unique(Table$Description.Component)

str(Base)

虽然这些描述的不规则程度叫人有种不祥的预感,但姑且先试,毕竟看到效果才方便继续做优化

test <- unlist(segmentCN(Base[1:10]))

效果看起来总体上过得去,但肯定达不到满分,确定可以扣分的地方用黄色笔划出来了几个,看来,主要矛盾还是集中在数字和字母夹杂的地方

那如果,咱想通过描述来做的后续分析主要是依靠文字来判断,当中涉及的所有字母、单词、数字都是可以去掉的呢?

翻找了N个函数的帮助文件后,我很happy happy的通过其中某个链接找到了这样一个页面——正则表达式,虽说不是全篇都能看懂,但目光锐利如我还是抠到了对自己最有用的部分,见下方截图

正则表达式[[:alnum:]]可以代表0-9、A-Z和a-z这些东西的总集合,而如果一个字符串中出现多次都需要进行替换的话,后边可以添个 号(看help里是这么讲滴)

要从一串字符里去掉指定的东西,这个操作实际上用的是替换函数gsub,参数perl = TRUE表示的是替换内容为正则表达式

嗯,这个可以有,试得差不多了可以上全部了

#中文分词器,去掉其中所有符号、空格

Temp1 <- unlist(segmentCN(Base))

#去掉所有字母和数字

Temp2 <- gsub("[[:alnum:]] ", "", Temp1, perl = TRUE)

#去掉其中空值并去重

Dictionary <- unique(Temp2[Temp2 != ""])

检查一下内容,没其他问题就可以存档了

write.table(file = "Dictionary.txt", Dictionary)

走出了美美的第一步,Yeah