雑記

面白いと思ったことをまとめます

「形態素解析」やってみた

形態素解析やってみた

形態素解析の種類

主に上三つは日本語に、下二つは英語に使われているようです。
今回は、使用するデータが英語であることから Tree Tagger を用います。

形態素解析の準備

形態素解析の関数 treetag() を使用するには以下のパッケージが必要です。

library(koRpus)
library(dplyr)

英語用のコーパス(辞書)もインストールします。

library(koRpus.lang.en)
# available.koRpus.lang()

「koRpus.lang.XX」の XX に使用したい言語の頭文字二つを入力しています。

他の使用できる言語は二つ目の関数 available.koRpus.lang() で参照できます。

形態素解析の準備(Tree Tagger のインストール)

以下のサイトを参考にしながらインストールしました。

以下のように、ファイルを選ぶと環境設定が完了する。

set.kRp.env(TT.cmd="/Applications/TreeTagger/cmd/tree-tagger-english", lang="en")
形態素解析【実践】

形態素解析をおこないます。
関数 treetag() にテキストファイル(**.txt)を入力すればOKです。
ここでは、オブジェクト file.txt に代入しています。

tagged.text <- treetag(file.txt, doc_id = "sample")
形態素解析【結果】

結果を見てみます。

  • doc_id…txt データの名前です。今回は関数の引数で指定した”sample”と表示されています。
  • token … 単語
  • tag … タグ 詳細はこちら
  • lemma … 原形
  • lttr … 文字数(読みこんだ文書中の)
  • wclass… 品詞
  • idx. … 文書中の場所
tagged.text %>% head
##   doc_id token tag lemma lttr     wclass desc stop stem idx sntc
## 1 sample   THE  DT   the    3 determiner   NA   NA   NA   1    1

データの要約は以下のように確認できます。

  • all.chars … 文字数の合計
  • lines …
  • words …
  • sentences …
describe(tagged.text) %>% head
## $all.chars
## [1] 146268
## 
## $lines
## [1] 2958
## 
## $normalized.space
## [1] 144636
## 
## $chars.no.space
## [1] 117776
## 
## $punct
## [1] 7145
## 
## $digits
## [1] 250

出力結果はS4クラスでした。
関数 taggedText() でデータフレームに変換できます。

taggedText(tagged.text) %>% head()
##   doc_id         token tag         lemma lttr      wclass desc stop stem idx
## 1 sample           THE  DT           the    3  determiner   NA   NA   NA   1
## 2 sample         BIRTH  NN         birth    5        noun   NA   NA   NA   2
## 3 sample            OF  IN            of    2 preposition   NA   NA   NA   3
## 4 sample            MY PP$            my    2     pronoun   NA   NA   NA   4
## 5 sample KITCHEN-TABLE  JJ kitchen-table   13   adjective   NA   NA   NA   5
## 6 sample       FICTION  NN       fiction    7        noun   NA   NA   NA   6
##   sntc
## 1    1
## 2    1
## 3    1
## 4    1
## 5    1
## 6    1
参考

cran.r-project.org

今後やりたいこと
  • 結果の可視化
  • 複数の文書への適用
    • 次元削減手法の適用
  • 出力結果が多い時、スクロールさせたいんだけどなんかできない。。