
【R】【MeCab】RMeCab의 인스톨과 형태소 해석
R로 형태소 해석을 해 보았으므로, 인스톨로부터 간단한 데모까지 한가지 설명합니다.
R을 사용해 형태소 해석을 하면, 여러가지 소프트를 행하거나 오지 않고 일관해, 분석이 진행되기 때문에 꽤 편리합니다.
설정한 환경
iMac (27-inch, Mid 2010) 프로세서: 2.8 GHz Intel Core i5 메모리: 12GB 1333MHz DDR3 R : 3.3.0
준비
R을 사용해 형태소 해석을 하면, 여러가지 소프트를 행하거나 오지 않고 일관해, 분석이 진행되기 때문에 꽤 편리합니다.
설정한 환경
준비
Homebrew 넣기
Mac에 MeCab을 넣는 몇 가지 방법이 있었지만,
Homebrew로 넣는 것이 비교적 간단했기 때문에 이번에는 Homebrew에서 MeCab을 설치합니다.
우선은 Homebrew를 넣지 않은 사람을 위해서 간단하게 Homebrew의 인스톨로부터 해 갑시다.
아래 사이트로 이동하면 지정된 명령이 있으므로 터미널에서 실행합니다.
설치가 완료되면 다음 명령을 넣어 올바르게 설치되었는지 확인해 봅시다.
$ brew doctor
아무런 문제가 없으면 다음이 표시됩니다.
$ brew doctor
Your system is ready to brew.
조금 문제가 있고, warning이 표시되어도 처음에 아래와 같은 표시이면 우선 움직입니다.
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
MeCab 설치
MeCab을 homebrew로 설치합니다.
여기에서는 MeCab 사전인 mecab-ipadic도 함께 설치합니다.
$ brew install mecab
$ brew install mecab-ipadic
이 두 가지가 문제없이 설치할 수 있다면 MeCab 준비가 완료됩니다.
windows쪽으로
바이너리 패키지가 있으므로 아래 URL에서 다운로드합니다.
설치가 끝나면 MeCab 준비가 완료됩니다.
h tp // 타쿠 910. 기주 b. 이오 / 메카 b / # 드 w 응 아 d
RMeCab 설치
여기까지 할 수 있으면 드디어 R로 MeCab를 사용할 수 있도록 하는 스텝입니다.
R을 시작하고 다음을 수행합니다.
install.packages("RMeCab", repos = "http://rmecab.jp/R")
자동으로 RMeCab이 설치됩니다.
설치가 완료되면 즉시 시도해 봅시다!
RMeCab에서 간단한 형태소 분석 수행
단문으로 형태소 해석을 할 수 있는지 테스트
이제 다음과 같은 스크립트를 실행해 보겠습니다.
library(RMeCab)
res <- RMeCabC("すもももももももものうち")
unlist (res)
상기를 실시하면 다음과 같은 결과를 얻을 수 있습니다.
名詞 助詞 名詞 助詞 名詞 助詞 名詞
"すもも" "も" "もも" "も" "もも" "の" "うち"
또, docDF() 함수를 사용하면, 결과를 행렬로서 취득하는 것도 가능.
> (docDF(target = data.frame(X = "すもももももももものうち"), column = "X", type = 1))
number of extracted terms = 5
now making a data frame. wait a while!
TERM POS1 POS2 Row1
1 うち 名詞 非自立 1
2 すもも 名詞 一般 1
3 の 助詞 連体化 1
4 も 助詞 係助詞 2
5 もも 名詞 一般 2
지정 가능한 인수에 대한 자세한 내용은 여기
htp // r 메카 b. jp/우우키/그리고 x. php? R 메카 b 훈 c 치온 s
장문을 형태소 해석하여 명사의 개수를 카운트
조금 발전해 다음은 조금 긴 문장을 형태소 해석해, 등장하는 명사의 개수를 세는 코드를 만들어 보려고 생각합니다.
이번은 일본어 번역의 스티브 잡스 씨의 연설을 사용해 보려고 생각합니다.
RMeCab에서 데이터를 읽으려면 텍스트 파일이어야 합니다.
먼저 텍스트 파일로 작업 디렉토리에 저장합니다.
library(RMeCab)
library(ggplot2)
# 解析対象となるデータの読み込み
res <- RMeCabFreq("steve-jobs-speech.txt")
# 名詞だけを取り出してデータフレームres_nounへ
res_noun <- res[res[,2]=="名詞",]
# 2回以上登場する名詞の数。res[,4]で"Freq"列を参照
nrow(res_noun <- res[res[,2]=="名詞" & res[,4] > 1,])
# res_nounをFreqで降順ソート
res_noun[rev(order(res_noun$Freq)),]
게다가 아래의 코드로 상위 25위의 빈출 명사를 막대 그래프로 나타냅니다.
# 1列目と4列目を抜き出してデータフレームを作成する
res_noun2 <- data.frame(word=as.character(res_noun[,1]),
freq=res_noun[,4])
# 上位25位に絞り込む
res_noun2 <- subset(res_noun2, rank(-freq)<25)
# ggplotでグラフを描画する
ggplot(res_noun2, aes(x=reorder(word,freq), y=freq)) +
geom_bar(stat = "identity", fill="grey") +
theme_bw(base_size = 10, base_family = "HiraKakuProN-W3") +
coord_flip()

이렇게 보면 "나"나 "인생", "Apple"이라는 단어가 많고,
이 연설이 어떻게 자신의 체험이나 경험을 바탕으로 구성되어 있는지 잘 알 수 있습니다.
$ brew doctor
$ brew doctor
Your system is ready to brew.
$ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!
$ brew install mecab
$ brew install mecab-ipadic
install.packages("RMeCab", repos = "http://rmecab.jp/R")
단문으로 형태소 해석을 할 수 있는지 테스트
이제 다음과 같은 스크립트를 실행해 보겠습니다.
library(RMeCab)
res <- RMeCabC("すもももももももものうち")
unlist (res)
상기를 실시하면 다음과 같은 결과를 얻을 수 있습니다.
名詞 助詞 名詞 助詞 名詞 助詞 名詞
"すもも" "も" "もも" "も" "もも" "の" "うち"
또, docDF() 함수를 사용하면, 결과를 행렬로서 취득하는 것도 가능.
> (docDF(target = data.frame(X = "すもももももももものうち"), column = "X", type = 1))
number of extracted terms = 5
now making a data frame. wait a while!
TERM POS1 POS2 Row1
1 うち 名詞 非自立 1
2 すもも 名詞 一般 1
3 の 助詞 連体化 1
4 も 助詞 係助詞 2
5 もも 名詞 一般 2
지정 가능한 인수에 대한 자세한 내용은 여기
htp // r 메카 b. jp/우우키/그리고 x. php? R 메카 b 훈 c 치온 s
장문을 형태소 해석하여 명사의 개수를 카운트
조금 발전해 다음은 조금 긴 문장을 형태소 해석해, 등장하는 명사의 개수를 세는 코드를 만들어 보려고 생각합니다.
이번은 일본어 번역의 스티브 잡스 씨의 연설을 사용해 보려고 생각합니다.
RMeCab에서 데이터를 읽으려면 텍스트 파일이어야 합니다.
먼저 텍스트 파일로 작업 디렉토리에 저장합니다.
library(RMeCab)
library(ggplot2)
# 解析対象となるデータの読み込み
res <- RMeCabFreq("steve-jobs-speech.txt")
# 名詞だけを取り出してデータフレームres_nounへ
res_noun <- res[res[,2]=="名詞",]
# 2回以上登場する名詞の数。res[,4]で"Freq"列を参照
nrow(res_noun <- res[res[,2]=="名詞" & res[,4] > 1,])
# res_nounをFreqで降順ソート
res_noun[rev(order(res_noun$Freq)),]
게다가 아래의 코드로 상위 25위의 빈출 명사를 막대 그래프로 나타냅니다.
# 1列目と4列目を抜き出してデータフレームを作成する
res_noun2 <- data.frame(word=as.character(res_noun[,1]),
freq=res_noun[,4])
# 上位25位に絞り込む
res_noun2 <- subset(res_noun2, rank(-freq)<25)
# ggplotでグラフを描画する
ggplot(res_noun2, aes(x=reorder(word,freq), y=freq)) +
geom_bar(stat = "identity", fill="grey") +
theme_bw(base_size = 10, base_family = "HiraKakuProN-W3") +
coord_flip()

이렇게 보면 "나"나 "인생", "Apple"이라는 단어가 많고,
이 연설이 어떻게 자신의 체험이나 경험을 바탕으로 구성되어 있는지 잘 알 수 있습니다.