gensim Doc2Vec: переход от текстовых файлов к TaggedDocuments - PullRequest
0 голосов
/ 19 октября 2018

Начинающий здесь.

У меня есть большое количество TXT-файлов, на которых я хочу обучить модель Doc2Vec.Однако у меня возникли проблемы с импортом данных в python удобным для использования способом.

Для импорта данных я использовал:

docLabels = []
docLabels = [f for f in listdir(“PATH TO YOU DOCUMENT FOLDER”) if 
f.endswith(‘.txt’)]
data = []
for doc in docLabels:
    data.append(open(‘PATH TO YOU DOCUMENT FOLDER’ + doc).read()) `

Однако при этом я получаю «список», с которым я больше не могу работать.Кажется, я не могу найти, как импортировать текстовые файлы так, чтобы их можно было использовать с NLTK / doc2vec в любом месте SO или в учебных пособиях.

Помощь будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 19 октября 2018

Я обращаюсь только к той части вопроса, которая указана в заголовке, около 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)
...