###問題
Python(3)とRを使って、Python側の文字列をRに渡して形態素解析、特徴語の抽出をさせ、結果をCSVに書き込むというプログラムを作ろうとしているのですが、python側からRを呼び出すのに問題があるのか、1度プログラムを動かしても結果を書き込む先のCSVにはセル一つ書き込みが無く、Rが実行されているのか怪しい状態です。どうやったら解決できるでしょうか?
###使用ライブラリ
Python:pyper,csv
R:RMeCab
###Pythonのコード
import pyper
import csv
解析するテキストの用意
sample = open('sample.txt', 'r')
data = sample.read()
print(data)
Rにテキストを渡して解析させる
r = pyper.R()
r.assign("data", data)
r("source(file='TextMining.R')")
結果の表示先のcsvファイルを開く
miningresult = open("result.csv", 'r')
reader = csv.reader(miningresult)
csvの列を表示
for row in reader:
print(row)
###Rのコード
library(RMeCab)
res <- RMeCabFreq(data)
res_noun <- res[res[,2]=="名詞",]
res_noun <- res_noun[!res$Info2 %in% c("数","非自立","接尾"),]
res_noun <- res_noun[nchar(res_noun$Term)>3,]
res_noun <- res_noun[order(res_noun$Freq, decreasing=T),]
res_noun <- head(res_noun, n=10)
write.csv(res_noun, "result.csv", quote=FALSE, row.names=FALSE)
dev.off()
###実行結果
[]
*追記
r("source(file='TextMining.R')")
を
print(r("source(file='TextMining.R')"))
にして実行してみたところ
[1] TRUE
print("R command at time: 1466773692.4431365")
[1] "R command at time: 1466773692.4431365"
try({source(file='TextMining.R')})
Error in source(file = "TextMining.R") :
と表示されました。pyperを使用したことがある方、何が悪いのかわかるでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。