2017-11-07 7 views
0

Doc2Vec을 처음 사용했습니다. 저자의 작품을 분류하려고합니다. 나는 레이블이 달린 문장 (단락 또는 지정된 길이의 문자열)이있는 모델을 훈련 시켰는데, words = 단락의 단어 목록과 tags = 저자의 이름입니다. 제 경우에는 두 명의 작가 만 있습니다. 훈련 된 모델에서 docvecs 특성에 액세스를 시도했지만 모델을 교육 할 때 두 태그에 해당하는 두 요소 만 포함합니다. 나는 나중에 훈련 데이터로 사용할 수 있도록 훈련에 입력 한 각 단락의 doc2vec numpy 표현을 얻으려고합니다. 어떻게해야합니까? 감사합니다. .각 문서의 숙련 된 Doc2Vec 모델에서 numpy 벡터 가져 오기

답변

0

대량 교육은 사용자가 제공 한 태그에 대해서만 벡터를 생성합니다. (model.docvecs['paragraph000']처럼) 단락마다 대량 학습 벡터를 읽으려면 훈련 중에 각 단락에 고유 한 태그를 부여해야합니다 (예 : 'paragraph000'). 문서에는 다른 태그도 줄 수 있지만 대량 교육 만 수행하면 제공된 태그에 대한 doc-vectors가 생성됩니다.

훈련을 마치면 infer_vector()에 제공하는 다른 텍스트에 대한 벡터를 추론 할 수 있습니다. 물론 훈련 중에 사용 된 것과 동일한 단락을 제공 할 수도 있습니다.

+0

사실 나는 그걸 알아 냈고 당신이 말한 것처럼 단락 번호를 태그로 사용하고 있습니다. (저자 당 10000 벡터) 나는 두 저자 모두를 위해 이것을하고 SVM 모델 (sklearn)을 훈련시킨다. 그러나 벡터로 그 숫자 docvec 배열을 사용할 때 나는 끔찍한 정확도를 얻습니다. ~ 50 %. 나는 73 %의 nltk pos_tag를 가졌으므로 나는 틀린 일을해야만합니다 ... –

+0

정말 고마워요. 내 단락에 infer_vector를 사용했고 이진 분류 작업에서 93.28 %의 정확도를 얻었습니다 !! ;) –