見出し画像

テキスト分析の大通り#03: 形態素解析(Mecab編)

前回までで文字の矯正が済んだとして、今回は文章の形態素解析を行っていきます。要は文章を単語に切り刻んでいく処理です。いくつか形態素解析を行うライブラリはありますが、その中でも代表的な2つであるMecabを今回、次回はSudachiを利用していきます。


文字の矯正

処理一式は以下のノートブックをご覧ください。追って解説を追加します。

前回までで矯正処理を終えた結果をTeradataに格納しているため、それをまずロードしています。次に、Mecabを使ってこの中の文章部分を単語に分解しています。Mecabではスペース区切りで単純に単語で分解していくことも可能ですし、上述のように品詞や読みなどを付与して分解していくことも可能です。後者の場合は分解した単語、タブ区切り、品詞、品詞の種類1,品詞の種類2,正規形..といった形で表現され、最後に改行コードがついた文章に変換されています。前者の場合は該当部分を以下のように書き換えてください。

tagger = MeCab.Tagger('-Owakati')
df['docdesc'] = df['docdesc'].apply(tagger.parse)
df

ちなみに上記の結果は2回目の処理で、1回目の処理結果をもとにいくつか辞書登録を行い、そのうえで処理をした結果です。別記事にまとめていますが、Mecabの辞書にはNeologdという流行語や新語を加えた辞書を追加しています。

この結果をとりあえずはデータベースに格納します。品詞などが付与されて元の文章から文字数が膨れ上がるため、改めて文字数をカウントしています。文字数が32,000文字を超える場合はvarcharではなく、clobにてテーブルの列定義を行います。この結果を保存し、一旦ここまでとします。

(TeradataやPython、およびPythonライブラリのインストールや環境構築、辞書登録、参考にしたページ等は以下にまとめています)

///

#analytics #pyhon #mecab #形態素解析 #text #nlp #データ #分析 #teradata #sql

この記事が気に入ったらサポートをしてみませんか?