Podstawy AI
Jak działa klasyfikacja tekstu?
Klasyfikacja tekstu jest procesem analizy sekwencji tekstu i przypisywania im etykiety, umieszczając je w grupie na podstawie ich zawartości. Klasyfikacja tekstu leży u podstaw niemal każdego zadania sztucznej inteligencji lub uczenia maszynowego związanego z przetwarzaniem języka naturalnego (NLP). Dzięki klasyfikacji tekstu, program komputerowy może wykonywać wiele różnych zadań, takich jak rozpoznawanie spamu, analiza sentimentu i funkcje czatbota. Jak dokładnie działa klasyfikacja tekstu? Jakie są różne metody klasyfikacji tekstu? Odpowiedzi na te pytania zostaną omówione poniżej.
Definiowanie klasyfikacji tekstu
Ważne jest, aby spędzić trochę czasu i upewnić się, że rozumie się, co to jest klasyfikacja tekstu, zanim przejdziemy do różnych metod klasyfikacji tekstu. Klasyfikacja tekstu to jeden z tych terminów, który jest stosowany w wielu różnych zadaniach i algorytmach, więc warto upewnić się, że rozumiemy podstawową koncepcję klasyfikacji tekstu, zanim przejdziemy do eksploracji różnych sposobów, w jaki można ją wykonać.
Cokolwiek, co obejmuje tworzenie różnych kategorii dla tekstu, a następnie oznaczanie różnych próbek tekstu jako te kategorie, można uznać za klasyfikację tekstu. O ile system wykonuje te podstawowe kroki, można go uznać za klasyfikator tekstu, niezależnie od metody użytej do klasyfikacji tekstu i niezależnie od tego, jak klasyfikator tekstu jest ostatecznie stosowany. Wykrywanie spamu w e-mailu, organizowanie dokumentów według tematu lub tytułu oraz rozpoznawanie sentimentu recenzji produktu są wszystkie przykładami klasyfikacji tekstu, ponieważ są one osiągane przez pobranie tekstu jako wejścia i wyjścia etykiety klasy dla tego fragmentu tekstu.
Jak działa klasyfikacja tekstu?

Zdjęcie: Quinn Dombrowski via Flickr, CC BY SA 2.0 , (https://www.flickr.com/photos/quinnanya/4714794045)
Większość metod klasyfikacji tekstu można podzielić na trzy różne kategorie: metody oparte na regułach lub metody oparte na uczeniu maszynowym.
Metody klasyfikacji oparte na regułach
Metody klasyfikacji tekstu oparte na regułach działają za pomocą wyraźnie zaprojektowanych reguł językowych. System używa reguł stworzonych przez inżyniera, aby określić, do której klasy powinien należeć dany fragment tekstu, szukając wskazówek w postaci elementów tekstu semantycznie istotnych. Każda reguła ma wzorzec, który tekst musi spełnić, aby zostać umieszczony w odpowiedniej kategorii.
Aby być bardziej konkretnym, powiedzmy, że chcesz zaprojektować klasyfikator tekstu, który może rozróżniać powszechne tematy rozmów, takie jak pogoda, filmy lub jedzenie. Aby umożliwić klasyfikatorowi rozpoznanie dyskusji o pogodzie, powiedziałbyś mu, aby szukał słów związanych z pogodą w treści próbek tekstu. Miałbyś listę słów kluczowych, fraz i innych istotnych wzorców, które można by użyć do rozróżnienia tematu. Na przykład, możesz nakazać klasyfikatorowi szukanie słów takich jak „wiatr”, „deszcz”, „słońce”, „śnieg” lub „chmura”. Następnie mógłbyś nakazać klasyfikatorowi przeszukać tekst wejściowy i policzyć, ile razy te słowa pojawiają się w treści tekstu, a jeśli pojawiają się częściej niż słowa związane z filmami, klasyfikujesz tekst jako należący do klasy pogody.
Zaletą systemów opartych na regułach jest to, że ich dane wejściowe i wyjściowe są przewidywalne i interpretowalne przez ludzi, a także mogą być ulepszane za pomocą interwencji manualnej przez inżyniera. Jednak metody klasyfikacji oparte na regułach są również dość kruche i często mają trudności z uogólnianiem, ponieważ mogą tylko przestrzegać zaprogramowanych wcześniej wzorców. Na przykład, słowo „chmura” może odnosić się do wilgoci w powietrzu lub do cyfrowej chmury, w której przechowuje się dane. Trudno jest dla systemów opartych na regułach radzić sobie z tymi niuansami bez spędzania przez inżynierów dużej ilości czasu na ręczne dostosowywanie i korygowanie tych subtelności.
Systemy oparte na uczeniu maszynowym
Jak wspomniano powyżej, systemy oparte na regułach mają ograniczenia, ponieważ ich funkcje i reguły muszą być zaprogramowane. W przeciwieństwie do tego, systemy klasyfikacji oparte na uczeniu maszynowym działają, stosując algorytmy, które analizują zestawy danych w celu znalezienia wzorców związanych z określoną klasą.
Algorytmy uczenia maszynowego są karmione przykładami wcześniej oznaczonymi/klasyfikowanymi, które są analizowane w celu znalezienia istotnych cech. Te wcześniej oznaczone przykłady są danymi szkoleniowymi.
Klasyfikator uczenia maszynowego analizuje dane szkoleniowe i uczy się wzorców związanych z różnymi klasami. Następnie nieoznaczone przykłady są podawane do algorytmu klasyfikacji, który przypisuje im etykietę. Przypisane etykiety są następnie porównywane z oryginalnymi etykietami, aby sprawdzić, jak dokładnie klasyfikator uczenia maszynowego nauczył się, jakie wzorce przewidują, które klasy.
Algorytmy uczenia maszynowego działają, analizując dane liczbowe. Oznacza to, że aby użyć algorytmu uczenia maszynowego na danych tekstowych, tekst musi być przekonwertowany w format liczbowy. Istnieją różne metody kodowania danych tekstowych jako danych liczbowych i tworzenia metod uczenia maszynowego wokół tych danych. Omówimy niektóre z różnych sposobów reprezentowania danych tekstowych poniżej.
Bag-of-Words
Bag-of-words to jeden z najczęściej używanych podejść do kodowania i reprezentowania danych tekstowych. Termin „bag-of-words” pochodzi z faktu, że bierze się wszystkie słowa z dokumentów i umieszcza je w jednym „worku” bez zwracania uwagi na kolejność słów lub gramatykę, zwracając uwagę tylko na częstotliwość słów w worku. Wynikiem jest długi tablic, lub wektor, zawierający pojedynczą reprezentację wszystkich słów wejściowych dokumentów. Więc jeśli istnieje 10 000 unikalnych słów w dokumentach wejściowych, wektory cech będą miały długość 10 000 słów. To jest sposób, w jaki rozmiar worka/wektora cech jest obliczany.

Zdjęcie: gk_ via Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)
Po określeniu rozmiaru wektora cech, każdy dokument na liście wszystkich dokumentów otrzymuje swój własny wektor wypełniony liczbami, które wskazują, ile razy dane słowo pojawia się w bieżącym dokumencie. Oznacza to, że jeśli słowo „jedzenie” pojawia się osiem razy w jednym dokumencie tekstowym, odpowiadający mu wektor cech/ tablic będzie miał ósemkę w odpowiedniej pozycji.
Inaczej mówiąc, wszystkie unikalne słowa, które pojawiają się w dokumentach wejściowych, są wszystkie wrzucane do jednego worka, a następnie każdy dokument otrzymuje wektor słów o tym samym rozmiarze, który jest wypełniony liczbą razy, gdy różne słowa pojawiają się w dokumencie.
Zbiory danych tekstowych często zawierają dużą liczbę unikalnych słów, ale większość z nich nie jest używana często. Z tego powodu liczba słów używanych do tworzenia wektora słów jest zwykle ograniczona do wybranej wartości (N), a następnie wymiar wektora cech będzie Nx1.
Częstotliwość terminu – odwrotna częstotliwość dokumentu (TF-IDF)
Innym sposobem reprezentowania dokumentu na podstawie słów w nim zawartych jest Częstotliwość terminu – odwrotna częstotliwość dokumentu (TF-IDF). Podejście TF-IDF również tworzy wektor, który reprezentuje dokument na podstawie słów w nim zawartych, ale w przeciwieństwie do podejścia Bag-of-words, słowa są wagowane przez więcej niż tylko ich częstotliwość. TF-IDF uwzględnia wagę słów w dokumentach, próbując określić, jak istotne jest dane słowo w odniesieniu do tematu dokumentu. Innymi słowy, TF-IDF analizuje istotność zamiast częstotliwości, a liczby słów w wektorze cech są zastępowane przez wynik TF-IDF, który jest obliczany w odniesieniu do całego zestawu danych.
Podejście TF-IDF działa, obliczając najpierw częstotliwość terminu, czyli liczbę razy, gdy unikalne terminy pojawiają się w określonym dokumencie. Jednak TF-IDF również dba o to, aby ograniczyć wpływ bardzo pospolitych słów, takich jak „the”, „or” i „and”, ponieważ te „słowa stop” są bardzo powszechne, ale niosą bardzo mało informacji o treści dokumentu. Słowa te muszą być zdyskontowane, co jest tym, do czego służy część „odwrotna częstotliwość dokumentu” w TF-IDF. Wynika to z faktu, że im więcej dokumentów zawiera określone słowo, tym mniej użyteczne jest to słowo w odróżnieniu od innych dokumentów w liście wszystkich dokumentów. Wzór, który TF-IDF używa do obliczania ważności słowa, jest zaprojektowany tak, aby zachować słowa, które są najczęstsze i najbardziej semantycznie bogate.
Wektory cech utworzone przez podejście TF-IDF zawierają wartości znormalizowane, które sumują się do jednego, przypisując każdemu słowu wagę obliczoną za pomocą wzoru TF-IDF.
Osadzanie słów
Osadzanie słów to metody reprezentowania tekstu, które zapewniają, że słowa o podobnych znaczeniach mają podobne reprezentacje liczbowe.
Osadzanie słów działa, „wektorując” słowa, co oznacza, że reprezentują słowa jako wektory o wartościach rzeczywistych w przestrzeni wektorowej. Wektory istnieją w siatce lub macierzy i mają kierunek i długość (lub wielkość). Podczas reprezentowania słów jako wektorów, słowa są konwertowane w wektory składające się z wartości rzeczywistych. Każde słowo jest mapowane na jeden wektor, a słowa, które są podobne w znaczeniu, mają podobny kierunek i wielkość. Ten rodzaj kodowania pozwala algorytmom uczenia maszynowego nauczyć się skomplikowanych relacji między słowami.
Osadzanie słów działa, „wektorując” słowa, co oznacza, że reprezentują słowa jako wektory o wartościach rzeczywistych w przestrzeni wektorowej. Wektory istnieją w siatce lub macierzy i mają kierunek i długość (lub wielkość). Podczas reprezentowania słów jako wektorów, słowa są konwertowane w wektory składające się z wartości rzeczywistych. Każde słowo jest mapowane na jeden wektor, a słowa, które są podobne w znaczeniu, mają podobny kierunek i wielkość. Ten rodzaj kodowania pozwala algorytmom uczenia maszynowego nauczyć się skomplikowanych relacji między słowami.
W wyniku osadzania słów lepiej radzą sobie one z kontekstem słów w zdaniu.
Istnieją różne algorytmy i podejścia używane do tworzenia osadzania słów. Niektóre z najczęstszych i najbardziej niezawodnych metod osadzania słów to: warstwy osadzania, Word2Vec i GloVe.
Warstwy osadzania
Jednym z potencjalnych sposobów użycia osadzania słów wraz z systemem uczenia maszynowego/uczenia głębokiego jest użycie warstwy osadzania. Warstwy osadzania to warstwy uczenia głębokiego, które konwertują słowa w osadzania, które są następnie podawane do reszty systemu uczenia głębokiego. Osadzanie słów jest uczone, gdy sieć szkoleniowa jest szkolona na określonym zadaniu związanym z tekstem.

W podejściu osadzania słów, podobne słowa będą miały podobne reprezentacje i będą bliżej siebie niż słowa niepodobne.
Aby użyć warstw osadzania, tekst musi być najpierw przetworzony. Tekst w dokumencie musi być zakodowany w postaci jedności, a rozmiar wektora musi być określony z wyprzedzeniem. Następnie zakodowany tekst jest konwertowany w wektory słów, a wektory są przekazywane do modelu uczenia maszynowego.
Word2Vec
Word2Vec to kolejna powszechna metoda osadzania słów. Word2Vec używa metod statystycznych do konwertowania słów w osadzania i jest zoptymalizowany do użycia z modelem opartym na sieciach neuronowych. Word2Vec został opracowany przez badaczy z Google (GOOGL ) i jest jedną z najczęściej używanych metod osadzania, ponieważ niezawodnie daje użyteczne i bogate osadzania. Osadzania Word2Vec są przydatne do identyfikacji semantycznych i składniowych podobieństw w języku. Oznacza to, że osadzania Word2Vec przechwytują relacje między podobnymi pojęciami, mogąc rozróżnić, że wspólne pojęcie między „Królem” a „Królową” jest królewskością, a „Król” implikuje „męskość”, podczas gdy „Królowa” implikuje „kobiecość”.
GloVe
GloVe, czyli Globalny Wektor dla Reprezentacji Słowa, rozwija algorytmy osadzania używane przez Word2Vec. Metody osadzania GloVe łączą aspekty Word2Vec i techniki czynnikowania macierzy, takie jak Latentna Analiza Semantyczna. Zaletą Word2Vec jest to, że może on przechwytywać kontekst, ale jako kompromis źle przechwytuje globalne statystyki tekstu. Odwrotnie, tradycyjne reprezentacje wektorowe są dobre w określaniu globalnych statystyk tekstu, ale nie są użyteczne w określaniu kontekstu słów i fraz. GloVe czerpie z najlepszych aspektów obu podejść, tworząc słowo-kontekst na podstawie globalnych statystyk tekstu.












