Я использую набор данных электронной почты enron.Я должен назначить 5 ярлыков этим классам, а именно: оценка, повышение, send_document, request_for_document, meeting_invites.Теперь я использовал doc2vec, чтобы назначить ему метки, используя:
emails_df['tokenized_sents'] = emails_df.iloc[0:1000].apply(lambda row: nltk.word_tokenize(row['content']), axis=1)
common_texts = [
['We' ,'were', 'impressed', 'with' ,'the' ,'work', 'produced' ,'by' ,'you' ,'and' ,'you' ,'showed' ,'leadership', 'qualities' ,'that' 'the' ,'rest' ,'of' ,'the', 'team' ,'could' ,'look', 'up' ,'to'],
['Finish' ,'the' ,'financial' ,'analysis', 'report', 'that' ,'was' ,'started' ,'last' ,'week'],
['Please', 'find', 'attached'],
['Looking', 'forward', 'to' ,'hearing' ,'from', 'you'],
['The' , 'meeting', 'will', 'take', 'place', 'on', 'Wednesday'],
['forwarded', 'to', 'xx']
]
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(common_texts)]
labels = []
#print (documents)
model = Doc2Vec(documents, size=5, window=3, min_count=1, workers=4)
#Persist a model to disk:
from gensim.test.utils import get_tmpfile
fname = get_tmpfile("my_doc2vec_model")
#print (fname)
#output: C:\Users\userABC\AppData\Local\Temp\my_doc2vec_model
#load model from saved file
model.save(fname)
model = Doc2Vec.load(fname)
# you can continue training with the loaded model!
#If you’re finished training a model (=no more updates, only querying, reduce memory usage), you can do:
model.delete_temporary_training_data(keep_doctags_vectors=True, keep_inference=True)
#Infer vector for a new document:
#Here our text paragraph just 2 words
c=0
for i in emails_df['tokenized_sents']:
vector = model.infer_vector(i)
c=c+1
import operator
index, value = max(enumerate(vector), key=operator.itemgetter(1))
labels.append(index)
Здесь, emails_df - это просто фрейм данных, для которого я читаю emails.csv.Мне не нужен идеальный этикетировщик, но мне нужно что-то стоящее.В каком направлении мне теперь идти, чтобы немного его улучшить?(учитывая, что я впервые узнал о doc2vec)
Редактировать: Объяснение: Я создал common_texts как вектор объектов, который содержит предложения, принадлежащие каждому классу.Затем я применяю doc2vec, а затем использую его функцию infer_vector для генерации сходства