关闭

tm中使用Perl正则表达式秒杀stopwords

标签: text miningtmperl正则表达式stopwords
863人阅读 评论(0) 收藏 举报
分类:

文本挖掘tm包中提供的removeWords函数可以清除stopwords,比如wordcloud包wordcloud函数说明档中的例子:

data(crude)
crude <- tm_map(crude, removePunctuation)
crude <- tm_map(crude, function(x)removeWords(x,stopwords()))

但如果文献内容很长,10M吧,运行时间会相当长。在应用tm_map之前使用Perl正则表达式能快速解决这个问题。

命令可以整合到R语句中,ifile 是要清理stopwords的文件:

library('tm')
stw <- paste(stopwords(), collapse = "|")
cmd <- paste0('/usr/bin/perl -p -i -e "s/\\b(([^a-z]+)|', stw, ')\\b/ /gi" ', ifile)
system(cmd)

10M的文件一般1~2秒内就可以清理完成,秒杀。

清理完成后再制作词料库只需要去掉标点符号就可以,这一步tm提供的函数速度不慢,不用改:

crude <- paste(readLines(ifile), collapse = " ")
crude <- VCorpus(VectorSource(crude), readerControl = list(reader=readPlain, language="en", load=TRUE))
crude <- tm_map(crude, removePunctuation)




0
0
查看评论

R语言:词云图

这是当时在琢磨文本挖掘时的小技术,贴出来共享一下
  • qq_25684755
  • qq_25684755
  • 2015-06-07 09:09
  • 4609

Perl正则表达式讲解,真的非常详细

 
  • eroswang
  • eroswang
  • 2007-10-06 00:04
  • 10770

精通正则表达式二:Perl中正则表达式的基本应用

本书的第二章主要讲的是在Perl语言中运用正则表达式,虽然以前没有接触过Perl语言,但作者的前提就是假设读者不会Perl语言,所以对于有一定编程基础的人来说读起来没有太大困难,关于Perl语言的简单入门,除了书上讲的,可以参考这篇:http://blog.csdn.net/zhangjikuan/...
  • StriverLi
  • StriverLi
  • 2017-07-03 16:45
  • 531

Perl入门(四)Perl的正则表达式

正则表达式是Perl的
  • sunshoupo211
  • sunshoupo211
  • 2014-06-17 16:57
  • 6401

perl调用命令包含正则表达式,要注意转义符。[经验,还未证实]

sed -i 's/\.//g' file为什么在perl中,转义要用双\? 猜测:sed命令转义一次,perl转义一次?`sed -i 's/\\.//g' file`system("sed -i \'s/\\.//g\' file&qu...
  • u011729865
  • u011729865
  • 2016-10-08 11:42
  • 1145

Perl语言入门笔记 第八章 用正则表达式进行匹配

#用正则表达式进行匹配 =pod m// = // = m%%,m||,m<>,m{},m(),匹配的时候根据需要写自己的定界符,像qw省略双引号定界符一样 模式匹配修饰符: 跟在定界符后面的,//x,x就是模式匹配修饰符 i 忽略大小写 s 匹配任意字符 if(/Barn...
  • q1241580040
  • q1241580040
  • 2015-09-21 01:44
  • 2207

Perl 正则表达式替换

文本处理中经常需要将字符串中的某些字符替换后再进行处理,以下是新发现的非常方便的方法,充分发挥了Perl正则表达式的威力。 $str = "this is a testing"; $str =~ s/(/w+) (/w+)/$2 $1/; print $str; --...
  • USTBHacker
  • USTBHacker
  • 2010-11-13 18:25
  • 1293

Perl正则表达式小结~张润萌

perl正则表达式 一、简介 二、匹配操作符 三、模式中的特殊字符 1、字符 2、字符 []和[^] 3、字符 +,*和? 4、转义字符 5、匹配任意字母或数字 6、锚模式 7、模式中的变量替换 8、字符范围转义前缀 9、匹配任意字符 10、匹配指定数目的字符 11、指定选项 12、模式的部分重用 ...
  • zrm2012
  • zrm2012
  • 2016-07-13 17:53
  • 1408

Perl——正则表达式(四) 查找替换s///

一. 介绍 使用 s/regex/replacement/modifiers
  • abelabel
  • abelabel
  • 2014-10-29 17:40
  • 5269

perl-捕获变量

http://weihe6666.iteye.com/blog/980293 1.捕获变量  捕获的功能指的是:把圆括号中模式所匹配的部分字符串暂时记忆下来的能力。如果有一对以上的圆括号。就会有一次以上的捕获。每个被捕获的对象是原本的字符串,而不是模式。  因为...
  • mydriverc2
  • mydriverc2
  • 2014-12-16 13:51
  • 1070