テキスト前処理用
Pythonモジュール
neologdnの紹介
2016/04/26
NEologd Casual Talks
Yukino Ikegami
これらはみんな違う文字です
U+2013
EN
DASH
U+2014
EM
DASH
見た目が似てても文字コードが違えば
別の文字😨
U+FE63
SMALL
HYPHE
N-
MINUS
U+FF0d
FULLWI
DTH
HYPHE
N-
MINUS
U+FF70
HALFWIDTH
KATAKANA-
HIRAGANA
PROLONGED
SOUND
MARK
U+2500
BOX
DRAWI
NGS
LIGHT
HORIZO
NTAL
テキストの前処理とは
• 後の処理がやりやすくなるように
テキストを一定のルールに基づいて整えること
• たとえば、
• 半角カナを全角カナにする
• 全角英数字を半角英数字にする
• 「ウェーイ」と「ウェーーーーイ」を同じ言葉として扱う
ために「ウェーーーーイ」を「ウェーイ」にする
もし前処理やらないと……
$ mecab -d /usr/local/lib/mecab/dic/mecab-ipadic-neologd
まどかマギカ
まどかマギカ 名詞,固有名詞,一般,*,*,*,まどかマギカ,マドカマ
ギカ,マドカマギカ
EOS
まどかマギカ
まどか名詞,固有名詞,人名,名,*,*,まどか,マドカ,マドカ
マギカ 名詞,固有名詞,組織,*,*,*,*
EOS
せっかくのNEologdがMOTTAINAI😨
neologdn
• NEologdの前処理用Pythonモジュール
• Cythonだからチョット速い
• Python2系3系両対応
• pip install neologdn
• https://github.com/ikegami-yukino/neologdn
公式サンプルコードとの比較
• 公式サンプルコード
• https://github.com/neologd/mecab-ipadic-
neologd/wiki/Regexp.ja#python-written-by-hideaki-t--overlast
• テキスト: livedoor ニュースコーパス
• http://www.rondhuit.com/download.html
• およそ24万行
• IT, 家電, 映画, スポーツ,独女通信など様々な文書
比較の結果
公式サンプル neologdn
18.3 sec 9.05 sec
• 2倍程度速い!😇
• 詳細
– https://github.com/ikegami-
yukino/neologdn/blob/master/benchmark/benchm
ark.ipynb
まとめ
• 前処理大事
• せっかくの辞書が活躍できない😨
• Pythonでやるならneologdn
• チョット速い😇

テキスト前処理用Pythonモジュールneologdnの紹介