spaCy (tsz. spaCies)
Tokenizálás: A spaCy nagyon gyors és pontos tokenizálást biztosít. A tokenizálás az első lépés a természetes nyelv feldolgozásában, ahol a szöveget szavakra vagy mondatokra bontják.
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp("I love natural language processing!")
for token in doc:
print(token.text)
Szófaji címkézés (POS tagging): A spaCy képes a szöveg szavainak szófaji elemzésére, azaz megállapítja, hogy az egyes szavak milyen szerepet töltenek be a mondatban (pl. főnév, ige, melléknév stb.).
for token in doc:
print(token.text, token.pos_)
Lemmatizáció: A spaCy képes lemmatizálni a szöveget, azaz a szavakat az alapformájukra (lemma) visszavezetni. Ez hasznos lehet keresési vagy elemzési feladatok során.
for token in doc:
print(token.text, token.lemma_)
Név-entitás felismerés (NER): A spaCy beépített név-entitás felismerő rendszert tartalmaz, amely képes azonosítani a szövegben szereplő fontos neveket és entitásokat, mint például személyek, helyek, szervezetek stb.
for ent in doc.ents:
print(ent.text, ent.label_)
Szintaktikai függőségek elemzése: A spaCy képes a szövegek szintaktikai szerkezetének elemzésére is, azaz megállapítja, hogy a szavak hogyan kapcsolódnak egymáshoz a mondatban (pl. alany, állítmány, tárgy).
for token in doc:
print(token.text, token.dep_, token.head.text)
Gyors feldolgozás: A spaCy különösen nagy teljesítményű, és kifejezetten nagy adatbázisok és valós idejű alkalmazások feldolgozására tervezték. A könyvtár Cythonban (a Python és C kombinációja) van írva, ami jelentősen növeli a feldolgozás sebességét.
Előre betanított modellek: A spaCy beépített modelleket biztosít több nyelvhez, beleértve az angolt, németet, franciát, spanyolt és sok más nyelvet. Ezek a modellek tartalmaznak szófaji címkézést, név-entitás felismerést és szintaktikai elemzést.
Mélytanulási integráció: A spaCy könnyen integrálható más mélytanulási könyvtárakkal, mint például a TensorFlow vagy a PyTorch, így bonyolultabb neurális hálózati modelleket is létre lehet hozni vele.
Moduláris felépítés: A spaCy különféle modulokból épül fel, így a felhasználók csak azokat a komponenseket tölthetik be, amelyekre ténylegesen szükségük van, ezzel növelve a rugalmasságot és a feldolgozási sebességet.
import spacy
# Előre betanított angol modell betöltése
nlp = spacy.load("en_core_web_sm")
# Szöveg elemzése
doc = nlp("Apple is looking at buying U.K. startup for $1 billion.")
# Tokenek kiírása
for token in doc:
print(token.text)
# Név-entitások felismerése
for ent in doc.ents:
print(ent.text, ent.label_)
Kimenet:
Apple ORG U.K. GPE $1 billion MONEY
for token in doc:
print(token.text, token.dep_, token.head.text)
Kimenet:
Apple nsubj looking is aux looking looking ROOT looking at prep looking buying pcomp at U.K. compound startup startup dobj buying for prep buying $1 compound billion billion pobj for
A spaCy egy kiváló választás azok számára, akik nagy teljesítményű, ipari szintű természetes nyelvfeldolgozási rendszereket szeretnének építeni. Nagyon gyors, modern, és számos előre betanított modellt kínál, így ideális választás nagy mennyiségű adat feldolgozásához és komplex nyelvfeldolgozási feladatokhoz.