やること
私は宇宙人です。
-> '私 は 宇宙人 です。' と変換していく。
前回クロールしてアドレス一覧からページのテキストを拾ってきて '.csv' に保存したので今回はそれらのテキストを分割して word2vecなどの前処理に入れられる状態で保存する。
前回
MeCabインストール
Ubuntu 14.04, Mac OS X に MeCab をインストール - ゆるふわめも
分かち書き
コード
# coding: utf-8 import matplotlib.pyplot as plt import numpy as np import pandas as pd import scipy as sc import seaborn as sns import MeCab import codecs as cd # 適当なデータをロード # データは ['サイト名', 'アドレス', 'テキスト'] desc_data = pd.read_csv('site_descriptions.csv', delimiter='\t') desc_data = desc_data.ix[:,['name','adress','site_description']] # mecab m0 = MeCab.Tagger('-Owakati') wakachi_list = [] for i, di in enumerate(desc_data['site_description']): try: w = m0.parse(di) except: w = di if 'list' in str(type(w)): print('No.', i, w[:30]) wakachi_list += [w.split(' ')] else: print('X No.', i, w) wakachi_list += [w] # save data wakachi_data = pd.DataFrame(wakachi_list) wakachi_data.columns = ['wakachi'] wakachi_data = pd.concat([desc_data.ix[:i, :], wakachi_data], axis=1) wakachi_data.to_csv('site_descriptions_wakachi.csv', delimiter=',')
データ site_descriptions.csv
は ['サイト名', 'アドレス', 'テキスト']が書いてある。
そこから分かち書きを生成していく(w = m0.parse(di)
)。
テキスト取得に失敗している場合はそのままスキップ。
wakachi_data.to_csv('site_descriptions_wakachi.csv', delimiter=',')
でデータを保存する。最終的な出力は以下のような感じになっている。 ※実際にはナイキでなく他ページでやってます。