2017-02-23 33 views
7

Mam duży zbiór tekstów, w których każdy tekst szybko rośnie. Muszę zaimplementować wyszukiwanie podobieństwa.Word2vec z elastycznym wyszukiwaniem podobieństw tekstów

Chodzi o to, aby osadzić każde słowo w postaci word2vec i przedstawić każdy tekst jako znormalizowany wektor za pomocą wektora - dodając osadzone w nim słowa każdego słowa. Kolejne dodatki do tekstu spowodowałyby jedynie udoskonalenie wektora wynikowego tekstu przez dodanie do niego nowych wektorów słów.

Czy możliwe jest wykorzystanie elastycznego przeszukiwania pod kątem podobieństwa do cosinusów, poprzez przechowywanie w dokumencie tylko współrzędnych znormalizowanego wektora każdego tekstu? Jeśli tak, to jaka jest właściwa struktura indeksu dla takiego wyszukiwania?

Odpowiedz

3

to elasticsearch plugin realizuje funkcję punktacji (iloczyn skalarny) wektory przechowywanych z wykorzystaniem delimited-payload-tokenfilter

Złożoność tych poszukiwań jest liniową funkcją liczby dokumentów, i jest gorsza niż tfidf na zapytania termin , od ES first searches on an inverted index następnie uses tf-idf for document scores, więc tf-idf nie jest wykonywane na wszystkich dokumentach indeksu. W przypadku wektora reprezentacja, której szukasz, jest przestrzenią wektorową dokumentu o niższej odległości cosinus, bez zalet odwróconego indeksu.

+0

Jak ta skala z liczbą dokumentów? Czy jest to o wiele gorsza pod względem skalowalności niż tf-idf, która po prostu zachowuje odwrócony indeks? –