Jaki jest lepszy wkład w Word2Vec?

22

To jest bardziej ogólne pytanie NLP. Jaki jest odpowiedni wkład, aby nauczyć się osadzania słów, a mianowicie Word2Vec? Czy wszystkie zdania należące do artykułu powinny być osobnym dokumentem w korpusie? A może każdy artykuł powinien być dokumentem we wspomnianym korpusie? To tylko przykład użycia Pythona i gensim.

Korpus podzielony według zdania:

SentenceCorpus = [["first", "sentence", "of", "the", "first", "article."],
                  ["second", "sentence", "of", "the", "first", "article."],
                  ["first", "sentence", "of", "the", "second", "article."],
                  ["second", "sentence", "of", "the", "second", "article."]]

Korpus podzielony według artykułu:

ArticleCorpus = [["first", "sentence", "of", "the", "first", "article.",
                  "second", "sentence", "of", "the", "first", "article."],
                 ["first", "sentence", "of", "the", "second", "article.",
                  "second", "sentence", "of", "the", "second", "article."]]

Szkolenie Word2Vec w języku Python:

from gensim.models import Word2Vec

wikiWord2Vec = Word2Vec(ArticleCorpus)
wacax
źródło

Odpowiedzi:

14

Odpowiedź na to pytanie jest taka , że to zależy . Podstawowym podejściem jest przekazywanie tokenizowanych zdań (tak jak SentenceCorpusw twoim przykładzie), ale w zależności od tego, jaki jest twój cel i na jaki korpus patrzysz, możesz zamiast tego użyć całego artykułu, aby nauczyć się osadzania. Jest to coś, czego możesz nie wiedzieć z wyprzedzeniem - musisz więc pomyśleć o tym, jak chcesz ocenić jakość osadzania i przeprowadzić pewne eksperymenty, aby sprawdzić, który rodzaj osadzenia jest bardziej przydatny w Twoim zadaniu ( s).

NBartley
źródło
Zaraz na miejscu. Użyłem osadzania w modelu i, jak już wspomniałeś, znacznie poprawiłem wydajność predykcyjną modelu, gdy wykorzystałem cały artykuł. Więc w takim przypadku szkolenie zdanie po zdaniu byłoby lepsze.
wacax
1
Powinieneś spojrzeć i zobaczyć, jak słowa mające podobne wektory są ze sobą powiązane. Wykonano pewne prace nad rozmiarem okna kontekstowego i rodzajem kontekstu, który sugeruje, że mniejsze okna (i być może mniejsze rozmiary dokumentów, takie jak zdania) mogą sprawić, że słowa będą funkcjonalnie podobne (jak w stanach USA), a nie tematycznie podobne ( jak stany USA i słowa związane z rządem) mają więcej podobnych wektorów. Przytaczam głównie słowa Emmerdings oparte na zależności Omer Levy i Yoav Goldberg z 2014 roku. Mogę się jednak mylić i jeśli tak, to chciałbym je poprawić.
NBartley,
1

Jako uzupełnienie odpowiedzi @ NBartley. Każdemu napotkać to pytanie. Próbowałem użyć artykułu / zdania jako danych wejściowych dla word2vec na Spark2.2, wynik jest następujący.

użyj zdania jako danych wejściowych:

wprowadź opis zdjęcia tutaj

użyj artykułu jako danych wejściowych:

wprowadź opis zdjęcia tutaj

Zachary
źródło
0

W przypadku tego pierwszego gensim ma klasę Word2Vec. W tym ostatnim Doc2Vec.

http://rare-technologies.com/doc2vec-tutorial/


źródło
3
doc2vec różni się zasadniczo od wykonywania word2vec na korpusie artykułów, a nie zdań. doc2vec pozna reprezentacje samych artykułów, a nie tylko słów.
jamesmf,