1

次のように、csv ファイルの文を使用して、gensim で word2vec モデルをトレーニングしています。

import string
import gensim
import csv
import nltk

path = '/home/neel/Desktop/csci544_proj/test/sample.csv'
translator = str.maketrans({key: None for key in string.punctuation})

class gen(object):

    def __init__(self, path):
        self.path = path

    def __iter__(self):
        with open(path) as infile:
            reader = csv.reader(infile)
            for row in reader:
                rev = row[4]
                l = nltk.sent_tokenize(rev)
                for sent in l:
                    sent = sent.translate(translator)
                    yield sent.lower().split()

sentences = [path]
for p in gen(path):
    model = gensim.models.Word2Vec(p, min_count=1, iter=1)

print(model.vocab.keys())

次の結果が得られます: (['b', 'u', 'm', 'h', 'e', 'n', 'r', 'v', 'i', 'a', 't ', 's', 'k', 'w', 'o', 'l'])

私が得た結果は言葉ではなく文字です。プログラムのどこが間違っているのでしょうか?

4

1 に答える 1