part-of-speech tagging
Megjelenés
Főnév
part-of-speech tagging (tsz. part-of-speech taggings)
- (informatika) Part-of-speech (POS) tagging – magyarul szófaji címkézés – a természetes nyelvfeldolgozás (NLP) egyik alapvető feladata, amely során minden egyes szót ellátunk a megfelelő szófaji kategóriával (főnév, ige, melléknév stb.) az adott szövegkörnyezet figyelembevételével.
🌐 Mi az a POS tagging?
POS tagging során a program egy szöveg minden szavához hozzárendeli a nyelvtani szerepét, például:
The quick brown fox jumps over the lazy dog. → DET ADJ ADJ NOUN VERB ADP DET ADJ NOUN
Itt:
- DET = determináns
- ADJ = melléknév
- NOUN = főnév
- VERB = ige
- ADP = prepozíció (előljárószó)
🧠 Miért nehéz ez?
A POS tagging nem mindig egyértelmű, mert a szavak többféle szófajként is működhetnek. Például:
- “book” → főnév (a book) vagy ige (to book a flight)
- “can” → segédige (can swim) vagy főnév (a can of soup)
A helyes címkézéshez kontekstre van szükség – ezért szabályalapú, statisztikai és gépi tanulásos megközelítések is léteznek.
📚 Típusai
1. Rule-based POS tagging
- Előre megírt szabályokkal működik (pl. ha egy szó előtt egy névelő van, akkor valószínűleg főnév).
- Példa: Eric Brill szabályalapú taggere.
2. Statisztikai POS tagging
- Valószínűségi modelleket használ, pl. Hidden Markov Model (HMM).
- A szavak és címkék előfordulási valószínűségei alapján dönt.
3. Gépi tanulásos / deep learning alapú POS tagging
- Supervised tanítás adatcímkézett korpuszon (pl. Penn Treebank).
- Algoritmusok: CRF (Conditional Random Field), BiLSTM, BERT-alapú modellek.
🛠️ Címkerendszerek (tagsetek)
Példák:
- Penn Treebank (angol): 36 címke (NN, VB, JJ, RB…)
- Universal POS tagset: nyelvfüggetlen, 17 kategória (NOUN, VERB, ADJ, ADV, PRON, DET…)
- HunPOS vagy Magyarlanc: magyar szöveghez fejlesztett címkézők.
🧪 Használati példák (Pythonban)
import nltk
nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
text = "The quick brown fox jumps over the lazy dog."
tokens = nltk.word_tokenize(text)
tags = nltk.pos_tag(tokens)
print(tags)
Kimenet:
[('The', 'DT'), ('quick', 'JJ'), ('brown', 'JJ'), ('fox', 'NN'), ('jumps', 'VBZ'), ...]
🔎 Miért hasznos a POS tagging?
- Szemantikai elemzés: ki mit csinál, milyen viszonyban vannak a szavak?
- Szintaktikai elemzés (pl. fástruktúra építése)
- Nevezetes entitás felismerés (NER)
- Fordítás, összegzés, kérdés-válasz rendszerek
- Szövegkereső és indexelő algoritmusok
🇭🇺 POS tagging magyar nyelven
A magyar nyelv morfológiailag agglutináló, vagyis sok toldalékot használ, ezért bonyolultabb a szófaji címkézés. Kihívások:
- A ragok és képzők miatt egy szó sokféle alakban fordulhat elő.
- Az igeragozás sok alakot eredményez.
- A szórend szabadabb, mint angolban.
Magyar nyelvű eszközök:
- emMorph – morfológiai elemző
- Magyarlanc – POS tagging + elemző pipeline
- UDPipe – Universal Dependencies-re tanított modellek
- spaCy + hu_core_ud modell
🧠 Modern POS tagging neurális hálókkal
A legmodernebb POS taggerek BERT- vagy más transformer-alapú modelleket használnak:
from transformers import pipeline
nlp = pipeline("token-classification", model="vblagoje/bert-english-uncased-finetuned-pos", aggregation_strategy="simple")
result = nlp("The quick brown fox jumps over the lazy dog.")
print(result)
Összefoglalás (TL;DR)
| Fogalom | Leírás |
|---|---|
| POS tagging | Szavak szófaji címkézése kontextus alapján |
| Módszerek | Szabályalapú, statisztikai, gépi tanulásos |
| Cél | Nyelvtani elemzés, fordítás, szövegértelmezés |
| Kihívás | Többértelműség, nyelvspecifikus szabályok |
| Eszközök | NLTK, spaCy, HunPOS, BERT |
- part-of-speech tagging - Szótár.net (en-hu)
- part-of-speech tagging - Sztaki (en-hu)
- part-of-speech tagging - Merriam–Webster
- part-of-speech tagging - Cambridge
- part-of-speech tagging - WordNet
- part-of-speech tagging - Яндекс (en-ru)
- part-of-speech tagging - Google (en-hu)
- part-of-speech tagging - Wikidata
- part-of-speech tagging - Wikipédia (angol)