2

我正在使用 Gensim 的 doc2vec 方法读取我的文本文件,其中每行包含 1 个句子。它将我的文件读入字典,其中键是术语的标记列表,值是句子编号。

这是我的代码:

    from gensim import utils
    from gensim.models.doc2vec import LabeledSentence,TaggedLineDocument
    from gensim.models import Doc2Vec
    new_file = open('new_file.txt','w')
    with open('myfile.txt','r') as inp:
        for line in inp:
            utils.simple_preprocess(line)
            file1.write(str(utils.simple_preprocess(line)) + "\n")
    file1.close()

新文件的示例输出:

[u'hi', u'how', u'are', u'you']
[u'its', u'such', u'great', u'day']
[u'its', u'such', u'great', u'day']
[u'its', u'such', u'great', u'day']

然后我将该列表输入 gensim 的 taggedlinedocument 函数:

s = TaggedLineDocument('myfile.txt')
for k,v in s:
    print k, v

示例输出:

[u'hi', u'how', u'are', u'you'] [0]
[u'hi', u'how', u'are', u'you'] [1]
[u'hi', u'how', u'are', u'you'] [2]
[u'its', u'such', u'a', u'great', u'day'] [3]
[u'its', u'such', u'a', u'great', u'day'] [4]

问题是,给定标签 id(示例 0),我如何取回原始句子?

4

1 回答 1

1

Gensim 的 Word2Vec/Doc2Vec 模型不存储语料库数据——他们只检查它,多遍,以训练模型。如果您需要检索原始文本,您应该使用自己的数据结构。

于 2017-01-19T03:44:27.453 回答