2014-12-19 9 views
6

Jak stworzyć wektor słowa? Użyłem jednego klawisza szybkiego do utworzenia wektora słów, ale jest on bardzo duży i nie jest uogólniony dla podobnego semantycznego słowa. Tak więc słyszałem o słowie wektorowym przy użyciu sieci neuronowej, która znajduje podobieństwo słów i wektor słów. Więc chciałem wiedzieć, jak wygenerować ten wektor (algorytm) lub dobry materiał, aby rozpocząć tworzenie wektora słów?jak stworzyć wektor słów

+0

możesz zacząć od matrycy dokumentu x, wagi tf-idf i podobieństwa cosinus. wygoogluj to. uzyskasz dobry wgląd w problem. – Pierre

Odpowiedz

8

word-wektory lub tzw rozproszone reprezentacje mają długą historię już, być może wychodząc z pracy S. Bengio (Bengio, Y., Ducharme, R., & Vincent, P. (2001). Neuronowy model języka probabilistycznego, NIPS,), w którym uzyskał on wektory wyrazów jako produkt uboczny szkolenia modelu neuron-net lanuage.

Wiele badań wykazało, że te wektory przechwytują semantyczną zależność między słowami (patrz na przykład http://research.microsoft.com/pubs/206777/338_Paper.pdf). Również ten ważny dokument (http://arxiv.org/abs/1103.0398) autorstwa Collobert et al, jest dobrym punktem wyjścia do zrozumienia wektorów słów, sposobu ich pozyskiwania i stosowania.

Oprócz word2vec istnieje wiele metod ich uzyskania. Expamples obejmują emisje SENNA autorstwa Collobert i wsp. (http://ronan.collobert.com/senna/), osadzanie RNN przez T. Mikolova, które można obliczyć za pomocą RNNToolkit (http://www.fit.vutbr.cz/~imikolov/rnnlm/) i wiele innych. W przypadku języka angielskiego gotowe strony do pobrania można pobrać z tych stron internetowych. word2vec tak naprawdę używa modelu skip-gram (nie modelu sieci neuronowej). Kolejny szybki kod do obliczania reprezentacji słów to GloVe (http://www-nlp.stanford.edu/projects/glove/). Otwarte pozostaje pytanie, czy głębokie sieci neuronowe są niezbędne do uzyskania dobrych osadzeń, czy nie.

W zależności od aplikacji, możesz preferować używanie różnych typów wektorów słów, więc dobrym pomysłem jest wypróbowanie kilku popularnych algorytmów i przekonanie się, co działa lepiej.

3

Myślę, że chodzi o Word2Vec (https://code.google.com/p/word2vec/). Szkoli N-wymiarowe wektory słów dokumentów na podstawie danego korpusu. Tak więc w moim rozumieniu word2vec sieć neuronowa jest właśnie używana do agregowania wymiarów wektora dokumentu, a także przechwytywania pewnych relacji między słowami. Należy jednak wspomnieć, że nie jest to tak naprawdę semantycznie powiązane, odzwierciedla jedynie związek strukturalny w ciele szkoleniowym.

Jeśli chcesz uchwycić semantycznej pokrewieństwo spojrzeć mierzy WordNet oparte, na przykład realizowanego właśnie te bibliotekami:

aby zacząć za pomocą word2vec możesz użyć ich wstępnie wytrenowanych wektorów. Powinieneś znaleźć wszystkie informacje na ten temat na https://code.google.com/p/word2vec/.

Poszukiwanie implementacji Java. Jest to dobry punkt wyjścia: http://deeplearning4j.org/word2vec.html

Mam nadzieję, że to pomoże

Best wishes