見出し画像

テキスト分析の大通り#06: 形態素解析結果の縦持ち(Sudachi編)

前回Mecabの形態素解析処理結果に対して縦持ち処理を行いましたが、今回は同じことをSudachiでやります。Mecabとは区切り文字などが異なりますが、基本的な考え方は同じです。


Sudachiの形態素解析結果

Sudachiで形態素解析した結果のデータをTeradataのテーブル上に保存しました。docid | docdescという列の並びで、文書番号と形態素解析結果が1文書1列で格納されています。以下はdocdescの1行に入っているデータです。

中身は単語ごとに★印で区切られていて、さらにその中は単語、カンマが2つ、そしてかっこにくくられる形で単語の品詞など属性が入っており、各属性はシングルクオーテーションでくくられています。そしてかっこを閉じたのちに正規表現、カンマ、読みの順で記載され、次の★印が表れます。何らかのルールで区切ってある点はMecabと同じですが、区切り方は異なります。そのため、この区切り方に沿って分解をしていきます。


縦分解、横分解

実行するSQLは以下の通りです。各単語に関する属性では不要なものも多く、もともとの単語、品詞、そして正規表現の部分だけを抜き出します。

まずsrc内の処理ですが、これはMecabの際と同じですのでそちらを参照ください。
続いてrpls内の処理ですが、ここでは不要な文字列を削除したり、置き換えたりしているだけです。最終的な結果がカンマ区切りで横分解できるように調整しています。oreplace関数は文字列の一部分に対して置換をかける関数です。これを入れ子にしています。
そして最後のクエリーでカンマを区切り文字に、横分解しています。ここもMecabと同じなので説明は割愛します。
分解されたデータは以下のようになります。辞書登録したのもあり、Mecabと同じく分解されていますが、正規表現が少し違っています。

以上です。

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

///

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

いいなと思ったら応援しよう!