NLTK (tsz. NLTKs)
Tokenizálás: Az NLTK támogatja a szöveg szavakra vagy mondatokra való bontását, ami az első lépés a szövegelemzés során.
import nltk
from nltk.tokenize import word_tokenize
szoveg = "Szeretem az NLP-t!"
tokenek = word_tokenize(szoveg)
print(tokenek)
Kimenet:
Szófaji címkézés (POS tagging): Az NLTK képes a szövegben található szavakat automatikusan szófaj szerint címkézni (például ige, főnév, melléknév stb.).
from nltk import pos_tag
szoveg = word_tokenize("A macska fut a réten.")
print(pos_tag(szoveg))
Kimenet:
Stemming és Lemmatization: Az NLTK támogatja a szavak alapszavára való visszavezetést. A stemming egyszerűen levágja a szavak végződését, míg a lemmatization a szó alapalakját adja vissza, figyelembe véve a nyelvtani információkat is.
from nltk.stem import PorterStemmer
stemmer = PorterStemmer()
print(stemmer.stem("running")) # Kimenet: 'run'
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
print(lemmatizer.lemmatize("running", pos="v")) # Kimenet: 'run'
Név-entitás felismerés (NER): Az NLTK beépített modellekkel képes felismerni és kategorizálni a név-entitásokat (pl. személyneveket, helyneveket, szervezeteket) szövegekben.
from nltk import ne_chunk
szoveg = word_tokenize("Elon Musk lives in the USA.")
pos_cimkezett = pos_tag(szoveg)
ne_chunked = ne_chunk(pos_cimkezett)
print(ne_chunked)
Korpuszok és szótárak: Az NLTK beépített adatokat biztosít különböző nyelvi korpuszok és szótárak formájában. Ezek lehetnek például a WordNet (angol szinonima-szótár), a Brown korpusz (annotált szövegkorpusz), vagy a Reuters hírek korpusza. Ezek az adatok segítenek a nyelvészeti kutatásokban és fejlesztésekben.
from nltk.corpus import wordnet
synonyms = wordnet.synsets("dog")
print(synonyms.definition()) # Az első jelentés definíciója
Nyelvtani elemzés: Az NLTK segítségével elemezhetők a mondatok szintaktikai szerkezetei (például a mondatrészek felosztása, függőségek elemzése).
from nltk import CFG
nyelvtan = CFG.fromstring("""
S -> NP VP
NP -> DT NN
VP -> VB NP
DT -> 'a'
NN -> 'kutya' | 'macska'
VB -> 'lát'
""")
parser = nltk.ChartParser(nyelvtan)
mondat = word_tokenize("a kutya lát a macska")
for elemzes in parser.parse(mondat):
print(elemzes)
Gépi tanulás az NLP-ben: Az NLTK támogatja különböző gépi tanulási algoritmusok használatát, mint például a Naive Bayes vagy a Decision Trees, amelyekkel kategorizálási feladatokat lehet megoldani szövegek alapján.
Bár az NLTK egy rendkívül hasznos eszköz, bizonyos esetekben lassú lehet, különösen nagy mennyiségű adat feldolgozásakor. Az újabb NLP könyvtárak, mint a spaCy vagy a transformers, gyorsabbak és nagyobb teljesítményűek lehetnek, különösen a modern mélytanulási modellek esetében. Az NLTK azonban még mindig kiemelkedő választás kisebb projektekhez, oktatási célokra, és kutatási feladatokhoz.
Az NLTK az egyik legismertebb és legszélesebb körben használt Python könyvtár a természetes nyelvfeldolgozásban. Könnyen használható, gazdag funkcionalitást biztosít a szövegelemzéshez, és lehetőséget ad a nyelvfeldolgozás legfontosabb feladatainak gyors megvalósítására.