Zpracování přirozeného jazyka je aspektem strojového učení, které vám umožňuje zpracovat psaná slova do strojově přívětivého jazyka. Takové texty se pak stanou upravitelnými a můžete na nich spouštět výpočetní algoritmy, jak chcete.
Logika této podmanivé technologie se zdá být složitá, ale není. A dokonce i nyní, se solidním pochopením základního programování v Pythonu, můžete vytvořit nový textový procesor pro kutily pomocí sady nástrojů pro přirozený jazyk (NLTK).
Zde je návod, jak začít s Pythonovým NLTK.
Co je NLTK a jak funguje?
Napsáno v Pythonu, NLTK nabízí řadu funkcí pro manipulaci s řetězci. Je to univerzální knihovna přirozeného jazyka s rozsáhlým úložištěm modelů pro různé aplikace v přirozeném jazyce.
S NLTK můžete zpracovávat nezpracované texty a extrahovat z nich smysluplné funkce. Nabízí také modely pro analýzu textu, gramatiky založené na funkcích a bohaté lexikální zdroje pro sestavení kompletního jazykového modelu.
Jak nastavit NLTK
Nejprve vytvořte kořenovou složku projektu kdekoli na vašem PC. Chcete -li začít používat knihovnu NLTK, otevřete terminál v kořenové složce, kterou jste vytvořili dříve a
vytvořit virtuální prostředí.Poté do tohoto prostředí nainstalujte sadu nástrojů pro přirozený jazyk pip:
pip install nltk
NLTK však nabízí řadu datových sad, které slouží jako základ pro nové modely přirozeného jazyka. Chcete-li k nim získat přístup, musíte roztočit integrovaný stahovač dat NLTK.
Jakmile tedy úspěšně nainstalujete NLTK, otevřete soubor Pythonu pomocí libovolného editoru kódu.
Poté importujte soubor nltk modul a vytvořte instanci stahovače dat pomocí následujícího kódu:
pip install nltk
nltk.download ()
Spuštěním výše uvedeného kódu přes terminál se zobrazí grafické uživatelské rozhraní pro výběr a stahování datových balíčků. Zde budete muset vybrat balíček a kliknout na Stažení tlačítko pro jeho získání.
Jakýkoli balíček dat, který stáhnete, přejde do zadaného adresáře zapsaného v souboru Stáhnout adresář pole. Pokud chcete, můžete to změnit. Ale zkuste zachovat výchozí umístění na této úrovni.
Příbuzný: Nejlepší bezplatné editory kódu pro psaní vaší první aplikace
Poznámka: Datové balíčky se standardně připojují k systémovým proměnným. Můžete je tedy i nadále používat pro následné projekty bez ohledu na to, jaké prostředí Pythonu používáte.
Jak používat tokeny NLTK
Nakonec NLTK nabízí vyškolené tokenizační modely pro slova a věty. Pomocí těchto nástrojů můžete vygenerovat seznam slov z věty. Nebo přeměňte odstavec na rozumné větné pole.
Zde je příklad použití NLTK word_tokenizer:
import nltk
z nltk.tokenize importujte word_tokenize
word = "Toto je ukázkový text"
tokenWord = word_tokenizer (slovo)
tisk (tokenWord)
Výstup:
['This', 'is', 'an', 'example', 'text']
NLTK také používá předem natrénovaný tokenizer vět s názvem PunktSentenceTokenizer. Funguje to tak, že se odstavec rozdělí na seznam vět.
Podívejme se, jak to funguje s odstavcem se dvěma větami:
import nltk
z nltk.tokenize import word_tokenize, PunktSentenceTokenizer
věta = "Toto je ukázkový text. Toto je návod pro NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (věta)
tisk (tokenized_sentence)
Výstup:
['Toto je příklad textu.', 'Toto je návod pro NLTK']
Každou větu v poli generovaném z výše uvedeného kódu můžete dále tokenizovat pomocí word_tokenizer a Python pro smyčku.
Příklady použití NLTK
I když nemůžeme demonstrovat všechny možné případy použití NLTK, zde je několik příkladů, jak jej můžete začít používat k řešení problémů v reálném životě.
Získejte definice slov a jejich části řeči
NLTK nabízí modely pro určování částí řeči, získání podrobné sémantiky a možné kontextové použití různých slov.
Můžete použít wordnet model pro generování proměnných pro text. Poté určete jeho význam a část řeči.
Zkontrolujme například možné proměnné pro „Monkey:“
import nltk
z nltk.corpus importujte wordnet jako wn
print (wn.synsets ('monkey'))
Výstup:
[Synset ('monkey.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02')]
Výše uvedený kód vydává možné alternativy slov nebo syntaxe a části řeči pro „Monkey“.
Nyní zkontrolujte význam „opice“ pomocí definice metoda:
Monkey = wn.synset ('monkey.n.01'). Definition ()
Výstup:
některý z různých primátů s dlouhým ocasem (kromě prozimů)
Můžete nahradit řetězec v závorkách jinými generovanými alternativami a zjistit, jaké výstupy NLTK.
The pos_tag model však určuje části řeči slova. Můžete to použít s word_tokenizer nebo PunktSentenceTokenizer () pokud máte co do činění s delšími odstavci.
Funguje to takto:
import nltk
z nltk.tokenize import word_tokenize, PunktSentenceTokenizer
word = "Toto je příklad textu. Toto je návod k NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (slovo)
pro i v tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
tisk (partsOfSpeech)
Výstup:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('' text ',' NN '), ('.', '.')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('' on ',' IN '), ('NLTK', 'NNP')]
Výše uvedený kód spáruje každé tokenizované slovo s jeho řečovou značkou v n -tici. Význam těchto značek můžete zkontrolovat na Penn Treebank.
Pro čistší výsledek můžete odstranit tečky ve výstupu pomocí nahradit() metoda:
pro i v tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
tisk (partsOfSpeech)
Čistší výkon:
[('This', 'DT'), ('is', 'VBZ'), ('an', 'DT'), ('example', 'NN'), ('' text ',' NN ') ]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('' on ',' IN '), ('NLTK', 'NNP')]
Vizualizace trendů funkcí pomocí vykreslování NLTK
Extrahování funkcí ze surových textů je často zdlouhavé a časově náročné. Nejsilnější determinátory funkcí však můžete zobrazit v textu pomocí grafu trendů distribuce frekvence NLTK.
NLTK se však synchronizuje s matplotlib. Toho můžete využít k zobrazení konkrétního trendu ve vašich datech.
Níže uvedený kód například porovnává sadu pozitivních a negativních slov na distribučním grafu pomocí jejich posledních dvou abeced:
import nltk
z nltk importovat ConditionalFreqDist
Seznamy negativních a pozitivních slov:
negativy = [
'abnormální', 'zrušit', 'ohavný',
„ohavně“, „ohavný“, „ohavný“
]
pozitiva = [
'přetéká', 'oplývá', 'hojnost',
„hojný“, „přístupný“, „přístupný“
]
# Rozdělte položky v každém poli do označených dvojic dvojic
# a zkombinujte obě pole:
pos_negData = ([("negativní", neg) pro neg v negativách]+[("pozitivní", pos) pro pos v pozitivních])
# Z výsledného pole extrahujte poslední dvě abecedy:
f = ((pos, i [-2:],) pro (pos, i) v pos_negData)
# Vytvořte distribuční graf těchto abeced
cfd = ConditionalFreqDist (f)
cfd.plot ()
Distribuční diagram abecedy vypadá takto:
Podíváme -li se pozorně na graf, slova končící na ce, ds, le, nd, a nt mají vyšší pravděpodobnost, že budou pozitivními texty. Ale ti, kteří končí al, ly, na, a te jsou spíše negativní slova.
Poznámka: Přestože jsme zde použili data generovaná vlastními silami, můžete k některým vestavěným datovým sadám NLTK přistupovat pomocí čtečky Corpus jejich zavoláním z korpus třída nltk. Možná se budete chtít podívat na dokumentace balíčku korpusu abyste zjistili, jak jej můžete použít.
Se vznikem technologií, jako je Alexa, detekce spamu, chatboti, analýza sentimentu a další, se zdá, že se zpracování přirozeného jazyka vyvíjí do sub-lidské fáze. Přestože jsme v tomto článku zvážili jen několik příkladů toho, co NLTK nabízí, nástroj má pokročilejší aplikace vyšší než rozsah tohoto kurzu.
Po přečtení tohoto článku byste měli mít dobrou představu o tom, jak používat NLTK na základní úrovni. Vše, co teď můžete udělat, je uvést tyto znalosti do praxe sami!
Zajímá vás oblast strojového učení? Začněte s těmito knihovnami.
Číst dále
- Programování
- Krajta
- Programovací jazyky
- Programování
Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!
Kliknutím sem se přihlásíte k odběru