r语言的条件语句(R语言产生词库)
在经历了昨天的千里之行死于脚下之后,今天早上重新尝试了一下,JRE居然很顺利的就下载完了,难道真的只是因为大晚上网速不好??,现在小编就来说说关于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
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com