Я обращаюсь только к той части вопроса, которая указана в заголовке, около Doc2Vec
и TaggedDocument
.(NLTK - это отдельный вопрос.)
Класс TaggedDocument
требует, чтобы вы указали words
и tags
для каждого созданного объекта.
Таким образом, если вы в настоящий момент просто добавляете большое полное чтение файла к вашему data
, вы вместо этого захотите:
- разбить эти данные на слова - один супер-простой способ - просто
.split()
сделать это на пустом месте, хотя большинство проектов делают больше - выбрать тег или теги, возможно, просто само имя файла
- создать экземпляр
TaggedDocument
и добавитьчто на data
Итак, вы можете заменить существующий цикл на:
for doc in docLabels:
words = open(open(‘PATH TO YOU DOCUMENT FOLDER’ + doc).read()).split()
tags = [doc]
data.append(TaggedDocument(words=words, tags=tags)