Perl 調用R分詞進行文本資料分析

來源:互聯網
上載者:User

標籤:

 

最近有一個文本分析的需求,因分析系統用的是Perl,而Perl下優秀的中文文本分析包又少,所以調用R處理文本資料。

為什麼不用Python

儘管Python擁有完備的NLP開源包支援,但是理由也很簡單——因為Python目前接觸不多,不敢班門弄斧,Python以後再說。目前,也只是需要的是一個快速原型,如果生產資料劇增,後期還需用c++重構下核心演算法(順便提一下,HMM就不重寫了,吃力不討好)。

如何開始

1.安裝R程式,將R程式安裝路徑加入環境變數。

2.測試命令列批跑功能

cmd 輸入 Rscript --arch x64 --help查看,x64是我當前安裝的版本。

3.測試調用R程式,輸出與Rgui一致,plot時候不會開啟繪圖視窗,預設以Report.pdf檔案形式匯出到指令碼目錄下。

 

測試

 1 #!/usr/bin/perl 2 # Run R Script By Call R Program 3 # Liangwl 4 # 2015/9/19 19:43:14 5 # Todo: Get the value from R runtime.Each parameter should be defind in Perl. 6 use strict; 7  8 #Write R scripts here 9 sub Rscripts10 {11 my $r =<<EndOfScript;12 #R Scripts Begin13 #Description: Test R Script14 Args <- commandArgs();15 cat("Args[1]=",Args[1],"\n");16 cat("Args[2]=",Args[2],"\n");17 cat("Args[3]=",Args[3],"\n");18 cat("Args[4]=",Args[4],"\n");19 cat("Args[5]=",Args[5],"\n");20 cat("Args[6]=",Args[6],"\n");21 cat("Args[7]=",Args[7],"\n");22 a <- c(1:10);23 b <- c(10,5);24 c = a + b;25 d <- c(11:20);26 c;27 d;28 x <- rbinom(1000, 10, 0.25);29 y <- rbinom(1000, 10, 0.25);30 plot(x, y);31 plot(jitter(x),jitter(y));32 pairs(iris[,1:4]);33 q();34 #R Scripts End35 EndOfScript36 return $r;37 }38 39 #Use pipe to Call&Exec R scripts40 sub callR41 {42     my ($file,$TX_DATE) = @_;43     my $rc = open(R,"| r --no-save $TX_DATE") or die $!;44     unless ($rc) {45         print "Could not invoke R command\n";46         return -1;47     }48     print R $file;49     return $rc;50 }51 52 sub main53 {54     my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());55     my $current = sprintf("%04d-%02d-%02d %02d:%02d:%02d",$year+1900,$mon + 1,$mday,$hour,$min,$sec);56     print "$current\nPID:$$ \n------------------------------------------------------------\n";57 58     # There‘s two way to execute R script59 60     # 1.execute R Script in batch61     # The parameter which follow ‘Rscript‘ should be a *.r file62     # The *.r file should be encode with ANSI/ASCII in UNIX/LF mode.63     my $path = "C:\\Users\\LiangWenLong\\Desktop\\test.r";64     my $rc_batch = `Rscript $path 123456` or die $! ;65     print $rc_batch;66     print "------------------------------------------------------------\n";67 68     # 2.use pipe call R program and execute script69     my $TX_DATE = ‘20150920‘;70     my $rc_pipe = callR(Rscripts(),$TX_DATE);71 72     #return $rc_pipe;73     return $rc_batch;74 }75 my $ret = main();76 exit($ret);

運行結果

應用情境

分詞、詞頻、文本挖掘、情感分析、語義分析

Perl 調用R分詞進行文本資料分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.