Gensim の doc2vec メソッドを使用して、1 行に 1 文のテキスト ファイルを読み込んでいます。キーが用語のトークン化されたリストであり、値が文番号である辞書に私のファイルを読み込みます。
これが私のコードです:
from gensim import utils
from gensim.models.doc2vec import LabeledSentence,TaggedLineDocument
from gensim.models import Doc2Vec
new_file = open('new_file.txt','w')
with open('myfile.txt','r') as inp:
for line in inp:
utils.simple_preprocess(line)
file1.write(str(utils.simple_preprocess(line)) + "\n")
file1.close()
新しいファイルの出力例:
[u'hi', u'how', u'are', u'you']
[u'its', u'such', u'great', u'day']
[u'its', u'such', u'great', u'day']
[u'its', u'such', u'great', u'day']
次に、そのリストを gensim の taggedlinedocument 関数にフィードします。
s = TaggedLineDocument('myfile.txt')
for k,v in s:
print k, v
出力例:
[u'hi', u'how', u'are', u'you'] [0]
[u'hi', u'how', u'are', u'you'] [1]
[u'hi', u'how', u'are', u'you'] [2]
[u'its', u'such', u'a', u'great', u'day'] [3]
[u'its', u'such', u'a', u'great', u'day'] [4]
質問は、タグ ID (例 0) が与えられた場合、どうすれば元の文を取得できますか?