Я следую этому руководству по Word2Vec .Я хочу сделать модель gensim, и первое, что я хочу сделать, это попробовать этот код:
class MySentences(object):
def __init__(self, dirname):
self.dirname = dirname
def __iter__(self):
for fname in os.listdir(self.dirname):
for line in open(os.path.join(self.dirname, fname)):
yield line.split()
sentences = MySentences('wos_abstracts') # a memory-friendly iterator
model = gensim.models.Word2Vec(sentences)
wos_abstracts - это папка, в которой содержится сотня файлов для создания модели.Когда я попытался запустить его, он вернул ошибку «кодек charmap не может декодировать байт 0x8».Я полагаю, если это правильно, это связано с юникодом, так как реализовать чтение файлов как юникод на основе приведенного выше кода?А если нет, что мне добавить?Спасибо за вашу помощь.
ОБНОВЛЕНИЕ (ОТВЕТ)
for fname in os.listdir(self.dirname):
with open(os.path.join(self.dirname, fname), encoding="utf8") as f:
yield f.read()