金子邦彦研究室人工知能Windows で動く人工知能関係 Pythonアプリケーション,オープンソースソフトウエア)R システムで形態素解析,TF/IDF (RMecab を使用)

R システムで形態素解析,TF/IDF (RMecab を使用)

Ubuntu で R, MeCab, RMeCab のインストール

  1. R, MeCab のインストール(Ubuntu 上)
    sudo apt -y update
    sudo apt -y install r-base-core
    sudo apt -y install mecab-utils mecab-ipadic-utf8 mecab-ipadic-utf8 libmecab-dev
    
  2. RMeCab のダウンロードとインストール

    URL: https://github.com/IshidaMotohiro/RMeCab

    使用条件等は利用者で確認すること.

R システムを用いた形態素解析

term frequency (タームの頻度)

ファイルの中に含まれるタームの頻度.日本国憲法前文について.

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

[image]

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

あるディレクトリの中のファイルすべてについて term frequency を求める. 日本国憲法の 12 のファイル(前文と章でファイルが分かれている).

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

[image]

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

あるディレクトリの中のファイルすべてについて term frequency を求める. 日本国憲法の 12 のファイル(前文と章でファイルが分かれている).

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

[image]

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

weight="" のところは "tf*idf*norm" のように指定できる

あるディレクトリの中のファイルすべてについて求める. 日本国憲法の 12 のファイル(前文と章でファイルが分かれている).

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/ai/nlp/article.txt
wget https://www.kkaneko.jp/ai/nlp/chapter1.txt
wget https://www.kkaneko.jp/ai/nlp/chapter2.txt
wget https://www.kkaneko.jp/ai/nlp/chapter3.txt
wget https://www.kkaneko.jp/ai/nlp/chapter4.txt
wget https://www.kkaneko.jp/ai/nlp/chapter5.txt
wget https://www.kkaneko.jp/ai/nlp/chapter6.txt
wget https://www.kkaneko.jp/ai/nlp/chapter7.txt
wget https://www.kkaneko.jp/ai/nlp/chapter8.txt
wget https://www.kkaneko.jp/ai/nlp/chapter9.txt
wget https://www.kkaneko.jp/ai/nlp/chapter10.txt
wget https://www.kkaneko.jp/ai/nlp/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

[image]

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

あるディレクトリの中のファイルすべてについて求める. 日本国憲法の 12 のファイル(前文と章でファイルが分かれている).

mkdir /tmp/hoge
cd /tmp/hoge
rm -f /tmp/hoge/*
wget https://www.kkaneko.jp/ai/nlp/article.txt
wget https://www.kkaneko.jp/ai/nlp/chapter1.txt
wget https://www.kkaneko.jp/ai/nlp/chapter2.txt
wget https://www.kkaneko.jp/ai/nlp/chapter3.txt
wget https://www.kkaneko.jp/ai/nlp/chapter4.txt
wget https://www.kkaneko.jp/ai/nlp/chapter5.txt
wget https://www.kkaneko.jp/ai/nlp/chapter6.txt
wget https://www.kkaneko.jp/ai/nlp/chapter7.txt
wget https://www.kkaneko.jp/ai/nlp/chapter8.txt
wget https://www.kkaneko.jp/ai/nlp/chapter9.txt
wget https://www.kkaneko.jp/ai/nlp/chapter10.txt
wget https://www.kkaneko.jp/ai/nlp/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

[image]

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

あるディレクトリの中のファイルすべてについて求める. 日本国憲法の 12 のファイル(前文と章でファイルが分かれている).

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

[image]