Janome ではじめるテキストマイニング

Tomoko Uchida

Last Updated 2019.03.03

このチュートリアル(ハンズオン)について

Who am I

         

はじめよう

形態素解析 〜 WordCloud

Janome 紹介

(venv) $ pip install janome
(venv) $ python
>>> from janome.tokenizer import Tokenizer
>>> t = Tokenizer()
>>> for token in t.tokenize('すもももももももものうち'):
...     print(token)
... 
すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ
も   助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
も   助詞,係助詞,*,*,*,*,も,モ,モ
もも  名詞,一般,*,*,*,*,もも,モモ,モモ
の   助詞,連体化,*,*,*,*,の,ノ,ノ
うち  名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

特徴

Janome を支えるアルゴリズム

すもも / も / もも / も / もも / の / うち

名詞 / 助詞 / 名詞 / 助詞 / 名詞 / 助詞 / 名詞

必要な知識

Janome を支えるアルゴリズム

辞書と言語モデル

Janome を支えるアルゴリズム

解析の様子をみてみよう

(venv) $ echo "ご飯論法" | janome -g
ご飯  名詞,一般,*,*,*,*,ご飯,ゴハン,ゴハン
論法  名詞,一般,*,*,*,*,論法,ロンポウ,ロンポー
Graph was successfully output to lattice.gv.png

ハンズオン 0. Google Colab の練習

ハンズオン(演習)は Google Colab 環境で行います。

https://colab.research.google.com/drive/1ayYqeCEHoAv07MQxTWCDE0NIQc-cEpOu

にアクセスして,Google Colab の使い方に慣れましょう。

ハンズオン 1. はじめよう!

https://colab.research.google.com/drive/12CxsYiA1V5e1lHJ0Q95G7G-sjZx5YqWc

にチャレンジ!

ハンズオン 2. WordCloud

https://colab.research.google.com/drive/1xI-Uwedy-lvv689o7-u0N8Jg6i7vLoxG

にチャレンジ!

前処理と後処理

Analyzer Framework

だいじな前処理,便利な後処理

だいじな前処理,便利な後処理

だいじな前処理,便利な後処理

Analyzer フレームワーク

Analyzer フレームワーク

Analyzer フレームワーク

>>> from janome.tokenizer import Tokenizer
>>> from janome.analyzer import Analyzer
>>> from janome.charfilter import *
>>> from janome.tokenfilter import *
>>> text = 'Pythonで形態素解析'
>>> char_filters = [UnicodeNormalizeCharFilter()]
>>> token_filters = [POSStopFilter(['記号','助詞']), LowerCaseFilter()]
>>> tokenizer = Tokenizer()
>>> a = Analyzer(char_filters, tokenizer, token_filters)
>>> for token in a.analyze(text):
...     print(token)
... 
python  名詞,一般,*,*,*,*,python,*,*
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析  名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ

ビルトイン CharFilter

(2019/3 現在)

ビルトイン TokenFilter

(2019/3 現在)

ハンズオン 3. Analyzer

https://colab.research.google.com/drive/109TJG4dH5Q07cdv4jhB1DeQHQ3zLz9G3

にチャレンジ!

特徴語抽出

TFIDF, 用語抽出

BoW (Bag of Words) と ベクトル化と TFIDF

BoW (Bag of Words) と ベクトル化と TFIDF

BoW (Bag of Words) と ベクトル化と TFIDF

ベクトルの要素(値)の決め方はいろいろある

  1. 単語あり/なしだけを表現 : 1 or 0
  2. 単語の出現回数をそのまま使う : 0 以上の整数値
  3. (そのドキュメントにおける)単語の「重要度」を計算する

3 の重要度には,伝統的に TFIDF のバリエーションが使われることが多い

いろいろな TFIDF : Document and query weighting schemes

キーワード抽出

termextract

専門用語(キーワード)自動抽出 Python モジュール termextract

ハンズオン 4. キーワード抽出

https://colab.research.google.com/drive/11obx4RtQP6Z_EqfRoKaz4Fa_FKoBKi4M

にチャレンジ!

Appendix 使用しているソフトウェア

このハンズオンをローカル環境で実行する時に必要なソフトウェアです。

Python ライブラリ

パッケージソフト,その他