📚
Janomeでユーザー辞書を使ってみた
Janome の形態素解析を使う際、ユーザー辞書の使い方を調べるついでに、Google Colab から GoogleSpreadSheet上のユーザー辞書を読み込む方法についても調べたのでまとめます。
コードはこちら。
なお、使っているGoogleSpreadSheetはこちら。
GoogleSpreadSheet からデータを取得
下記のコードを実行し、Google認証を実行してGoogleSpreadSheetのデータを取得し、一旦csv化します。
from google.colab import auth
from oauth2client.client import GoogleCredentials
import gspread
# 対象のGoogle SpreadSheetのURLを添付
ulr = "https://docs.google.com/spreadsheets/d/xxxxxxxxxxx/edit#gid=x" # アドレスバーからそのままコピペ
# URLからSpreadSheet の固有キーを取得
key = ulr.split("/")[5] # 5番目がキーじゃないときは適宜修正してください
# 認証処理
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default())
# Google SpreadSheet からデータを取得
sh = gc.open_by_key(key)
worksheet = sh.get_worksheet(0)
# DataFrameに変換
df = pd.DataFrame(worksheet.get_all_values())
# csvとして保存
df.to_csv("user_dictionary.csv", header=False, index=False)
ユーザー辞書を使ってトークナイズ実行
ユーザー辞書なしでトークナイズを実行すると、東京スカイツリーが「東京」と「スカイ」と「ツリー」に分解されてしまいます。
from janome.tokenizer import Tokenizer
t = Tokenizer()
for token in t.tokenize(u'東京スカイツリーへのお越しは、東武スカイツリーライン「とうきょうスカイツリー駅」が便 利です。'):
print(token)
東京 名詞,固有名詞,地域,一般,*,*,東京,トウキョウ,トーキョー
スカイ 名詞,一般,*,*,*,*,スカイ,スカイ,スカイ
ツリー 名詞,一般,*,*,*,*,ツリー,ツリー,ツリー
へ 助詞,格助詞,一般,*,*,*,へ,ヘ,エ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
お越し 名詞,一般,*,*,*,*,お越し,オコシ,オコシ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
、 記号,読点,*,*,*,*,、,、,、
東武 名詞,固有名詞,組織,*,*,*,東武,トウブ,トーブ
スカイツリーライン 名詞,一般,*,*,*,*,スカイツリーライン,*,*
「 記号,括弧開,*,*,*,*,「,「,「
とう 副詞,助詞類接続,*,*,*,*,とう,トウ,トウ
きょう 名詞,副詞可能,*,*,*,*,きょう,キョウ,キョー
スカイ 名詞,一般,*,*,*,*,スカイ,スカイ,スカイ
ツリー 名詞,一般,*,*,*,*,ツリー,ツリー,ツリー
駅 名詞,接尾,地域,*,*,*,駅,エキ,エキ
」 記号,括弧閉,*,*,*,*,」,」,」
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
便 名詞,一般,*,*,*,*,便,ビン,ビン
記号,空白,*,*,*,*, ,*,*
利 名詞,一般,*,*,*,*,利,リ,リ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
一方、東京スカイツリーや東武スカイツリー等をユーザー辞書に登録して使用すると、ちゃんと1つの単語として分解されました。
t = Tokenizer("/content/user_dictionary.csv", udic_type="simpledic", udic_enc="utf8")
for token in t.tokenize(u'東京スカイツリーへのお越しは、東武スカイツリーライン「とうきょうスカイツリー駅」が便 利です。'):
print(token)
東京スカイツリー カスタム名詞,*,*,*,*,*,東京スカイツリー,トウキョウスカイツリー,トウキョウスカイツリー
へ 助詞,格助詞,一般,*,*,*,へ,ヘ,エ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
お越し 名詞,一般,*,*,*,*,お越し,オコシ,オコシ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
、 記号,読点,*,*,*,*,、,、,、
東武スカイツリーライン カスタム名詞,*,*,*,*,*,東武スカイツリーライン,トウブスカイツリーライン,トウブスカイツリーライン
「 記号,括弧開,*,*,*,*,「,「,「
とうきょうスカイツリー駅 カスタム名詞,*,*,*,*,*,とうきょうスカイツリー駅,トウキョウスカイツリーエキ,トウキョウスカイツリーエキ
」 記号,括弧閉,*,*,*,*,」,」,」
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
便 名詞,一般,*,*,*,*,便,ビン,ビン
記号,空白,*,*,*,*, ,*,*
利 名詞,一般,*,*,*,*,利,リ,リ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
以上になります、最後までお読みいただきありがとうございました。
Discussion