인프런 커뮤니티 질문&답변
context_size 질문드립니다.
작성
·
231
0
1.for _ in range(4):
if random.random() < 0.5 or i >= len(text) - 3:
rand_id = random.randint(0, i-1)
else:
rand_id = random.randint(i+3, len(text)-1)
data.append((text[i], text[rand_id], 0))
1. range(4)를준 이유가 궁굼합니다.
2. 상위 코드 0.5 or i >=len(text) -3 조건을 이렇게 설정한 이유가 궁굼합니다.
3. 괜찮으시다면 혹시 상위 코드조금 자세하게 설명해주실수 있나요 ?
퀴즈
머신러닝 학습 과정에서 '학습에 사용되지 않는' 데이터를 통해 모델의 최종 성능을 평가하는 데이터셋은 무엇일까요?
학습 데이터셋 (Training dataset)
검증 데이터셋 (Validation dataset)
테스트 데이터셋 (Test dataset)
전처리 데이터셋 (Preprocessing dataset)
답변 1
0
안녕하세요, Justin입니다.
1. context_size가 2이기 때문입니다.
skipgram 시 중심 단어로부터 2칸 내 단어들과 비교하기 위해 range(4)로 설정하였습니다.
2. skipgram 시 주변 단어 중 일부를 무작위로 추출하여 데이터를 구성하기 때문에,
이를 구현하기 위해서 해당 코드로 설정하였습니다. 이외 다른 방법으로도 무작위 추출 성격만 띈다면 코드는 변경 가능합니다.
3. random.random을 통해 0~1 사이 실수를 추출하여 이가 0.5 미만이거나
전체 단어 길이 - 3 값이 현재 i 값보다 큰 경우 rand_id 즉 주변 단어 중 일부를 지칭하는 인덱스 값을 0과 i-1 값중 1개의 정수로 표현하여 인덱스를 지정하고, 다른 경우는 i+3과 전체 단어 길이에서 1값을 뺀 값 사이의 정수로 표현하여 인덱스를 지정합니다. word2vec skipgram 방식의 원리를 이해하시면 코드 이해에 도움이 될 것 같습니다.
추천영상 : https://www.youtube.com/watch?v=sY4YyacSsLc
감사합니다.





