Zależy to przede wszystkim od tego, ile chcesz najnowocześniejszego (SOTA), od tego, jak głęboko chcesz zejść (gra słów zamierzona ...).
Jeśli możesz żyć tylko z płytkimi osadzeniami słów dostarczonymi przez word2vec, Glove lub fastText, myślę, że Word Mover Distance (WMD [tak, naprawdę ...]) to miła funkcja do pomiaru (krótkich) odległości dokumentów [1] . W przeszłości widziałem nawet kilka zeszytów Pythona, które zawierają „samouczki” do pomiaru odległości, więc naprawdę łatwo jest zacząć.
Jednakże, jeśli jesteś bardziej zainteresowany SOTA, będziesz musiał przyjrzeć się głębokiemu uczeniu się (reprezentacja sekwencji), używając pewnego rodzaju sieci powtarzalnej, która uczy się modelu tematu z twoich zdań. Oprócz integrowania (semantycznego) osadzania słów, podejścia te wykraczają poza [dobre, stare] podejście „work-of-words” poprzez uczenie się reprezentacji tematów przy użyciu zależnościsłów w zdaniu [s]. Na przykład model powtarzalnego poziomu zdania (SLRTM) jest dość interesującym głębokim, powtarzalnym modelem opartym na pomysłach bardziej tradycyjnej LDA (autorstwa Blei i wsp.) Lub LSA (Landauer i wsp.), Ale to tylko arXiv papier (więc powinny obowiązywać wszystkie domyślne „ostrzeżenia o stosowaniu soli” na temat badań nie recenzowanych) ... [2]. Niemniej jednak papier ma wiele doskonałych wskazówek i odniesień do rozpoczęcia badań, jeśli chcesz zejść do tej króliczej nory.
Na koniec należy wyjaśnić, że nie twierdzę, że są to uzgodnione najskuteczniejsze metody odpowiednio dla worków słów i modeli sekwencji. Ale powinny zbliżyć cię do tego, co może być „najlepszym” SOTA, a przynajmniej powinno być doskonałym punktem wyjścia.
[1] Matt J. Kusner i in. Od osadzania słów do odległości dokumentów. Materiały z 32. międzynarodowej konferencji na temat uczenia maszynowego, JMLR, 2015.
[2] Fei Tian i in. SLRTM: Pozwól, aby tematy same za siebie przemawiały. arXiv 1604.02038, 2016.
https://github.com/RandyPen/TextCluster
Jest to metoda klastrowa specyficzna dla krótkiego tekstu, która przewyższa KMeans itp. Nie ma potrzeby ustawiania ukrytej liczby zmiennych.
Podstawową ideą jest tokenizowanie zdania na słowa. Następnie przejdź do innego segmentu zgodnie z komponentem tekstowym. W każdym segmencie oblicz podobieństwo zdania i segmentu. Jeśli wynik podobieństwa jest wyższy niż określona wartość, dodaj to zdanie do tego segmentu, w przeciwnym razie wyszukaj następny segment.
źródło