ツイートからユーザ辞書(MeCab や Janome 用)をpython で作ってみる

gensim の Phrases を使えば、文書に頻出するフレーズ(単語の組合せ)を簡単に探せることを こちら で見ました。この Phrases を使って、辞書に未登録の複合語を探してみようと思います。
たとえば “プログラム言語” とか “拡散希望”、 “女子会” といった単語を拾いだしてみたいと思います。

元ネタの文書として twitter のツイートを使うことにします。

使用ツール

TwitterAPI

ツイートを大量に取得するため TwitterAPI を利用します。
こちら で作った python コードを利用します。

Janome

単語の分割や品詞の判定には janome を使います。
バージョンは 0.2.8 以降。
Janome について

Phrases

ツイートから頻出フレーズを抜き出すために Phrases を使用します。
Phrases について

tweet_dict

名詞だけ

フレーズのうち、名詞とみなせそうなものだけ拾いだすことにします。
文法的な正しさはちょっと横に置いておいて、次のルールを設けます。

名詞 + 名詞のフレーズは多分 名詞

名詞 + 名詞 はきっと名詞だろうという安易な想定ですが、たとえば、次のようなフレーズを拾えるようにします。

駅前広場、人工無能

ただし、名詞とはいえ、1号店、2号店のように数字が混ざるものははずします。
また、固有名詞も除外します。
ひらがなだけのフレーズもはずします。”げげ” とか “らら” を除外するためです。

動詞も一部 OK

飲み放題 という単語も拾いたいのですが、”飲み” は動詞です。
そこで、動詞は、連用形なら OK とします。
(”飲み” は “飲む” の連用形)

パラメータ

以下の 2 項目をパラメータ指定できるようにします。

  • キーワード
    ツイートの検索キーワード
  • ツイート件数
    ツイートを取得する件数

ユーザー定義辞書も指定できるようにします。

出力形式

CSV形式

MeCab 辞書フォーマットの CSV 形式で出力します。ファイルに落とせば janome のユーザー辞書として使えます。もちろん MeCab の辞書更新にも使えます。

品詞やコスト等は固定

品詞は名詞(一般)を固定でセットします。
左文脈ID、右文脈ID、コストも固定値をセットします。
読み、発音も * を固定でセットします。

プログラム

ソース

パラメータ

キーワード:グルメ
ツイート件数:5000 件

となっています。

結果

キーワード:グルメ

(以下は一部のハードコピーです。こちらに、全テキスト)

phrase_gurume

キーワード:人工知能

キーワードを変えて試します。”人工知能”

(以下は一部のハードコピーです。こちらに、全テキスト)

phrase_ai

コメントはお気軽に