2017-04-21 7 views
1

내 문서의 고유 식별자로 Doc2Vec 태그를 사용하고 있습니다. 각 문서는 다른 태그를 가지고 의미 론적 의미가 없습니다. 태그를 사용하여 특정 문서를 찾았으므로 이들 간의 유사성을 계산할 수 있습니다.Doc2Vec는 태그에 대한 표현을 배우나요?

태그가 내 모델의 결과에 영향을 줍니까?

tutorial에서는 매개 변수 train_lbls=false에 대해 이야기하고 있으며이 값을 false로 설정하면 레이블 (태그)에 대해 알 수없는 표현이 있습니다.

튜토리얼은 다소 날짜가 변했고 매개 변수가 더 이상 존재하지 않는다고 생각합니다. Doc2Vec이 태그를 어떻게 처리합니까?

답변

4

gensim의 Doc2Vec의 경우 텍스트 예제는 TaggedDocument 클래스와 비슷한 개체 여야합니다 (예 : wordstags 속성). tags 속성은 '태그'목록이어야하며, 해당 텍스트에서 학습 된 문서 벡터의 키 역할을합니다.

기존/기존의 경우 각 문서에는 하나의 태그 (기본적으로 해당 문서의 고유 ID)가 있습니다. (태그는 문자열 일 수 있지만 매우 큰 코퍼스의 경우 Skip 값이없는 일반 파이썬 int 인 태그를 사용하는 경우 Doc2Vec의 메모리 사용량이 다소 적습니다.

태그를 사용하여 look- 훈련 후 학습 벡터를 올리십시오. 당신은 하나의 태그 'mars'와 함께 훈련하는 동안 문서를 가지고 있다면, 당신은 룩업 것와 학습 벡터 :

model.docvecs['mars'] 

당신이 model.docvecs.most_similar['mars'] 호출을한다면, 그 결과는 다음과 같이 자신의 태그 키에 의해보고됩니다 잘.

태그는 입니다. doc-vectors 컬렉션에 키가 있습니다. 의미 론적 의미가 없으며 텍스트의 단어 토큰에서 문자열이 반복 되더라도이 태그 키와 워드.

즉, 단일 ID 태그가 'mars'인 문서가있는 경우 해당 키 (model.docvecs['mars'])를 통해 액세스 한 학습 된 doc-vector와 동일한 문자열로 액세스 한 학습 된 단어 벡터 사이에는 본질적인 관계가 없습니다 키 (model.wv['mars']) - 별도의 벡터 콜렉션에서 왔습니다.