トップページ -> 実践知識 -> テキスト処理用のツールなど -> RMeCab のインストールと R を用いたテキスト処理(形態素解析など)
[サイトマップへ]  

RMeCab のインストールと R を用いたテキスト処理(形態素解析など)

サイト構成 連絡先,業績など 実践知識 データの扱い コンピュータ 教材 サポートページ

前準備

Windows の場合

  1. Windows で R 処理系と R コンソールのインストール

  2. Windows の環境変数 PATH に「C:\R\R-2.14.1\bin\i386」を追加

Ubuntu の場合

  1. Ubuntu で R 処理系のインストール

Ubuntu で MeCab と RMeCab のインストール (Install MeCab and RMeCab)

  1. MeCab のインストール (Install MeCab)

    ◆ Ubuntu でのインストール手順例 (Install MeCab on Ubuntu)

        sudo apt-get -yV --force-yes install  mecab-utils
        sudo apt-get -yV --force-yes install  mecab-ipadic-utf8
        sudo apt-get -yV --force-yes install  mecab-ipadic-utf8
        sudo apt-get -yV --force-yes install  libmecab-dev
        sudo apt-get -yV --force-yes install  libmecab-ruby
    

  2. RMeCab のダウンロードとインストール (Download and Install RMeCab)
    1. RMeCab のダウンロード (Download RMeCab)

      http://sites.google.com/site/rmecab/

      使用条件は各自で良く確認する.作者に感謝.もちろん再配布は慎む

    2. RMeCab のインストール (Install RMeCab) RMeCab とは R で MeCab を使えるようにするためのパッケージ

      32 ビット Ubuntu でのインストール手順例 (Install MeCab on 32-bit Ubuntu)

      R
      getwd()
      install.packages("RMeCab_0.99_R_i686-pc-linux-gnu.tar.gz",  destdir=".",   repos = NULL)
      

      64 ビット Ubuntu でのインストール手順例 (Install MeCab on 64-bit Ubuntu)

      R
      getwd()
      install.packages("RMeCab_0.99_R_x86_64-unknown-linux-gnu.tar.gz",  destdir=".",   repos = NULL)
      

R を用いた形態素解析

R
library(RMeCab)
a <- RMeCabC("これは、ただの鯖です") 

wget https://www.kkaneko.jp/free/textcommand/article.txt
R
library(RMeCab)
t <- RMeCabText("article.txt") 


term frequency (タームの頻度)

ファイルの中に含まれるタームの頻度

wget https://www.kkaneko.jp/free/textcommand/article.txt
R
library(RMeCab)
a <- RMeCabFreq("article.txt") 

docMatrix() 関数を用いて term frequency を求める

あるディレクトリの中のファイルすべてについて

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/free/textcommand/article.txt
wget https://www.kkaneko.jp/free/textcommand/chapter1.txt
wget https://www.kkaneko.jp/free/textcommand/chapter2.txt
wget https://www.kkaneko.jp/free/textcommand/chapter3.txt
wget https://www.kkaneko.jp/free/textcommand/chapter4.txt
wget https://www.kkaneko.jp/free/textcommand/chapter5.txt
wget https://www.kkaneko.jp/free/textcommand/chapter6.txt
wget https://www.kkaneko.jp/free/textcommand/chapter7.txt
wget https://www.kkaneko.jp/free/textcommand/chapter8.txt
wget https://www.kkaneko.jp/free/textcommand/chapter9.txt
wget https://www.kkaneko.jp/free/textcommand/chapter10.txt
wget https://www.kkaneko.jp/free/textcommand/chapter11.txt
R
library(RMeCab)
a <- docMatrix("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), weight="tf") 
write.table(a, file="/tmp/a", sep=",")
q()
more /tmp/a

docMatrix2() 関数を用いて term frequency を求める

あるディレクトリの中のファイルすべてについて

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/free/textcommand/article.txt
wget https://www.kkaneko.jp/free/textcommand/chapter1.txt
wget https://www.kkaneko.jp/free/textcommand/chapter2.txt
wget https://www.kkaneko.jp/free/textcommand/chapter3.txt
wget https://www.kkaneko.jp/free/textcommand/chapter4.txt
wget https://www.kkaneko.jp/free/textcommand/chapter5.txt
wget https://www.kkaneko.jp/free/textcommand/chapter6.txt
wget https://www.kkaneko.jp/free/textcommand/chapter7.txt
wget https://www.kkaneko.jp/free/textcommand/chapter8.txt
wget https://www.kkaneko.jp/free/textcommand/chapter9.txt
wget https://www.kkaneko.jp/free/textcommand/chapter10.txt
wget https://www.kkaneko.jp/free/textcommand/chapter11.txt
R
library(RMeCab)
a <- docMatrix2("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), weight="tf") 
write.table(a, file="/tmp/a", sep=",")
q()
more /tmp/a

docMatrix() 関数を用いて term frequency * inverse document frequency (tf*idf)を求める

weight="" のところは "tf*idf*norm" のように指定できる
mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/free/textcommand/article.txt
wget https://www.kkaneko.jp/free/textcommand/chapter1.txt
wget https://www.kkaneko.jp/free/textcommand/chapter2.txt
wget https://www.kkaneko.jp/free/textcommand/chapter3.txt
wget https://www.kkaneko.jp/free/textcommand/chapter4.txt
wget https://www.kkaneko.jp/free/textcommand/chapter5.txt
wget https://www.kkaneko.jp/free/textcommand/chapter6.txt
wget https://www.kkaneko.jp/free/textcommand/chapter7.txt
wget https://www.kkaneko.jp/free/textcommand/chapter8.txt
wget https://www.kkaneko.jp/free/textcommand/chapter9.txt
wget https://www.kkaneko.jp/free/textcommand/chapter10.txt
wget https://www.kkaneko.jp/free/textcommand/chapter11.txt
R
library(RMeCab)
a <- docMatrix("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), weight="tf*idf") 
write.table(a, file="/tmp/a", sep=",")
q()
more /tmp/a

docMatrix() 関数を用いて inverse document frequency (idf) を求める

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/free/textcommand/article.txt
wget https://www.kkaneko.jp/free/textcommand/chapter1.txt
wget https://www.kkaneko.jp/free/textcommand/chapter2.txt
wget https://www.kkaneko.jp/free/textcommand/chapter3.txt
wget https://www.kkaneko.jp/free/textcommand/chapter4.txt
wget https://www.kkaneko.jp/free/textcommand/chapter5.txt
wget https://www.kkaneko.jp/free/textcommand/chapter6.txt
wget https://www.kkaneko.jp/free/textcommand/chapter7.txt
wget https://www.kkaneko.jp/free/textcommand/chapter8.txt
wget https://www.kkaneko.jp/free/textcommand/chapter9.txt
wget https://www.kkaneko.jp/free/textcommand/chapter10.txt
wget https://www.kkaneko.jp/free/textcommand/chapter11.txt
R
library(RMeCab)
a <- docMatrix("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), weight="tf*idf") 
b <- docMatrix("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), weight="tf") 
c = a / b
apply( ifelse(is.nan(c), 0, c), 1, max )
write.table(c, file="/tmp/c", sep=",")
q()
more /tmp/a

docMatrix() 関数を用いて共起行列を求める

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/free/textcommand/article.txt
wget https://www.kkaneko.jp/free/textcommand/chapter1.txt
wget https://www.kkaneko.jp/free/textcommand/chapter2.txt
wget https://www.kkaneko.jp/free/textcommand/chapter3.txt
wget https://www.kkaneko.jp/free/textcommand/chapter4.txt
wget https://www.kkaneko.jp/free/textcommand/chapter5.txt
wget https://www.kkaneko.jp/free/textcommand/chapter6.txt
wget https://www.kkaneko.jp/free/textcommand/chapter7.txt
wget https://www.kkaneko.jp/free/textcommand/chapter8.txt
wget https://www.kkaneko.jp/free/textcommand/chapter9.txt
wget https://www.kkaneko.jp/free/textcommand/chapter10.txt
wget https://www.kkaneko.jp/free/textcommand/chapter11.txt
R
library(RMeCab)
a <- docMatrix("/tmp/hoge", pos=c("名詞", "動詞", "形容動詞"), co=1) 
write.table(a, file="/tmp/a", sep=",")
q()
more /tmp/a


Ruby + R でやってみる

sudo -i
rvm install ruby-1.8.7-head
rvm use ruby-1.8.7-head
exort R_HOME=/usr/lib/R
gem install rsruby -- --with-R-=/usr/lib/R --with-opt-dir=/usr/share/R
exit
cd /tmp
wget https://www.kkaneko.jp/free/textcommand/article.txt
exort R_HOME=/usr/lib/R
irb -Ku
require 'rubygems'
require 'rsruby'
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
  library(RMeCab)
  a <- RMeCabFreq("article.txt")
RCOMMAND
r.a
http://web.kuicr.kyoto-u.ac.jp/~alexg/rsruby/manual.pdf