gensim Doc2Vec:从txt文件到TaggedDocuments

时间:2018-10-19 13:08:32

标签: python gensim doc2vec

初学者在这里。

我有大量的.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()) `

但是,有了这个,我会得到一个“列表”,无法进行进一步的处理。我似乎找不到如何导入文本文件的方式,使其可以在SO上或教程中的任何地方与NLTK / doc2vec一起使用。

我们将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我只解决标题所指示的部分问题,即Doc2VecTaggedDocument。 (NLTK是另一回事。)

TaggedDocument类要求您为创建的每个对象指定wordstags

因此,当您当前仅向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)