word2vec java 예제

시각적 다이어그램 은 word2vec 행렬 곱셈 프로세스가 다음 그림에 묘사되어 있습니다 : 우리의 예를 들어, 우리는 300 개의 기능을 가진 단어 벡터를 배우고 있다고 말할 것입니다. 따라서 숨겨진 레이어는 10,000개의 행(어휘의 모든 단어에 대해 하나씩) 및 300개의 열(숨겨진 뉴런마다 하나씩)이 있는 가중치 행렬로 표시됩니다. 300 가지 기능은 Google 뉴스 데이터 세트에서 학습 된 게시 된 모델에서 Google에서 사용한 기능입니다 (여기에서 다운로드 할 수 있습니다). 기능 수는 응용 프로그램에 맞게 조정해야 하는 “하이퍼 매개 변수”입니다(즉, 다른 값을 시도하고 최상의 결과를 산출하는 것을 확인함). 건너뛰기 그램 모델은 텍스트 의 모음을 취하고 각 단어에 대한 핫 벡터를 만듭니다. 핫 벡터는 벡터가 어휘의 크기인 단어의 벡터 표현입니다(총 고유 단어). 모든 차원은 해당 시점에서 입력으로 사용되는 단어를 나타내는 차원을 제외하고 0으로 설정됩니다. 다음은 핫 벡터의 예입니다: 코퍼스 어휘에는 8개의 단어가 있습니다. 사전순으로 정렬되면 각 단어는 인덱스로 참조할 수 있습니다. 이 예제를 들어, 우리의 신경 망 8 입력 뉴런과 8 개의 출력 뉴런을 해야합니다. 숨겨진 레이어에 세 개의 뉴런을 사용하기로 결정한다고 가정해 봅시다.

즉, WI와 WO는 각각 8×3 및 3×8 행렬이 됩니다. 훈련을 시작하기 전에 이러한 행렬은 신경망 훈련에서 평소와 같이 작은 임의값으로 초기화됩니다. 그냥 그림 을 위해, 우리는 WI와 WO가 다음과 같은 값으로 초기화 될 가정 하자 : 단어의 Word2vec의 산술의 고전적인 예는 “왕 – 여왕 = 남자 – 여자”와 논리적 확장 “왕 – 여왕 + 여자 = 남자”입니다. A: Word2vec 응용 프로그램을 시작한 디렉토리 내부를 살펴봅니다. 예를 들어 IntelliJ 프로젝트 홈 디렉토리 또는 명령줄에서 Java를 입력한 디렉토리일 수 있습니다. 이 예제 Java 소스 코드 파일 (Word2Vec.java)은 alvinalexander.com “Java 소스 코드 웨어하우스”프로젝트에 포함되어 있습니다. 이 프로젝트의 목적은 “예제로 Java 를 배우십시오”TM을 돕기 위한 것입니다. 간단히 말해서, 건너 뛰기 그램 모델은 대상 및 컨텍스트 단어의 사용을 반대로합니다. 이 경우 대상 단어는 입력시 공급되고 숨겨진 계층은 동일하게 유지되며 신경망의 출력 계층은 선택한 컨텍스트 단어 수를 수용하기 위해 여러 번 복제됩니다. “cat”과 “tree”를 컨텍스트 단어로 하고 “올라간”을 대상 단어로 삼으면 skim-gram 모델의 입력 벡터는 [0 0 0 0 0 0 0 0 0]t이고 두 출력 레이어에는 [0 1 0 0 0 0 0] t와 [0 0 0 0 0]이 있습니다. 각각 0 0 0 0 1[t]t를 대상 벡터로 합니다.