コラム

2021.06.23

【API・データ検証奮闘記】#10.TreasureDataで形態素解析やってみた

本コラムでは、APIやデータに関連する言語などを無邪気に触ってみた備忘録として、ライトに記載していきます!
「ちょっと違くない」「他にいい方法あるのに」といったご意見もあるかと思いますが、何卒お手柔らかに!!

<プロフィール>
富松 良介
2017年、株式会社サイバー・コミュニケーションズ(CCI)入社。Oracle Bluekai・Treasure Data等のDMPや、AWS・GCP等のPublicCloud領域を担務。2019年6月よりデータの利活用を推進するコンサルティング会社「株式会社DataCurrent」に出向し、事業会社の基盤構築・運用や自社ソリューション開発を担当。

●TreasureDataで形態素解析やってみた

ボス
ボス
取得したデータの文章を形態素解析してTreasureDataに格納して欲しい。
モブ
モブ
!?
かしこまり!!

TreasureDataで形態素解析をおこなう手順から格納した結果までをご紹介致します。

ステップ1. どうやって形態素解析するか調査してみた

モブ1
モブ1
プログラムつくる!?
モブ2
モブ2
ツール契約する!?
意識高いモブ
意識高いモブ
TreasureDataのHivemallで、形態素解析できるよね!
モブ
モブ
TreasureData で形態素解析することにしよう!!
ボス
ボス
それでやってくれ。

●ステップ2. 形態素解析してみた

早速形態素解析を実行してみる。

TreasureDataに格納している、弊社サイトのアクセスログ

サイトdescriptionの形態素解析し名詞ごとのPV数を集計する

WITH A AS(
SELECT
  tokenize_ja_neologd(
    td_description,
    "normal",
    null,
    array("名詞-代名詞","名詞-代名詞-一般","名詞-代名詞-縮約","名詞-数","名詞-非自立","名詞-非自立-副詞可能","名詞-非自立-助動詞語幹","名詞-非自立-形容動詞語幹","名詞-特殊","名詞-特殊-助動詞語幹","名詞-接尾","名詞-接尾-一般","名詞-接尾-人名","名詞-接尾-地域","名詞-接尾-サ変接続","名詞-接尾-助動詞語幹","名詞-接尾-形容動詞語幹","名詞-接尾-副詞可能","名詞-接尾-助数詞","名詞-接尾-特殊","名詞-接続詞的","名詞-動詞非自立的","名詞-引用文字列","名詞-ナイ形容詞語幹","接頭詞","接頭詞-名詞接続","接頭詞-動詞接続","接頭詞-形容詞接続","接頭詞-数接続","動詞","動詞-自立","動詞-非自立","動詞-接尾","形容詞","形容詞-自立","形容詞-非自立","形容詞-接尾","副詞","副詞-一般","副詞-助詞類接続","連体詞","接続詞","助詞","助詞-格助詞","助詞-格助詞-一般","助詞-格助詞-引用","助詞-格助詞-連語","助詞-接続助詞","助詞-係助詞","助詞-副助詞","助詞-間投助詞","助詞-並立助詞","助詞-終助詞","助詞-副助詞/並立助詞/終助詞","助詞-連体化","助詞-副詞化","助詞-特殊","助動詞","記号","記号-一般","記号-読点","記号-句点","記号-空白","記号-括弧開","記号-括弧閉","記号-アルファベット","その他","その他-間投","フィラー","非言語音","語断片","未知語")
  )AS words
FROM
  access_log_v02
WHERE TD_TIME_RANGE(time, '2021-06-01', NULL, 'JST')
)
SELECT
  word,
  COUNT(*) AS cnt
FROM
  A LATERAL VIEW EXPLODE(words)t AS word
WHERE 1=1
      AND word not rlike '^[a-zA-Z0-9]{1}$' -- 除外 英語一文字
      AND word not rlike "^[!-9@_]*$" -- 除外 数字記号のみ
      AND word not rlike "^[〇一二三四五六七八九]*$" -- 漢数字のみ
      AND word not rlike "^[\u3041-\u3096\u30A1-\u30FA]{1}$" -- ひらがなカタカナ1文字
GROUP BY 1
ORDER BY cnt DESC

できた!!!

ステップ3. 取得結果

意識高いモブ
意識高いモブ
ちなみに、Hivemallの形態素解析は、カスタムの単語辞書も対応しているよ!たとえばアーティストや楽曲の名前等オリジナル性の高い言葉は、カスタム辞書は必須だよ!

※2021年6月時点の情報

Apache Hivemall : Tokenizer for English Texts/ Non-English Texts

最後に

弊社では、ツール間のデータ連携や設定方法はもちろん、その他データの取り扱いに関する課題に対してトータルで支援しております。
お困りごとございましたら、お気軽にお問い合わせください。

本データに関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp