2016-08-24 2 views
1

나는 단어의 벡터 표현을 생성하기위한 가이드 this 가이드를 수행했습니다.word2vec 텐서 흐름 구현시 vocabulary_size의 영향은 무엇입니까?

이제 word2vec을 실행중인 45,000 단어의 맞춤 데이터 세트를 사용하고 있습니다. I을 실행하려면

내가 https://github.com/tensorflow/tensorflow/issues/2777와 유사한 문제가 발생하고 있으므로 200에 vocabulary_size 감소 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/word2vec/word2vec_basic.py#L57

words = read_data('mytextfile.zip')에 수정하여 내 자신의 데이터 집합을 사용하는 word2vec_basic.py를 수정했습니다. 이제 실행되지만 결과가 컨텍스트를 캡처하는 것으로 나타나지 않습니다. 예를 들어 여기에 샘플 출력이 나와 있습니다.

Nearest to Leave: Employee, it, •, due, You, appeal, Employees, which, 

이 출력에서 ​​무엇을 추론 할 수 있습니까? 증가/감소하여 vocabulary_size 결과가 향상됩니까? 하지 오는 단어 따라서

unk_count = 0 
    for word in words: 
    if word in dictionary: 
     index = dictionary[word] 
    else: 
     index = 0 # dictionary['UNK'] 
     unk_count += 1 
    data.append(index) 
    count[0][1] = unk_count 

과 : 내가 python3를 사용하고

vocabulary_size 단어의 대부분은 UKN로 표시됩니다 너무 작 으면 내가 python3 word2vec_basic2.py

답변

1

사용 실행 사전에 포함 된 내용은 모두 동일하게 취급됩니다 (0으로 색인 됨). 어휘 크기를 늘리면 확실히 성능이 향상됩니다. 그것은 Python2 또는 Python3에 흩어져 있습니다.

설명을 위해 첫 번째 배치에는 128 개의 입력 단어가 있지만 그 중 120 개는 알 수 없음 (동일한 색인 0)으로 표시되고 대상도 128 미만입니다. 어떻게됩니까? 우리는 UKN의 UKN과 UKN의 "당신"과 같은 쌍을 예측할 것입니다. UKN은 "당신"이 "당신"이고 "당신"이 "?"일 것입니다. 그렇지 않으면 어휘 크기를 늘립니다. 입력 분포 샘플의 대부분의 정보가 손실됩니다.