Да, это возможно.Вы можете использовать doc2vec (я предлагаю библиотеку gensim для python), чтобы создать векторное пространство для слов в ваших 500 положительных документах.Используя это представление, можно запросить сходство между новыми выборками (выборка из вас 9000 выборок) и набором корпоративных данных (500 выборок).Если вы считаете сходство «достаточно похожим», вы можете пометить его как 1.
Для хорошего учебника и кода обратитесь к: https://markroxor.github.io/gensim/static/notebooks/doc2vec-IMDB.html
, вы можете пропустить «Методы прогнозной оценки», вероятно,самый интересный для вас раздел: «Кажется ли закрытые документы более связанными, чем отдаленные?»
РЕДАКТИРОВАТЬ: ответ на комментарий.Да, я использовал код некоторое время назад (я не очень хорошо помню, если у меня были ошибки).Реализация кода, который я использовал, приведена ниже.Пожалуйста, учтите, что я использовал машину с 8 ядрами
def labelize_tweets_ug(tweets,label):
result = []
prefix = label
for i, t in zip(tweets.index, tweets):
result.append(TaggedDocument(t.split(), [prefix + '_%s' % i]))
return result
# all_x is a list of tweets
all_x_w2v = labelize_tweets_ug(all_x, 'all')
cores = multiprocessing.cpu_count()
model_ug_cbow = Word2Vec(sg=0, size=100, negative=5, window=2, min_count=2,
workers=cores, alpha=0.065, min_alpha=0.065)
model_ug_cbow.build_vocab([x.words for x in tqdm(all_x_w2v)])
for epoch in range(30):
model_ug_cbow.train(utils.shuffle([x.words for x in tqdm(all_x_w2v)]),total_examples=len(all_x_w2v), epochs=1)
model_ug_cbow.alpha -= 0.002
model_ug_cbow.min_alpha = model_ug_cbow.alpha