我有这段代码:
kurtosis
如果我打印一个句子,那么它的输出是这样的:
import gensim
import random
file = open('../../../dataset/output/interaction_jobroles_titles_tags.txt')
read_data = file.read()
data = read_data.split('\n')
sentences = [line.split() for line in data]
print(len(sentences))
print(sentences[1])
model = gensim.models.Word2Vec(min_count=1, window=10, size=300, negative=5)
model.build_vocab(sentences)
for epoch in range(5):
shuffled_sentences = random.shuffle(sentences)
model.train(shuffled_sentences)
print(epoch)
print(model)
model.save("../../../dataset/output/wordvectors_jobroles_titles_300d_10w_wordshuffling" + '.model')
我需要的是在训练之前将单词洗牌然后保存模型。
我不确定我是否以正确的方式编码。我最终有例外:
['JO_3787672', 'JO_272304', 'JO_2027410', 'TI_2969041', 'TI_2509936', 'TA_954638', 'TA_4321623', 'TA_339347', 'TA_272304', 'TA_3017535', 'TA_494116', 'TA_798840']
我想问你怎么能改变话语。
答案 0 :(得分:0)
Random.shuffle
将列表移动到位并返回none。因此,在此次通话后,您的混洗句子为None
。
答案 1 :(得分:0)
model.build_vocab(sentences)
sentences_list = sentences
Idx = range(len(sentences_list))
print(Idx)
for epoch in range(5):
random.shuffle(sentences)
perm_sentences = [sentences_list[i] for i in Idx]
model.train(perm_sentences)
print(epoch)
print(model)
model.save("somefile'.model')
这解决了我的问题。
但是如何在一个句子中改变个别单词呢?
句: ['JO_3787672','JO_272304','JO_2027410','TI_2969041','TI_2509936','TA_954638','TA_4321623','TA_339347','TA_272304','TA_3017535','TA_494116','TA_798840'] < / p>
我的目标是: 如果我检查最相似的单词,让我们说['JO_3787672'],那么每次它都会预测从'JO_'开始的单词。从“TA_”和“TI_”开始的单词的相似度得分非常低。 我怀疑,这是因为数据中的单词位置(我不确定)。这就是为什么我试着在单词之间进行改组(我真的不确定它是否有帮助)。