テキスト分析の大通り#04: 形態素解析(Sudachi編)
前回Mecabを用いた形態素解析を行いましたが、今回は同じことをSudachiというライブラリで行っていきます。どちらが良いとかはないのですが、どんな違いがでるのかという興味本位で両方やってます。ちなみに別のテキスト分析の際には、「二〇〇九年」といった漢数字の文字列があり、Mecabはそのまま切り刻まれていましたが、Sudachiは2009年という英数字に矯正することができました。形態素解析器によってそれぞれ癖があります。
文字の矯正
処理一式は今まで同様以下のノートブックに。追って解説です。
Mecab同様矯正処理を終えた結果をTeradataからロードし、Sudachiの形態素解析器に投入するのですが、いくつかMecabとは違う部分があります。まず、データフレームに対して一括で処理をできないため、ループ文を回して1文章ずつ処理を行っています。その際分解した単語ごとに、ターゲットのデータフレームへと追記をしていくのですが、その間に後で分解に使う用の文字列を挟んでおく必要があります。今回は★を使いましたが、これが本文中に発生すると正しく分解をしてくれないため、事前に本文中にないかを確認しています。
次にSudachiのモード指定ですが、dictでfullを、SplitModeでCを指定しています。Sudachiの辞書には幾つかあり、今回は新語なども反映されたfullの辞書を利用、また分解語の単語が長めになるような選択をするモード(A,B,CのうちC)を選択しています。
これらを行ったうえで形態素解析を行います。結果はMecab同様単一の文章内に品詞などが付与されていますが、区切り方がMecabとは異なっているのが分かります。これは後でさらに分解することにします。そして文字数を確認し、文字が入るようテーブル列の定義を行って、Teradataに格納します。今回はここまでです。
(TeradataやPython、およびPythonライブラリのインストールや環境構築、辞書登録、参考にしたページ等は以下にまとめています)
///
#analytics #pyhon #sudachi #形態素解析 #text #nlp #データ #分析 #teradata #sql