Stemming i lematyzacja w Pythonie: którego użyć?
Opublikowany: 2021-02-09Przetwarzanie języka naturalnego (NLP) to technika przetwarzania komunikacji, która polega na wyodrębnianiu ważnych cech języka. Jest to postęp w Sztucznej Inteligencji polegający na budowaniu inteligentnych agentów z wcześniejszym doświadczeniem. Poprzednie doświadczenie odnosi się tutaj do szkolenia przeprowadzanego na ogromnych zestawach danych obejmujących dane tekstowe z takich źródeł, jak media społecznościowe, web scraping, formularze ankiet i wiele innych technik gromadzenia danych.
Pierwszym krokiem po zebraniu danych jest oczyszczenie tych danych i przekształcenie ich w formę do odczytu maszynowego, formę numeryczną, którą maszyna może zinterpretować. Podczas gdy proces konwersji to zupełnie inna sprawa, proces czyszczenia jest pierwszym krokiem do wykonania. W tym oczyszczającym zadaniu przegięcie jest ważną koncepcją, która wymaga jasnego zrozumienia przed przejściem do lematyzacji i lematyzacji.
Spis treści
Przegięcie
Wiemy, że dane tekstowe zawierają zdania ze słowami i innymi znakami, które mogą, ale nie muszą wpływać na nasze przewidywania. Zdania składają się ze słów i słów, które są powszechnie używane, takich jak is, there i są nazywane słowami stop. Można je łatwo usunąć, tworząc dla nich korpus, ale co z różnymi formami tego samego słowa?
Nie chcesz, aby twoja maszyna traktowała „uczenie się” i „uczenie się” jako różne słowa, ponieważ intencja tych słów pozostaje taka sama i oba przekazują to samo znaczenie. Postępowanie w tego typu przypadkach jest powszechną praktyką w NLP i jest to znane jako przegięcie. Jest to podstawowa idea podstawowania i lematyzacji z różnymi podejściami. Odkryjmy różnice między nimi i przyjrzyjmy się, który z nich jest lepszy.
Przybitka
Jest to jedna z technik normalizacji tekstu, która skupia się na zmniejszeniu niejednoznaczności słów. Trzonowanie koncentruje się na oderwaniu słowa od słowa rdzenia. Czyni to, usuwając przedrostki lub przyrostki, w zależności od rozważanego słowa. Ta technika redukuje słowa zgodnie z określonym zestawem reguł.
Otrzymane słowa mogą, ale nie muszą mieć żadnych znaczących słów źródłowych. Jego głównym celem jest tworzenie grup podobnych słów, aby można było zoptymalizować dalsze przetwarzanie wstępne. Na przykład słowa takie jak grać, grać i grać należą do słowa rdzenia „grać”. Pomaga to również w skróceniu czasu wyszukiwania w wyszukiwarkach, ponieważ teraz większy nacisk kładzie się na kluczowy element.
Należy omówić dwa przypadki dotyczące szypułkowania, tj. nadparowanie i niedostateczne osadzenie . Chociaż usunięcie przedrostków i przyrostków ze słowa rozwiązuje niektóre przypadki, niektóre słowa są usuwane bardziej niż wymagania.
Może to prowadzić do większej liczby śmieciowych słów bez znaczenia. Chociaż jest to wada macierzyństwa jako całości, a jeśli dzieje się to bardziej drastycznie, jest to określane jako nadmierne rdzennie. Under stemming jest odwrotnością, gdzie proces stemplowania skutkuje bardzo małą lub różnicą w słowach.
Lematyzacja
Innym podejściem do normalizacji tekstu i zamiany go na podstawowe znaczenia jest lemmatyzacja. Ma to ten sam motyw grupowania podobnych słów intencji w jedną grupę, ale różnica polega na tym, że w tym przypadku słowa wynikowe mają znaczenie.
Nie są one obnażane za pomocą predefiniowanych reguł, ale tworzone są za pomocą słownika lub nazywamy to Lematem. Tutaj proces konwersji zajmuje więcej czasu, ponieważ najpierw słowa są dopasowywane do ich części mowy, co samo w sobie jest procesem czasochłonnym.
Gwarantuje to, że słowo główne ma dosłowne znaczenie, co pomaga w uzyskiwaniu dobrych wyników w analizie. Jest to przydatne, gdy nie chcemy spędzać dużo czasu na czyszczeniu danych, a do dalszej analizy potrzebne są czystsze dane. Jedną z wad tej techniki jest to, że ponieważ skupia się ona bardziej na gramatyce słów, różne języki wymagają oddzielnych korpusów, co prowadzi do coraz większej obsługi danych.
Zamówienie: Pomysły na projekty głębokiego uczenia się dla początkujących
Którego użyć?
Teraz przychodzi moment wybrania tego między nimi dwoma. Wybór kogokolwiek jest bardzo subiektywny, ponieważ przypadek użycia, na który kierujesz, odgrywa tutaj główną rolę.
Jeśli chcesz przeanalizować fragment tekstu, ale czas jest ograniczeniem, możesz zdecydować się na stemming, ponieważ wykonuje to działanie w krótszym czasie, ale z niskim wskaźnikiem powodzenia, a rdzenie są dostarczane w sposób algorytmiczny, który może nie mieć żadnego oznaczający.
Przyjęcie lemmatyzacji daje dodatkową korzyść w postaci uzyskania znaczących i dokładnych słów źródłowych z różnych form. Jeśli możesz pozwolić sobie na dobre zasoby obliczeniowe z większą ilością czasu, może to być lepszy wybór. Należy to przyjąć tam, gdzie zależy nam na dokładnej analizie. Może to również mieć miejsce w przypadku niektórych technik wyszukiwania w wyszukiwarkach, w których słowo główne wystarcza, aby uzyskać żądane przez użytkownika wyniki.
Implementacja Pythona
Pakiet NLTK (Natural Language Tool Kit) jest implementacją w Pythonie zadań związanych z NLP. Ta biblioteka zawiera wszystkie wymagane narzędzia, takie jak Stemmers. Lemmatyzatory, zatrzymanie usuwania słów, tworzenie niestandardowych drzew parsera i wiele więcej. Zawiera również dane korpusu z ważnych źródeł zawartych w samym pakiecie.
Technika stemmingu ma wiele implementacji, ale najpopularniejszą i najstarszą jest algorytm Portera Stemmera. Trzon do śnieżki jest również używany w niektórych projektach. Aby lepiej zrozumieć różnicę między stemmingiem a lematyzacją, spójrz na poniższy kod i wynik tego samego:
importuj nltk
z nltk.stem importuj PorterStemmer
z nltk.stem importuj WordNetLemmatizer
word_stemmer = PorterStemmer()
lematizer = WordNetLemmatizer()
print(lemmatizer.lemmatize('muchy'))
print(word_stemmer.stem('muchy'))
Wyjście:
latać
fli
Pierwsze wyjście pochodzi z lemmatyzatora, a drugie z łodygi. Widać różnicę polegającą na tym, że lematyzator podał słowo kluczowe jako wynik, podczas gdy stemmer po prostu przyciął słowo od końca.
Ucz się kursów nauki o danych z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Przeczytaj także: Pomysły na projekty uczenia maszynowego
Wniosek
NLP rozwija się każdego dnia, a nowe metody ewoluują z czasem. Większość z nich skupia się na tym, jak skutecznie wydobyć właściwe informacje z danych tekstowych przy minimalnej utracie i wyeliminowaniu wszystkich szumów. Obie techniki są powszechnie stosowane. Liczy się tylko to, że analiza jest przeprowadzana na czystych danych.
Jakie są dwa rodzaje algorytmów AI używanych do grupowania dokumentów?
Klastrowanie hierarchiczne i klastrowanie niehierarchiczne to dwa rodzaje algorytmów sztucznej inteligencji używane do grupowania tekstów. Algorytm hierarchicznego grupowania dzieli i agreguje dokumenty zgodnie z zestawem reguł. Pary klastrów elementów danych w hierarchii są następnie łączone ze sobą. Chociaż ta technika jest łatwa do odczytania i zrozumienia, może nie być tak skuteczna jak grupowanie niehierarchiczne. Gdy w danych jest wiele wad, klastrowanie może być trudne. Klastrowanie niehierarchiczne polega na łączeniu i łamaniu istniejących klastrów w celu tworzenia nowych. Jest to podejście klastrowe, które jest stosunkowo szybsze, bardziej niezawodne i stabilniejsze.
Czy do analizy sentymentu preferowana jest lematyzacja?
Lemmatyzacja i lematyzacja są bardzo skutecznymi procedurami. Jednak po przekształceniu w formę rdzenia lematyzacja zawsze daje słownikowy termin oznaczający. Jeśli znaczenie terminu nie jest krytyczne dla badania, zaleca się stemming. Kiedy znaczenie słowa jest kluczowe dla analizy, zaleca się lematyzację. W rezultacie, gdybyś musiał wybrać jedno podejście do analizy sentymentu, lematyzacja byłaby tym, którym należy się udać.
W jaki sposób stemming i lematyzacja są wykorzystywane do grupowania dokumentów?
Grupowanie dokumentów, znane również jako grupowanie tekstu, to metoda analizy tekstów tekstowych poprzez ich grupowanie. Jego zastosowania obejmują zautomatyzowane układanie dokumentów, wyodrębnianie tematów, a nawet szybkie wyszukiwanie informacji. Steming i lematyzacja służą do zmniejszenia liczby tokenów wymaganych do przekazywania tych samych informacji, a tym samym do poprawy ogólnej techniki. Po tym kroku wstępnego przetwarzania funkcje są obliczane przez pomiar częstotliwości każdego tokena, po czym następują najbardziej wydajne podejścia do grupowania.