gpt4 book ai didi

gensim - gensim LabeledSentence 和 TaggedDocument 有什么区别

转载 作者:行者123 更新时间:2023-12-04 08:04:14 33 4
gpt4 key购买 nike

请帮助我理解如何 TaggedDocument 之间的区别和 LabeledSentencegensim作品。我的最终目标是使用 Doc2Vec 进行文本分类模型和任何分类器。我正在关注这个 blog !

class MyLabeledSentences(object):
def __init__(self, dirname, dataDct={}, sentList=[]):
self.dirname = dirname
self.dataDct = {}
self.sentList = []
def ToArray(self):
for fname in os.listdir(self.dirname):
with open(os.path.join(self.dirname, fname)) as fin:
for item_no, sentence in enumerate(fin):
self.sentList.append(LabeledSentence([w for w in sentence.lower().split() if w in stopwords.words('english')], [fname.split('.')[0].strip() + '_%s' % item_no]))
return sentList


class MyTaggedDocument(object):
def __init__(self, dirname, dataDct={}, sentList=[]):
self.dirname = dirname
self.dataDct = {}
self.sentList = []
def ToArray(self):
for fname in os.listdir(self.dirname):
with open(os.path.join(self.dirname, fname)) as fin:
for item_no, sentence in enumerate(fin):
self.sentList.append(TaggedDocument([w for w in sentence.lower().split() if w in stopwords.words('english')], [fname.split('.')[0].strip() + '_%s' % item_no]))
return sentList

sentences = MyLabeledSentences(some_dir_name)
model_l = Doc2Vec(min_count=1, window=10, size=300, sample=1e-4, negative=5, workers=7)
sentences_l = sentences.ToArray()
model_l.build_vocab(sentences_l )
for epoch in range(15): #
random.shuffle(sentences_l )
model.train(sentences_l )
model.alpha -= 0.002 # decrease the learning rate
model.min_alpha = model_l.alpha

sentences = MyTaggedDocument(some_dir_name)
model_t = Doc2Vec(min_count=1, window=10, size=300, sample=1e-4, negative=5, workers=7)
sentences_t = sentences.ToArray()
model_l.build_vocab(sentences_t)
for epoch in range(15): #
random.shuffle(sentences_t)
model.train(sentences_t)
model.alpha -= 0.002 # decrease the learning rate
model.min_alpha = model_l.alpha

我的问题是 model_l.docvecs['some_word']model_t.docvecs['some_word'] 相同?
你能给我提供好的资源的网络链接来了解如何 TaggedDocumentLabeledSentence作品。

最佳答案

LabeledSentence是相同的简单对象类型的旧名称,已弃用,用于封装现在称为 TaggedDocument 的文本示例.任何具有 words 的对象和 tags属性,每一个列表,都行。 ( words 总是一个字符串列表;tags 可以是整数和字符串的混合,但在最常见和最有效的情况下,只是一个具有单个 id 整数的列表,从 0 开始。)
model_lmodel_t将用于相同的目的,使用相同的参数对相同的数据进行训练,只是为对象使用不同的名称。但是它们为单个单词标记( model['some_word'] )或文档标签( model.docvecs['somefilename_NN'] )返回的向量可能会有所不同——Word2Vec/Doc2Vec 初始化和训练采样中存在随机性,并且由 ordering-jitter 引入多线程训练。

关于gensim - gensim LabeledSentence 和 TaggedDocument 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41182372/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com