用于doc2vec训练的doc2vec输入格式和python中的infer_vector()

2024-10-03 09:20:26 发布

您现在位置:Python中文网/ 问答频道 /正文

在gensim中,当我给一个字符串作为训练doc2vec模型的输入时,我得到以下错误:

TypeError('don\'t know how to handle uri %s' % repr(uri))

我提到了这个问题Doc2vec : TaggedLineDocument() 但对输入格式仍有疑问。在

documents = TaggedLineDocument('myfile.txt')

应该我的文件.txt在每个文档或字符串的每一行中是否有标记作为列表列表或单独列表?在

For eg-我有两个文档。在

机器学习是计算机科学的一个分支,从模式识别的研究发展而来。在

博士2:Arthur Samuel将机器学习定义为“赋予计算机学习能力的研究领域”。在

那么,myFile.txt应该是什么样子呢?在

案例1:每行中每个文档的简单文本

机器学习是从模式识别研究发展而来的计算机科学的一个分支

亚瑟·塞缪尔将机器学习定义为赋予计算机学习能力的一个研究领域

案例2:具有每个文档的标记的列表列表

[ ["Machine", "learning", "is", "a", "subfield", "of", "computer", "science", "that", "evolved", "from", "the", "study", "of", "pattern", "recognition"]

["Arthur", "Samuel", "defined", "machine", "learning", "as", "a", "Field", "of", "study", "that", "gives", "computers" ,"the", "ability", "to", "learn"] ]

案例3:在单独的行中列出每个文档的令牌

^{pr2}$

当我在测试数据上运行它时,我要预测doc向量的句子格式应该是什么?应该像下面的案例1或案例2还是其他什么?在

model.infer_vector(testSentence, alpha=start_alpha, steps=infer_epoch)

测试句子应该是:

案例1:字符串

testSentence = "Machine learning is an evolving field"

案例2:令牌列表

testSentence = ["Machine", "learning", "is", "an", "evolving", "field"]

Tags: ofto字符串文档txt机器列表is
1条回答
网友
1楼 · 发布于 2024-10-03 09:20:26

TaggedLineDocument是一个方便类,它希望其源文件(或类似文件的对象)是空格分隔的标记,每行一个。(也就是说,你在第一个问题中称之为“案例1”。)

但是您可以编写自己的iterable对象作为documents作为gensimdocuments语料库,只要这个语料库(1)iterable返回next()对象,这些对象与TaggedDocument一样,具有words和{}列表;并且(2)可以多次迭代,因为Doc2Vec同时需要对初始词汇表调查和然后iter训练通过。在

infer_vector()方法接受标记列表,类似于单个TaggedDocument类对象的words属性。(也就是说,你在第二个问题中称之为“案例2”。)

相关问题 更多 >