2017-12-20 13 views
1

Gensim의 doc2vec를 사용하여 대형 코퍼스 용 문서 벡터를 만들었습니다. 이제 큰 DataFrame에 Gensim Doc2vec infer_vector()를 사용하는 방법?

model = gensim.models.doc2vec.Doc2Vec(sentences,size = 10, window = 800, min_count = 1, workers=40, iter=10, dm=0)

sentences=gensim.models.doc2vec.TaggedLineDocument('file.csv')

이 난을 전달하는 또 다른 샘플 코퍼스

Eg: model.infer_vector('This is a string')

에 대한 문서 벡터를 생성하는 문서 벡터를 사용하여) (방법을 Gensim의 infer_vector이되어 사용하고 있습니다 infer_vector를 통해 전체 DataFrame을 가져 와서 DataFrame의 각 행에 대한 출력 벡터를 얻으시겠습니까?

+1

'df [ 'col']. apply (model.infer_vector)'? –

+0

또는 아마도 이것은 목록과 함께 작동합니다 :'model.infer_vector (df [ 'col'])' –

+0

고마워, df [ 'col']. apply (model.infer_vector) worked – CMM

답변

0

Doc2Vecinfer_vector()은 단어 - 토큰 목록으로 개별 텍스트 예제 만 사용합니다. 따라서 일련의 예제를 전달할 수는 없습니다. (그리고 토큰이 아닌 문자열을 전달해서는 안되며, 훈련 데이터와 동일한 방식으로 전처리 된 토큰 목록을 미리 처리해야합니다.)

그러나이 기능은 다음과 같은 기능을 사용할 수 있습니다. @COLDSPEED 의견에서 알 수 있듯이 곱하면 infer_vector()이 적용됩니다. 의미있는 결과를 원한다면 열의 문자 목록이 아닌 열의 목록이 있어야합니다.

또한, 대부분의 사용자는 infer_vector() 작품이 훨씬 더 같은 이상 훈련 기본 등의 시작 alpha 매개 변수의 기본이 아닌 (5 기본값보다 훨씬 큰)의 steps 매개 변수에 대한 값, 그리고 아마도 더 작은 값을 (사용 발견 추론 기본값 0.1보다 0.025).

0

@gojomo : 답변을 주셔서 감사합니다.하지만 원시 문자열뿐 아니라 토큰 화 된 행을 사용하여 추측을 시도했으며 동일한 문서 벡터를 가졌습니다.

생성되는 문서 벡터가 의미가 있는지 여부를 알 수있는 방법이 있습니까?