学習記録(32日目)
勉強開始:12/7(土)〜
教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/7(土)〜12/19(木)読了
・Progate Python講座(全5コース):12/19(木)〜12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12/21(土)〜12月23日(土)読了
・Kaggle : Real or Not? NLP with Disaster Tweets :12月28日(土)投稿〜1月3日(金)まで調整
・Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1/4(水)〜1/13(月)読了
・斎藤康毅『ゼロから作るDeep Learning』(オライリージャパン、2016年):1/15(水)〜1/20(月)
・François Chollet『PythonとKerasによるディープラーニング』(クイープ、2018年):1/21(火)〜
『PythonとKerasによるディープラーニング』
p.244 第6章 テキストとシーケンスのためのディープラーニング まで読み終わり。
学習済みの単語埋め込み
・学習済みネットワーク(単語埋め込み) : 大規模なデータセットで訓練された後、保存されたもののこと。
使用されたデータセットの大きさや汎用性が十分である場合、学習された特徴量の空間階層は事実上、同じ世界の汎用モデルとなる。
画像分類におけるCNN(パターンの移動不変性、空間階層の学習)と同様に、必要である特徴量がかなり汎用的で一般的な視覚的特徴量か意味的特徴量を持つのであれば、自然言語処理においても学習済みの単語埋め込みが有利に働く。
学習済みモデルは埋め込み(Embedding)層に適用する。埋め込み層は、"特定の単語を表す整数のインデックスを密ベクトルにマッピングするディクショナリ"として考えるとわかりやすい。
(単語のインデックス → 埋め込み層 → 対応する単語ベクトル)
以前挑戦したKaggle(Real or Not? NLP with Disaster Tweets)が自然言語処理問題であったこともあり、現在これらのデータセットに学習済みモデル(gensim : glove-twitter)を適用しようと試行錯誤中。
gensim = '/Users/***/gensim-data/glove-twitter-100' #あらかじめZIPファイルを展開しておく。
embedding_index = {}
f = open(os.path.join(gensim, 'glove-twitter-100'))
for line in f:
values = line.split()
word = values[0]
coefs = np.asarray(values[1:], dtype = 'float32')
embedding_index[word] = coefs
f.close()
print('Found %s word vectors.' % len (embedding_index))
#Found 1193515 word vectors.
悪戦苦闘中
・train.csv['text']のトークン化
前回はtfidf_vectorizerで一括変換できたものの、今回はEmbedding層を通すため、あらかじめトークン化する必要がある・・・が、なぜかうまくいかない。
書籍ではkeras組み込みのTokenizerで処理されているため、同様の手順を試みているものの以下のエラー。
googleフル活用中