jak można zwiększyć skuteczność uczenia używając NLP w Word2Vec?

0

Witam, interesuje mnie jak mogę zwiększyć skuteczność uczenia na podstawie zbioru dokumentów? Chciałbym wyciągać linie ze słowami kluczowymi bądź pokrewnymi do tych które podam w Word2Vec implementowanym w Javie.

Obecnie tworzony przeze mnie obiekt Word2Vec wygląda w ten sposób, mój zbiór danych po którym iteruje ma ok. 50 dokumentów, jednak wyniki pokrewieństwa wyrazów na podstawie nauki, nie są idealne, są jakieś sposoby poza zwiększeniem zbioru danych, na zwiększenie skuteczności?

Przykład 5 najbliższych wyrazów pokrewnych dla słowa doświadczenie [zasobami, dziedzinie, firmach, prezentacji, masowa]

        vec = new Word2Vec.Builder()
                .minWordFrequency(1)
                .iterations(1)
                .layerSize(100)
                .seed(42)
                .windowSize(5)
                .iterate(sentenceIterator)
                .tokenizerFactory(tokenizerFactory)
                .build();

        vec.fit();

macie jakieś pomysły?

1

Pytanie nie jest związane z Java stricte, tylko z ML. Nie jestem czarodziejem ML-a, ale IMHO na bazie 50 dokumentów nic nie osiągniesz, to jest stanowczo za mało, aby nauczyć model.

1

Jeżeli ktoś poszukuje odpowiedzi na to pytanie, jestem w stanie udzielić kilka wskazówek:
-usunięcie spójników (i, lub, oraz itp.) w większości przypadków zwiększa skuteczność modelu NLP tworząc lepsze połączenia między wyrazami
-wybadanie odpowiedniej ilości iteracji oraz frekwencji występowania słów, może też zwiększyć skuteczność modelu.
-odpowiedni algorytm korzystający z połączeń słów o wartościach od 0 do 1, również zwiększa skuteczność.

Mam nadzieję, że przyda się to komuś.

1

To raczej takie absolutne podstawy NLP, używanie stoplisty, lematyzacja/stemming, usuwanie hapaxów (słów które występują tylko raz) ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1