Kontakt z nami
Kurs mistrzowski AI:

AI 101

Jak działa klasyfikacja tekstu?

mm
Zaktualizowano on

Klasyfikacja tekstów to proces analizy sekwencji tekstowych i przypisywania im etykiety, umieszczania ich w grupie na podstawie ich zawartości. Klasyfikacja tekstu leży u podstaw niemal wszystkich zadań związanych ze sztuczną inteligencją lub uczeniem maszynowym obejmujących przetwarzanie języka naturalnego (NLP). Dzięki klasyfikacji tekstu program komputerowy może wykonywać szeroką gamę różnych zadań, takich jak rozpoznawanie spamu, analiza nastrojów i funkcje chatbota. Jak dokładnie działa klasyfikacja tekstu? Jakie są różne metody przeprowadzania klasyfikacji tekstu? Poniżej przeanalizujemy odpowiedzi na te pytania.

Definiowanie klasyfikacji tekstu

Ważne jest, aby poświęcić trochę czasu i upewnić się, że rozumiemy czym jest klasyfikacja tekstuogólnie, zanim zagłębimy się w różne metody klasyfikacji tekstu. Klasyfikacja tekstu to jeden z terminów stosowanych do wielu różnych zadań i algorytmów, dlatego warto upewnić się, że rozumiemy podstawową koncepcję klasyfikacji tekstu, zanim przejdziemy do odkrywania różnych sposobów jej przeprowadzenia.

Wszystko, co wiąże się z tworzeniem różnych kategorii tekstu, a następnie oznaczaniem różnych próbek tekstu jako tych kategorii, można uznać za klasyfikację tekstu. Dopóki system wykonuje te podstawowe kroki, można go uznać za klasyfikator tekstu, niezależnie od dokładnej metody zastosowanej do klasyfikacji tekstu i niezależnie od tego, w jaki sposób klasyfikator tekstu zostanie ostatecznie zastosowany. Wykrywanie spamu w wiadomościach e-mail, organizowanie dokumentów według tematu lub tytułu oraz rozpoznawanie nastrojów związanych z recenzją produktu to przykłady klasyfikacji tekstu, ponieważ odbywa się to poprzez pobranie tekstu jako danych wejściowych i wyświetlenie etykiety klasy dla tego fragmentu tekstu.

Jak działa klasyfikacja tekstu?

Zdjęcie: Quinn Dombrowski za pośrednictwem 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 uczenia maszynowego.

Metody klasyfikacji oparte na regułach

Metody klasyfikacji tekstu oparte na regułach działają poprzez użycie wyraźnie opracowanych reguł językowych. System na podstawie stworzonych przez inżyniera reguł określa, do której klasy powinien należeć dany fragment tekstu, szukając wskazówek w postaci istotnych semantycznie elementów tekstu. Każda reguła ma wzór, do którego musi pasować tekst, aby został umieszczony w odpowiedniej kategorii.

Mówiąc bardziej konkretnie, załóżmy, że chcesz zaprojektować klasyfikator tekstu zdolny do rozróżniania typowych tematów rozmów, takich jak pogoda, filmy czy jedzenie. Aby umożliwić klasyfikatorowi tekstu rozpoznanie dyskusji na temat pogody, możesz polecić mu, aby szukał słów związanych z pogodą w treści próbek tekstu, które otrzymuje. Otrzymasz listę słów kluczowych, wyrażeń i innych odpowiednich wzorców, które można wykorzystać do wyróżnienia tematu. Na przykład możesz poinstruować klasyfikatora, aby szukał słów takich jak „wiatr”, „deszcz”, „słońce”, „śnieg” lub „chmura”. Następnie możesz poprosić klasyfikatora o przejrzenie tekstu wejściowego i policzenie, 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, możesz sklasyfikować 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 możliwe do zinterpretowania przez ludzi, a także można je ulepszyć poprzez ręczną interwencję inżyniera. Jednakże metody klasyfikacji oparte na regułach są również nieco kruche i często trudno jest je uogólniać, ponieważ mogą opierać się jedynie na zaprogramowanych wcześniej wzorcach. Na przykład słowo „chmura” może odnosić się do wilgoci w powietrzu niebo lub może odnosić się do chmury cyfrowej, w której przechowywane są dane. Systemom opartym na regułach trudno jest poradzić sobie z tymi niuansami, jeśli inżynierowie nie spędzają sporo czasu na ręcznym przewidywaniu i dostosowywaniu tych subtelności.

Systemy uczenia maszynowego

Jak wspomniano powyżej, systemy oparte na regułach mają ograniczenia, ponieważ ich funkcje i zasady muszą być wstępnie zaprogramowane. Z kolei systemy klasyfikacji oparte na uczeniu maszynowym działają poprzez stosowanie algorytmów analizujących zbiory danych pod kątem wzorców powiązanych z określoną klasą.

Algorytmy uczenia maszynowego są zasilane wstępnie oznakowanymi/wstępnie sklasyfikowanymi instancjami, które są analizowane pod kątem odpowiednich funkcji. Te wstępnie oznaczone instancje są danymi szkoleniowymi.

Klasyfikator uczenia maszynowego analizuje dane szkoleniowe i uczy się wzorców powiązanych z różnymi klasami. Następnie niewidoczne instancje są pozbawione etykiet i podawane do algorytmu klasyfikacji, który przypisuje instancjom etykietę. Przypisane etykiety są następnie porównywane z oryginalnymi etykietami, aby sprawdzić, jak dokładny jest klasyfikator uczenia maszynowego, mierząc, jak dobrze model nauczył się, jakie wzorce przewidują, które klasy.

Algorytmy uczenia maszynowego działają na zasadzie analizy danych numerycznych. Oznacza to, że aby zastosować algorytm uczenia maszynowego na danych tekstowych, należy dokonać konwersji tekstu na format liczbowy. Istnieją różne metody kodowania danych tekstowych jako danych liczbowych i tworzenia metod uczenia maszynowego wokół tych danych. Poniżej omówimy niektóre różne sposoby reprezentowania danych tekstowych.

Worek słów

Torba słów to jedno z najczęściej stosowanych podejść do kodowania i reprezentowania danych tekstowych. Termin „worek słów” bierze się z faktu, że zasadniczo bierzesz wszystkie słowa z dokumentów i wkładasz je do jednego „worka”, nie zwracając uwagi na kolejność słów ani gramatykę, zwracając uwagę jedynie na częstotliwość słów w torbie. W rezultacie powstaje długa tablica, czyli wektor, zawierająca pojedynczą reprezentację wszystkich słów w dokumentach wejściowych. Jeśli zatem w dokumentach wejściowych znajduje się łącznie 10000 unikalnych słów, wektory cech będą miały długość 10000 słów. W ten sposób obliczany jest rozmiar worka słów/wektora cech.

Zdjęcie: gk_ przez Machinelearning.co, (https://machinelearnings.co/text-classification-using-neural-networks-f5cd7b8765c6)

Po ustaleniu rozmiaru wektora cech każdemu dokumentowi na liście dokumentów ogółem przypisywany jest 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” pojawi się osiem razy w jednym dokumencie tekstowym, odpowiedni wektor cech/tablica cech będzie miał ósemkę na odpowiedniej pozycji.

Innymi słowy, wszystkie unikalne słowa pojawiające się w dokumentach wejściowych są gromadzone w jednym worku, a następnie każdy dokument otrzymuje wektor słów o tym samym rozmiarze, który następnie jest wypełniany liczbą wystąpień różnych słów w dokumencie .

Tekstowe zbiory danych często zawierają dużą liczbę unikalnych słów, ale większość z nich nie jest używana zbyt często. Z tego powodu liczba słów użytych do utworzenia wektora słów jest zazwyczaj ograniczona do wybranej wartości (N), a wówczas wymiar wektora cech będzie wynosić Nx1.

Termin Częstotliwość-odwrotna częstotliwość dokumentu (TF-IDF)

Innym sposobem przedstawienia dokumentu na podstawie zawartych w nim słów jest dubbing Termin Częstotliwość-odwrotna częstotliwość dokumentu (TF-IDF). Podejście TF-IDF tworzy również wektor reprezentujący dokument na podstawie zawartych w nim słów, ale w przeciwieństwie do Bag-of-words te słowa są ważone nie tylko częstotliwością. TF-IDF rozważa znaczenie słów w dokumentach, próbując określić ilościowo, jak istotne jest to słowo dla tematu dokumentu. Innymi słowy, TF-IDF analizuje trafność zamiast częstotliwości, a liczba słów w wektorze cech jest zastępowana wynikiem TF-IDF, który jest obliczany w odniesieniu do całego zbioru danych.

Podejście TF-IDF opiera się najpierw na obliczeniu częstotliwości terminów, czyli liczby wystąpień unikalnych terminów w określonym dokumencie. Jednakże TF-IDF dba również o ograniczenie wpływu niezwykle powszechnych słów, takich jak „the”, „lub” i „i”, ponieważ te „słowa blokujące” są bardzo powszechne, ale przekazują bardzo mało informacji na temat treści dokumentu. Słowa te należy pominąć, do czego odnosi się część TF-IDF dotycząca „częstotliwości odwrotnych dokumentów”. Dzieje się tak dlatego, że im więcej dokumentów pojawia się określone słowo, tym mniej przydatne jest to słowo w odróżnianiu go od innych dokumentów na liście wszystkich dokumentów. Formuła używana przez TF-IDF do obliczania ważności słowa ma na celu zachowanie słów, które są najczęstsze i najbardziej bogate semantycznie.

Wektory cech utworzone metodą TF-IDF zawierają znormalizowane wartości, które sumują się do jedności, przypisując każdemu słowu wartość ważoną obliczoną za pomocą wzoru TF-IDF.

Osadzanie słów

Osadzanie słów to metody reprezentacji tekstu, które zapewniają, że słowa o podobnym znaczeniu mają podobną reprezentację liczbową.

Osadzanie słów działają poprzez „wektoryzację” słów, 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 przedstawiania słów jako wektorów słowa są konwertowane na wektory składające się z wartości rzeczywistych. Każde słowo jest odwzorowywane na jeden wektor, a słowa o podobnym znaczeniu mają podobny kierunek i wielkość. Ten typ kodowania umożliwia algorytmowi uczenia maszynowego poznanie skomplikowanych relacji między słowami.

Osadzenia reprezentujące różne słowa są tworzone w zależności od sposobu użycia danych słów. Ponieważ słowa używane w podobny sposób będą miały podobne wektory, proces osadzania słów automatycznie tłumaczy część znaczenia tych słów. Z kolei podejście oparte na worku słów tworzy kruche reprezentacje, w których różne słowa będą miały odmienne reprezentacje, nawet jeśli zostaną użyte w bardzo podobnych kontekstach.

W rezultacie osadzanie słów lepiej oddaje kontekst słów w zdaniu.

Istnieją różne algorytmy i podejścia stosowane do tworzenia osadzania słów. Do najpopularniejszych i niezawodnych metod osadzania słów należą: osadzanie warstw, word2vec i GloVe.

Osadzanie warstw

Jednym z potencjalnych sposobów wykorzystania osadzania słów w połączeniu z systemem uczenia maszynowego/głębokiego uczenia się jest użyj warstwy osadzającej. Warstwy osadzania to warstwy głębokiego uczenia się, które przekształcają słowa w osady, które następnie są przekazywane do reszty systemu głębokiego uczenia się. Osadzania słów uczą się w trakcie uczenia się sieci pod kątem określonego zadania tekstowego.

W podejściu osadzania słów podobne słowa będą miały podobne reprezentacje i będą bliżej siebie niż odmiennych słów.

Aby móc zastosować warstwy osadzające, tekst musi zostać najpierw poddany wstępnej obróbce. Tekst w dokumencie musi być zakodowany metodą one-hot, a rozmiar wektora musi zostać określony z wyprzedzeniem. Tekst typu one-hot jest następnie konwertowany na wektory słów, a wektory są przekazywane do modelu uczenia maszynowego.

Word2Stary

Word2Stary to kolejna powszechna metoda osadzania słów. Word2Vec wykorzystuje metody statystyczne do konwersji słów na elementy osadzone i jest zoptymalizowany do użytku z modelami opartymi na sieciach neuronowych. Word2Vec został opracowany przez badaczy Google i jest jedną z najczęściej stosowanych metod osadzania, ponieważ niezawodnie zapewnia użyteczne i bogate osadzanie. Reprezentacje Word2Vec są przydatne do identyfikowania podobieństw semantycznych i syntaktycznych w języku. Oznacza to, że reprezentacje Word2Vec wychwytują relacje między podobnymi pojęciami, będąc w stanie rozróżnić, że cechą wspólną między „Królem” i „Królową” jest królewskość i że „Król” oznacza „męskość”, podczas gdy Królowa oznacza „kobiecość”.

Rękawica

GloVE lub globalny wektor reprezentacji słów, opiera się na algorytmach osadzania używanych przez Word2Vec. Metody osadzania GloVe łączą aspekty zarówno Word2Vec, jak i technik faktoryzacji macierzy, takich jak Ukryta Analiza Semantyczna. Zaletą Word2Vec jest to, że może uchwycić kontekst, ale w zamian słabo rejestruje globalne statystyki tekstu. I odwrotnie, tradycyjne reprezentacje wektorowe dobrze nadają się do określania globalnych statystyk tekstu, ale nie są przydatne do określania kontekstu słów i wyrażeń. GloVE czerpie z obu podejść, tworząc kontekst słów w oparciu o globalne statystyki tekstu.

Bloger i programista specjalizujący się w Nauczanie maszynowe i głęboki Learning tematy. Daniel ma nadzieję pomóc innym wykorzystać moc sztucznej inteligencji dla dobra społecznego.