R(テキストマイニング)

2026年4月28日 (火)

[R]マララ・ユスフザイの国連本部での演説(2013年7月12日)の文章(原文)を得る

この演説は公式ページで全文公開されており、このページをダウンロードして加工することで、テキスト形式で全文を手に入れることができる。以下のスクリプトを実行すると、その全文が含まれたテキストファイルmalalaun_en.txtがカレントディレクトリに作成される。

> library(rvest)
> s <- "https://malala.org/news-and-voices/malala-un-speech"
> html <- read_html(s)
> lns <- html |> html_elements("p") |> html_text()
> idx <- grep("(Bismillah|Education first\\.)", lns)
> lns <- lns[idx[1]:idx[2]]
> write(lns, "malalaun_en.txt")

R_malalaun_en

2026年4月24日 (金)

[R]マララ・ユスフザイの国連本部での演説(2013年7月12日)の文章(日本語訳)を得る

この演説は英語で行われているがその日本語訳は公式ページで全文公開されており、このページをダウンロードして加工することで、テキスト形式で日本語訳全文を手に入れることができる。以下のスクリプトを実行すると、その日本語訳全文が含まれたテキストファイルmalalaun_jp.txtがカレントディレクトリに作成される。

> library(rvest)
> s <- "https://www.unic.or.jp/news_press/features_backgrounders/4790/"
> html <- read_html(s)
> lns <- html |> html_elements("p") |> html_text()
> idx <- grep("(2013年07月12日|* *** *)", lns)
> lns <- lns[(idx[1] + 1):(idx[2] - 1)]
> write(lns, "malalaun_jp.txt")

R_malalaun_jp

2026年4月18日 (土)

[R]MeCabで文章の形態素解析を簡単に行う

RMeCabパッケージのRMeCabText関数を使う。引数には形態素解析を行う文章が含まれるテキストファイルを指定する必要がある。戻り値はリストであるので注意。以下では以下2行からなる文章が含まれるテキストファイルsample.txtをカレントディレクトリに置いて行っている。

sample.txt

イレイナ役の本渡楓さんもかわいい。
セナディア役の鈴木みのりさんかわいい。

実行結果

> library(RMeCab)
> lis <- RMeCabText("sample.txt")
file = sample.txt
> dtf <- lis |> data.frame() |> t()
> rolnames(dtf) <- NULL
rolnames(dtf) <- NULL でエラー:
関数 "rolnames<-" を見つけることができませんでした
> rownames(dtf) <- NULL
> dim(dtf)
[1] 17 10
> dtf[, 1:5]
[,1] [,2] [,3] [,4] [,5]
[1,] "イレイナ" "名詞" "一般" "*" "*"
[2,] "役" "名詞" "接尾" "一般" "*"
[3,] "の" "助詞" "連体化" "*" "*"
[4,] "本渡" "名詞" "固有名詞" "人名" "姓"
[5,] "楓" "名詞" "固有名詞" "人名" "名"
[6,] "さん" "名詞" "接尾" "人名" "*"
[7,] "も" "助詞" "係助詞" "*" "*"
[8,] "かわいい" "形容詞" "自立" "*" "*"
[9,] "。" "記号" "句点" "*" "*"
[10,] "セナディア" "名詞" "一般" "*" "*"
[11,] "役" "名詞" "接尾" "一般" "*"
[12,] "の" "助詞" "連体化" "*" "*"
[13,] "鈴木" "名詞" "固有名詞" "人名" "姓"
[14,] "みのり" "名詞" "固有名詞" "人名" "名"
[15,] "さん" "名詞" "接尾" "人名" "*"
[16,] "かわいい" "形容詞" "自立" "*" "*"
[17,] "。" "記号" "句点" "*" "*"
> dtf[, 6:10]
[,1] [,2] [,3] [,4] [,5]
[1,] "*" "*" "*" "" ""
[2,] "*" "*" "役" "ヤク" "ヤク"
[3,] "*" "*" "の" "ノ" "ノ"
[4,] "*" "*" "本渡" "ホンド" "ホンド"
[5,] "*" "*" "楓" "カエデ" "カエデ"
[6,] "*" "*" "さん" "サン" "サン"
[7,] "*" "*" "も" "モ" "モ"
[8,] "形容詞・イ段" "基本形" "かわいい" "カワイイ" "カワイイ"
[9,] "*" "*" "。" "。" "。"
[10,] "*" "*" "*" "" ""
[11,] "*" "*" "役" "ヤク" "ヤク"
[12,] "*" "*" "の" "ノ" "ノ"
[13,] "*" "*" "鈴木" "スズキ" "スズキ"
[14,] "*" "*" "みのり" "ミノリ" "ミノリ"
[15,] "*" "*" "さん" "サン" "サン"
[16,] "形容詞・イ段" "基本形" "かわいい" "カワイイ" "カワイイ"
[17,] "*" "*" "。" "。" "。"

RMeCabC関数による文字列の形態素解析の戻り値は簡易な内容であり、RMeCabText関数の戻り値は、解析結果がすべて含まれている。

2026年4月16日 (木)

[R]MeCabで文章の形態素解析を簡単に行う

RMeCabパッケージのRMeCabC関数を使う。戻り値はリスト。見やすくするにはunlist関数でベクトルに変換すればよい。

> library(RMeCab)
> RMeCabC("ルアン・メェイ役の大西沙織さん")
[[1]]
名詞
"ルアン・メェイ"
[[2]]
名詞
"役"
[[3]]
助詞
"の"
[[4]]
名詞
"大西"
[[5]]
名詞
"沙織"
[[6]]
名詞
"さん"
> RMeCabC("ルアン・メェイ役の大西沙織さん") |> unlist()
名詞 名詞 助詞 名詞
"ルアン・メェイ" "役" "の" "大西"
名詞 名詞
"沙織" "さん"

2026年4月 7日 (火)

[R]MeCabに単語を追加する(Windows)

mecab-dict-index.exeコマンドを使って単語を追加すればよい。単語を追加するには、以下の二通りの方法がある。

  1. MeCabのシステムの設定を変更する
  2. 形態素解析時に作成した追加単語の辞書を指定する

1の場合、万が一追加に失敗した場合はMeCab自体が動作しなくなり、障害の切り分けが難しくなるため、2の方法を推奨する。以下はその2の手順。

テキストエディターで追加したい単語情報を記載したファイルを作成する。以下ではファイル名はadd.csvとしている。

add.csv

旅々,,,10,名詞,固有名詞,一般,*,*,*,たびたび,タビタビ,タビタビ
ともり,,,10,名詞,固有名詞,人名,名,*,*,ともり,トモリ,トモリ

このファイルを、コマンドプロンプトでmecab-dict-index.exeコマンドを使用して、MeCabで利用できるファイル形式に変換する。以下ではMeCabは「C:\Program Files\MeCab」にインストールしているとしている。返還後の追加単語辞書はadd.dicとする。コマンドを実行して、最後に「done!」と出力されれば変換は成功。

>set exe="C:\Program Files\MeCab\bin\mecab-dict-index.exe"
>set sdic="C:\Program Files\MeCab\dic\ipadic"
>%exe% -d %sdic% -u add.dic -f utf-8 -t utf-8 add.csv
reading add.csv ... 2
emitting double-array: 100% |###########################################|
done!

実際にR上で動作を確認してみる。追加単語辞書はRMeCabC関数ではdicオプションに指定する。以下では、追加単語辞書がカレントディレクトリにあるとしている。

> library(RMeCab)
> s <- "魔女の旅々のイレイナ役の本渡楓さんと"
> s <- paste0(s, "崩壊:スターレイルのホタル役の楠木ともりさんかわいい")
> RMeCabC(s) |> unlist()
名詞 助詞 名詞 記号 助詞
"魔女" "の" "旅" "々" "の"
名詞 名詞 助詞 名詞 名詞
"イレイナ" "役" "の" "本渡" "楓"
名詞 助詞 名詞 記号 名詞
"さん" "と" "崩壊" ":" "スターレイル"
助詞 名詞 名詞 助詞 名詞
"の" "ホタル" "役" "の" "楠木"
助詞 動詞 名詞 助詞 形容詞
"と" "もり" "さ" "ん" "かわいい"
> RMeCabC(s, dic = "add.dic") |> unlist()
名詞 助詞 名詞 助詞 名詞
"魔女" "の" "旅々" "の" "イレイナ"
名詞 助詞 名詞 名詞 名詞
"役" "の" "本渡" "楓" "さん"
助詞 名詞 記号 名詞 助詞
"と" "崩壊" ":" "スターレイル" "の"
名詞 名詞 助詞 名詞 名詞
"ホタル" "役" "の" "楠木" "ともり"
名詞 形容詞
"さん" "かわいい"

追加単語辞書を使わないと「旅々」や「ともり」がうまく認識できていないが、追加単語辞書を指定すると、うまく認識できていることがわかる。

2026年4月 6日 (月)

[R]MeCabを使う

石田基広氏によるRMeCabパッケージを使うのがよい。以下の情報は、石田氏の書籍の情報を2026年3月時点の情報に更新した手順。

MeCab本体をインストールする。書籍のサポートページのリンクのとおりに、以下のページのファイル「mecab-64-0.996.2.exe」をダウンロードする。

https://github.com/ikegami-yukino/mecab/releases

インストールする。インストール時に文字符号化方式(文字コード)の選択がある。現在のR(version 4.5.3)はデフォルトの状態での文字コードはUTF-8のため、UTF-8を選択するのがよい。ただし、この場合はコマンドプロンプトでの動作もUTF-8になってしまうので注意。

R_mecab_install

RMeCabパッケージをインストールする。

> install.packages("RMeCab", repos = "http://rmecab.jp/R")
パッケージを ‘C:/Users/○○○/AppData/Local/R/win-library/4.5’ 中にインストールします
(‘lib’ が指定されていないため)
URL 'http://rmecab.jp/R/bin/windows/contrib/4.5/RMeCab_1.15.zip' を試しています
Content type 'application/zip' length 718255 bytes (701 KB)
downloaded 701 KB
パッケージ ‘RMeCab’ は無事に展開され、MD5 サムもチェックされました
ダウンロードされたパッケージは、以下にあります
C:\Users\○○○\AppData\Local\Temp\○○○\downloaded_packages

以下、動作確認。RMeCabC関数が以下のように動作すればインストールは完了。

> library(RMeCab)
> RMeCabC("すもももももももものうち") |> unlist()
名詞 助詞 名詞 助詞 名詞 助詞 名詞
"すもも" "も" "もも" "も" "もも" "の" "うち"

MeCabがきちんとインストールされていない環境では、RMeCabパッケージをインストールできて読み込むことはできるが、実行すると以下のように-1が返る。

> library(RMeCab)
> RMeCabC("すもももももももものうち") # MeCabインストール前に実行
[1] -1
無料ブログはココログ

■■

■■■