【问题标题】:doc2vec - Input Format for doc2vec training and infer_vector() in pythondoc2vec - python 中 doc2vec 训练和 infer_vector() 的输入格式
【发布时间】:2016-09-21 11:33:05
【问题描述】:

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

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

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

documents = TaggedLineDocument('myfile.txt')

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

For eg - 我有 2 个文件。

文档 1:机器学习是计算机科学的一个子领域,从模式识别研究发展而来。

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

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

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

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

Arthur Samuel 将机器学习定义为赋予计算机学习能力的研究领域

案例 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:单独一行中每个文档的标记列表

["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"]

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

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

testSentence 应该是:

案例 1:字符串

testSentence = "Machine learning is an evolving field"

案例 2:令牌列表

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

【问题讨论】:

    标签: python gensim word2vec doc2vec


    【解决方案1】:

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

    但是您可以编写自己的可迭代对象以作为 documents 语料库提供给 gensim Doc2Vec,只要此语料库 (1) 可迭代地返回 next() 对象,例如 TaggedDocument,具有 wordstags 列表; (2) 可以迭代多次,因为多次通过Doc2Vec 需要初始词汇调查和iter 训练通过。

    infer_vector() 方法采用令牌列表,类似于单个 TaggedDocument 类对象的 words 属性。 (也就是说,您在第二个问题中称为“案例 2”。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      相关资源
      最近更新 更多