(整理予定)言語処理道一合目

対話システム・言語処理についてぼちぼち頑張るブログ

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

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

 

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()