生物と機械の間(自然言語処理研究と徒然。DeepにLerning中)

自然言語処理研究@レベル1。「コンピュタと人間の相互理解を深める」を大きなテーマにしています。タスクは対話システム。分子生物学から興味が移動したため、生物と機械の間を探しています。生物をモデルにしたプログラムが好きです。

強く、賢く、美しく。クラシック、クール、チャーミング。 本気に必死に。

【アウトプット】【コード】単語の分散表現を得るためのファイル

アウトプットめんどくさがりなので、とりあえずブログを続けてみることを目標に。

 

LDAの分散表現用いた拡張版を使うために書いたプログラム。

単語と対応する分散表現(word2vec使用)を書き込んだファイルができる。

 

ほぼプログラムは独学なので色々ひどい。

作ったプログラムを、一回ポッキリでなく、ストックして後から使えるようにしたいなぁと思いつつもできていない。

自分の作った、プログラムのストック箱みたいな。パーツ置き場みたいな。gitでできそうだけどな。置き場だけ作るだけ作ろうかな。

うん、綺麗なコード書くための練習としても、やっぱりストックは作ってみたいな。

 

はてなのコード埋め込み表示(❓)やりたいけどできていない。

 

 

# coding:utf-8

import MeCab
import math

m = MeCab.Tagger("-Ochasen")
from gensim.models import word2vec
import logging
import sys
import string, codecs

#全単語をリストに入れる 
emb_word =
meisi = 0

# 学習済みモデルのロード
model = word2vec.Word2Vec.load("sample.model")


#ファイルの指定(指定できるファイル3つ ①file_emb ②fw ③fe_w )
#file_emb = 'jawiki_wakati.txt'
#file_emb = 'yahoo_textM.txt'
file_emb = "word_corpus_stopwords_meisi_test.txt"

 

def embbeding_filemake():
fe_w = codecs.open("word_vector_emb_corpus.txt","w",'utf-8')
with open (file_emb,"r") as f:
#わかち文字列の連結
while True:
line = f.readline()
words = line.strip().split()
#print words

v_word =
for word in words:
word = unicode(word, 'utf-8')
try:
vector = model.wv[word]
# f2.write(word)
# f2.write(" ")
#v_word.apeend(word)
print word
fe_w.write(word)
fe_w.write(" ")
emb_word.append(word)
for v in vector:
print v,
#これstrで書き込んでいいのか微妙だけど、、
v = str(v)
v = unicode(v, 'utf-8')
fe_w.write(v)
fe_w.write(" ")
fe_w.write("\n")
except:
import traceback
traceback.print_exc()
pass
# f2.write("\n")


if line == "":
break

def embbedingWord_filemake():
fw = codecs.open("emb_word_cprpus.txt","w",'utf-8')
for w in emb_word:
fw.write(w)
fw.write("\n")

 


if __name__ == '__main__':
embbeding_filemake()
embbedingWord_filemake()

fe_w.close()
fw.close()