Help us understand the problem. What is going on with this article?

【R】MeCabで形態素解析

形態素解析とは

  • 文法的な情報の注記の無い自然言語のテキストデータ(文)から、対象言語の文法や、辞書と呼ばれる単語の品詞等の情報にもとづき、形態素(Morpheme, おおまかにいえば、言語で意味を持つ最小単位)の列に分割し、それぞれの形態素の品詞等を判別する作業である。(※Wikipediaより)

実行環境

  • Windows環境(Windows10, 64bit)で以下の処理を実行しました。

下準備

以下の通り、2019/02/25時点で最新版のソフトウェアを利用しました。

  1. Rのインストール
    • R-3.5.2を利用しました。
  2. MeCabのインストール
    • 「Binary package for MS-Windows」のmecab-0.996.exeを使ってインストールしました。
    • このWindows版にはコンパイル済みのIPA辞書が含まれているため、この辞書をそのまま活用して解析に使いました。
  3. RMeCabパッケージのインストール。
    • Rを起動した後、以下のコマンドを実行してインストールしました。
  4. パッケージの読み込み
    • ツールバーの[パッケージ]から[パッケージの読み込み]へ進み、開いたウィンドウ(※ウィンドウ名は"Select one")からRMeCabを選択します。
RMeCabのインストール
> install.packages("RMeCab", repos = "http://rmecab.jp/R", dependencies = TRUE) 

image.png

解析するテキスト

  • Qiitaとはのページから、以下の文言を拝借しました。
qiita.txt
Qiitaは、プログラミングに関する知識を記録・共有するためのサービスです。
絵文字やシンタックスハイライトなど、豊富な機能を備えたMarkdown記法を使って、簡単に記事を投稿できます。
記事に付けたタグや、投稿したユーザ、ストック数、投稿日時の指定など、強力な検索機能で記事を探し出せます。
プログラミングに関する様々な分野のユーザ達と、知識を共有し、意見を交わすことで、より多くの知識を生み出しましょう。

解析処理

  • RMeCabFreq関数を使って、qiita.txtを形態素解析した上で、形態素ごとの出現回数をカウントします。
    • こちらのサイトによると、RMeCabFreqは「関数 RMeCabFreq( ) は指定されたテキストファイルを形態素解析して、その活用形を原形に変換した上で、その頻度を数えて、結果をデータフレームとして返す関数である。」と定義されています。
  • 次にRMeCabFreq関数の結果として得られたデータフレームを、「品詞が名詞」に絞り込んだ上で、出現回数の降順にしています。
解析処理
> res <- RMeCabFreq("D:/qiita.txt")
> res <- res[res$Info1=="名詞",]
> res <- res[order(res$Freq, decreasing=T),]

解析結果

  • 「投稿」「記事」「プログラミング」「共有」など、Qiitaらしい語句が並んでいます。
解析結果
> res
             Term Info1        Info2 Freq
38           投稿  名詞     サ変接続    3
45           記事  名詞         一般    3
47           知識  名詞         一般    3
31 プログラミング  名詞     サ変接続    2
33           機能  名詞     サ変接続    2
35           共有  名詞     サ変接続    2
43         ユーザ  名詞         一般    2
29       サービス  名詞     サ変接続    1
30       ストック  名詞     サ変接続    1
32           意見  名詞     サ変接続    1
34           記録  名詞     サ変接続    1
36           検索  名詞     サ変接続    1
37           指定  名詞     サ変接続    1
39       Markdown  名詞         一般    1
40   シンタックス  名詞         一般    1
41           タグ  名詞         一般    1
42     ハイライト  名詞         一般    1
44         絵文字  名詞         一般    1
46           記法  名詞         一般    1
48           日時  名詞         一般    1
49           分野  名詞         一般    1
50           簡単  名詞 形容動詞語幹    1
51           強力  名詞 形容動詞語幹    1
52           豊富  名詞 形容動詞語幹    1
53           様々  名詞 形容動詞語幹    1
54          Qiita  名詞     固有名詞    1
55               名詞         接尾    1
56               名詞         接尾    1
57           こと  名詞       非自立    1
58           ため  名詞       非自立    1
59           多く  名詞     副詞可能    1

おわりに

  • ずっと書きかけのままストックしていた記事だったので、記事の投稿時点では環境などがやや古くなっていると思います。
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away