[Brendan Shillingford, Yannis Assael, Chris Dyer]
이 실용적으로, 대화식 웹 기반 Python Computing Environment는 텍스트, 코드 및 대화식 플롯을 혼합 할 수있는 부분적으로 완료 된 Ipython 노트북이 제공됩니다.
Python 패키지 gensim 에 포함 된 Word2Vec 구현을 사용하여 TED Talk 및 Wikipedia 데이터에 대한 Word2Vec 모델을 교육 할 것입니다. 모델을 훈련 한 후에는 학습 된 임베딩을 분석하고 시각화합니다.
실험실 워크 스테이션에서는 실제 저장소를 복제하고 실행하십시오 . install-python.sh Python 3과 함께 Anaconda 와이 실용에 필요한 패키지를 설치하기 위해 터미널의 . install-python.sh 쉘 스크립트.
리포지토리 디렉토리에서 ipython notebook 실행하고 브라우저에서 practical.ipynb 노트북을 엽니 다.
데이터 세트 다운로드 및 전처리 코드는 시간을 절약하기 위해 전달됩니다. 그러나 원시 데이터가 주어지면 향후 실용에서 이러한 작업을 수행해야 할 것으로 예상됩니다. 그것을 읽고 이해하십시오. 종종 nltk 와 같은 라이브러리를 사용 하여이 작업을 단순화하지만 여기서는하지 않았으며 대신 Python의 re 모듈을 통해 정규 표현식을 사용하기로 결정했습니다.
가장 일반적인 단어와 발생 계수 목록을 만드십시오. 상위 40 단어를 살펴보십시오. sklearn.feature_extraction.text module의 CountVectorizer 클래스 또는 collections 모듈의 Counter 클래스를 사용하려고합니다.
상위 1000 단어를 가져 와서 카운트의 히스토그램을 플로팅하십시오. 대화식 히스토그램의 플로팅 코드는 이미 노트북에 나와 있습니다.
Handin : 주파수 분포 히스토그램을 표시하십시오.
처리 된 문장 목록이 있었으므로 Word2Vec 교육을 실행합시다. Word2Vec 클래스를 사용하는 방법을 파악하려면 https://radimrehurek.com/gensim/models/word2vec.html에서 Word2Vec의 Gensim 문서를 읽으십시오. 내부를 배우십시오 min_count=10 제외한 다른 옵션은 기본값이어야하므로 드물게 단어가 무시됩니다. 훈련 과정은 30 분 미만이어야합니다.
훈련 된 Word2Vec 인스턴스를 model_ted 라고하는 경우 len(model_ted.vocab) most_similar() 사용하여 어휘 크기를 확인할 수 있어야합니다.
Handin : 흥미롭고 놀라운 가장 가까운 이웃으로 몇 단어를 더 찾으십시오.
Handin : t-sne 플롯에서 흥미로운 클러스터를 찾으십시오.
열광적 인 학생들을위한 선택 사항 : Gensim의 문서에 설명 된대로 인덱싱 연산자를 사용하여 두 단어 벡터를 수동으로 검색 한 다음 코사인 거리를 컴퓨터로 검색하십시오 (리콜은 np.dot() 및 np.linalg.norm() 에 관심이있을 수 있습니다. 자세한 내용은 Numpy 문서를 참조하십시오. 이것을 Gensim의 기능으로 계산 한 거리와 비교하십시오.
Wikitext-2 데이터 세트에 대한 다운로드/전처리 코드 (이전 코드와 유사)를 제공했습니다. 이 코드는 데이터의 임의의 하위 샘플을 사용하므로 TED 토크 데이터와 비슷합니다.
이 데이터 세트에서 위와 동일한 분석을 반복하십시오.
Handin : 비슷한 가장 가까운 이웃과 몇 마디도 찾으십시오.
Handin : t-sne 플롯에서 흥미로운 클러스터를 찾으십시오.
Handin : TED 토크 데이터에서 배운 것과 비교하여 데이터에 대해 배운 임베딩 사이에 주목할만한 차이가 있습니까?
여분의 시간이 있다면 임베딩에서 K- 평균 클러스터링 (예 : sklearn.cluster.kmeans )을 수행하여 흥미롭거나 의미있는 클러스터가 될 때까지 클러스터 수를 조정하십시오.
위의 대담한 " Handin : "부분을 참조하십시오. 종이 또는 구두로, 실용적인 시연 자에게 이들에 대한 응답을 보여주기 위해 당신의 응답을 보여주십시오.