일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- #영어발음교정
- 해외취업컨퍼런스
- 링글경험담
- 영어공부
- 영어공부법
- #Ringle
- 영어회화
- 강동구장어맛집
- #링글후기
- #영어공부
- #링글
- Ringle
- 영어로전세계와소통하기
- 링글커리어
- #nlp
- 링글
- 오피스밋업
- 뉴노멀챌린지
- 링글리뷰
- 성내동장어
- 화상영어
- 스몰토크
- CommunicateWiththeWorld
- 소통챌린지
- 총각네장어
- 영어시험
- 둔촌역장어
- 장어랑고기같이
- #직장인영어
- #체험수업
- Today
- Total
Soohyun’s Machine-learning
Assignment-1- 본문
워드 벡터를 만드는데, 먼저 count-based vectors를 만든다.
co-occurrence matrix를 만든다. 말 그대로 frequency 기준.
하지만 이 matrix는 sparse하고 매우 large하기 때문에 dimensionality reduction을 해준다. 세부적으로는, SVD (generalized PCA의 일종)를 해서 top-k의 principal components를 선택한다.
그 다음에 같이 등장하는 words간의 embeddings를 plotting.
그 다음으로는, distinc_words, 즉, 단어별로 서로 분리한다. return은 corpus에 있는 words (unique), 그리고 단어들의 개수, 두 개임. list 형태,
그리고 그 다음에는 co-occurrence matrix를 계산한다. window_size가 4라고 하면, 현재 워드의 index를 불포함한 채, window_size 만큼의 앞 단어 (즉 window_size가 4고 현재 idx가 4라면, 앞의 0,1,2,3까지의 words), 그리고 뒷 단어 (현재 idx가 4라면, 뒤의 5,6,7,8까지의 4개 단어)를 모두 체크해서 넣어줘야 한다. <<<<-----내가 이 부분을 몰라서 계속 여기를 패스하지 못했던 거였음 ㅠ
나머진 뭐.. 아는 그대로임.
그 다음에는 dimensionality reduction 실행.
trunc_M = TruncatedSVD()
M_reduced = trunc_M.fit_transform(M)
요거로 끗 ㅇㅅㅇ 편하다.
[Q1.4는 그냥 embedding한거 plotting하는거라 안씀]
------------여기까지 count-based였고, 이 아래에서부터는 prediction-based word vector이다.
근데 이건 dim-reduction부터 하네? 코드에서 보면 알 수 있듯이, 그냥 해당 word의 vector를 wv_from_bin.word_vec으로 뽑아내고, 그냥 append해주는거... (쉽다)
[이후에 GloVe plotting하는 부분은 삭제]
여러가지 의미를 가진 단어(다의어)의 가장 similar한 top-10 similar words 보기
유사어 & 반의어
그리고 word vector로 더하기 빼기 가능한 것을 보여주고, gender bias를 보여주는 예시들, 예를 들어서 doctor는 man, nurse는 woman같은 것들을 보면서 ML이 내재적으로 가질 수 밖에 없는 bias에 대해서 생각해보게 함.