2
Szövegbányászat és szemantikus reprezentációk
2026/27 ősz
Dr. Kőrösi Gábor · Nagy Soma Bálint · Dr. Berta Árpád
A félév íve – négy blokk, tizenkét fejezet
2. fejezet · Szövegbányászat és szemantikus reprezentációk
áttekintés
Blokk | Fejezet | Központi kérdés |
I. Reprezentáció – miből lesz elemezhető adat? | 0. Az adatelemzéstől az adattudományig | Hogyan lesz egy homályos problémából vizsgálható kérdés és védhető állítás? |
| 1. Szövegbányászat és szemantikus reprezentációk | Hogyan lesz a szövegből összehasonlítható adat? |
| 2. Magas dimenzió és dimenziócsökkentés | Hogyan látunk át és ábrázolunk sokdimenziós reprezentációkat? |
II. Rejtett struktúra – mit tudunk meg a megfigyelések viszonyából? | 3. Klaszterezés és szegmentáció | Milyen csoportok vannak az adatban? |
| 4. Ajánlórendszerek | Mit rangsoroljunk ennek a konkrét felhasználónak? |
| 5. Asszociációs szabályok | Mik fordulnak elő rendszeresen együtt? |
| 6. Hálózattudomány | Milyen globális kapcsolati szerkezet alakult ki? |
III. Idő – mit tesz hozzá az időbeli sorrend? | 7. Idősormodellezés és előrejelzés | Mi várható a múltbeli mintázatok alapján? |
| 8. Anomália- és változásdetektálás | Mikor tér el a valóság szokatlanul a várttól? |
IV. Felelős következtetés – mit állíthatunk, és hogyan adjuk át? | 9. Oksági gondolkodás és kísérletezés | Mikor mondhatjuk, hogy valami okoz valamit? |
| 10. Magyarázható és felelős adattudomány | Miért ezt adta a modell, és mikor szabad rá döntést építeni? |
| 11. Reprodukálható, integrált Data Science projekt | Hogyan lesz mindebből ellenőrizhető, átadható megoldás? |
1
Erre már valaki válaszolt – de hogyan találjuk meg?
Ismerős?
Beírod a hibaüzenetet a keresőbe → nulla használható találat.
Két nap múlva kiderül: ezerszer megválaszolták, csak más szavakkal.
1
Erre már valaki válaszolt – de hogyan találjuk meg?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Melyik kettőt ajánlanád egymáshoz – és miből döntöttél?
1. bejegyzés
doc_id: d342
My original IDE HD is a 42MB Western Digital… And I just got a 213MB IDE HD Maxtor that I wanted to add as a slave drive. I did change the jumper settings…
hossz: 126 token
2. bejegyzés
doc_id: d473
Stupid question from a new IBM PC user: I'm going to be selling my Mac and getting a Gateway 2000. What is the difference between IDE HD and SCSI HD?
hossz: 113 token
3. bejegyzés
doc_id: d245
OK, I'll try one more time. If ANYONE out there has ANY information on MicroScience hard drives and how to set the jumpers for master/slave configurations…
hossz: 75 token
2
Ugyanazok a szavak vagy ugyanaz a jelentés?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
A pár – sok közös szó, más kérdés
„A nyomtató papírelakadást jelez, pedig nincs benne papír.”
„A nyomtató papírméretét mindig A4-esre kell állítanom, mert alapból A5-öt kér.”
B pár – más szavak, ugyanaz a kérdés
„A gép indulás után pár másodperc múlva magától újraindul.”
ugyanaz a probléma
„Bootoláskor a rendszer nem jut el a bejelentkezésig, hanem visszaesik a POST-ra.”
Melyik pár hasonló szavakban? És melyik hasonló jelentésben?
3
Milyen értelemben „hasonló”? – négy szint
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Szint | A kérdés | Mivel vizsgálható? |
Homályos | „Mely szövegek hasonlók?” | semmivel – nem mondja meg, milyen értelemben és milyen döntéshez |
Lexikai | Mely bejegyzésekben vannak hasonlóan súlyozott kifejezések? | szógyakoriság-alapú reprezentáció |
Szemantikus | Mely bejegyzések jelentése áll közel a lekérdezéshez? | tanult, sűrű reprezentáció |
Döntési | Mely 3 korábbi bejegyzés segít leginkább az új kérdés kezelőjének – és melyiket kell embernek ellenőriznie? | szakmai kimenet + korlát |
A fejezet mindhárom vizsgálható szinten végigmegy. A negyediket nem a modell dönti el.
4
Ki dönt, és mit kap a kezébe?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
új bejegyzés
rendszer
pontszám
rangsorolt jelöltlista
relevancia?
moderátor
ellenőrzés
döntés
DÖNTÉSI SZEREPLŐ
a fórum / tudásbázis moderátora
DÖNTÉS
egy új bejegyzéshez mely 3–5 korábbi bejegyzést mutassuk meg?
A rendszer kimenete NEM „a válasz”, hanem rangsorolt jelöltlista:
# | korábbi bejegyzés | miért került ide? | ember nézze át? |
1. | | | |
2. | | | |
3. | | | |
Kérdés a teremhez: honnan fogjuk tudni, hogy ez a lista jó?
5
Mi egy dokumentum? – korpuszból elemzési egység
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Korpusz
a bejegyzések összessége
Dokumentum
egy elemzési egység
Token
a szöveg feldarabolt eleme
Egy nyers fórumbejegyzés részei – melyik tartozzon bele?
rész | tartozzon a dokumentumba? |
fejléc (feladó, tárgy, hírcsoport) | ? |
idézett előzmény („> …”) | ? |
törzsszöveg | ? |
aláírás, e-mail-cím, elérhetőség | ? |
Amit beveszünk, azt a hasonlóság látni fogja.
6
Miért nem elég a nyers szöveg?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
A Számítógépes adatelemzésből már tudjuk, hogyan mérünk hasonlóságot vektorok között (koszinusz-hasonlóság).
De mi a szöveg vektora?
nyers szöveg
"A gép indulás után magától újraindul."
?
dokumentumvektor
[ · · · · · · ]
koszinusz-hasonlóság itt már alkalmazható
Nincs szöge, nincs hossza, nincs koordinátája.
Ha hasonlóságot akarunk mérni, előbb el kell döntenünk, mit tekintünk a szöveg dimenzióinak.
Az előfeldolgozás
7
Az előfeldolgozás elemzési döntés
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Ugyanaz a mondat, négy döntés után négy különböző dokumentum:
„Nem indul el a Windows 3.1 a C: partícióról.”
döntés | mi lesz belőle? | mit veszítünk? |
kisbetűsítés | windows 3.1 | a tulajdonnév és a rövidítés különbsége |
tokenizálás | windows, 3.1 vagy 3, 1 ? | a verziószám mint egy egység |
stopword-szűrés | a „nem” eltűnik | a TAGADÁS |
n-gram | windows vagy windows 3.1 ? | a kifejezés mint egység |
Nincs „helyes tisztítás” – csak döntés és következménye.
Szövegből vektor
8
BoW → A legegyszerűbb vektorizáció
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Bag of Words: a dimenziók a szavak; a dokumentum vektora a szógyakoriságok sorozata. A szórend elveszik.
Három rövid bejegyzés, néhány szó:
| a | probléma | partíció | nyomtató |
1. dok. | ● ● ● | ● | ● ● | |
2. dok. | ● ● | ● | | ● |
3. dok. | ● ● ● ● | ● | | ● ● |
Kérdés: melyik szó mondja meg, hogy miről szól a dokumentum?
„…a probléma a partíció létrehozása, valamint a nyomtató….”
„…..a probléma a nyomtató meghajtójával van……..”
„…..a probléma a lokális nyomtató és a hálózati nyomtató …..”��
9
TF–IDF: két szorzótényező, egy súly
2. fejezet · Szövegbányászat és szemantikus reprezentációk
A BoW megszámolja a szavakat. A TF–IDF megkérdezi: mennyire jellemző ez a szó erre a dokumentumra?
tf-idf(t, d) = tf(t, d) × idf(t)
idf(t) = ln( (1 + N) / (1 + df(t)) ) + 1
N = 480 dokumentum · df(t) = ahány dokumentumban t előfordul
Az idf a ritkaságot jutalmazza
szó | df | idf |
thanks | 123 | 2,36 |
problem | 75 | 2,85 |
simms | 24 | 3,96 |
jumper | 9 | 4,87 |
tcm3105 | 3 | 5,79 |
Ugyanaz a tf – mégis más súly (d342)
szó | tf | df | idf | súly |
drive | 1 | 62 | 3,03 | 0,071 |
jumper | 1 | 9 | 4,87 | 0,114 |
maxtor | 2 | 7 | 5,10 | 0,238 |
42mb | 2 | 2 | 6,08 | 0,284 |
A dokumentum vektorát a végén egységhosszúra normáljuk – így a hosszabb bejegyzés nem kap előnyt pusztán azért, mert többet ír.
9b
TF–IDF kézzel: honnan jön a súly?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Egy mini-korpuszban nézzük meg: a TF dokumentumon belüli számolás, a DF korpusz-szintű számolás.
tf-idf(t, d) = tf(t, d) × idf(t)�idf(t) = ln( (1 + N) / (1 + df(t)) ) + 1�N = 3 dokumentum · df(t) = hány dokumentumban fordul elő t
Mini-korpusz: három rövid dokumentum
dok. | szöveg |
d1 | kutya kutya macska hörcsög |
d2 | kutya egér |
d3 | macska egér |
Számolás d1-ben
szó | tf | df | idf | tf×idf |
kutya | 2 | 2 | 1,29 | 2,58 |
macska | 1 | 2 | 1,29 | 1,29 |
hörcsög | 1 | 1 | 1,69 | 1,69 |
egér | 0 | 2 | 1,29 | 0,00 |
TF = hányszor szerepel itt · DF = hány dokumentumban fordul elő · IDF = a ritkább szó nagyobb szorzót kap
9c
Egységhosszú vektor: a súlyból irány lesz
A nyers TF–IDF-súlyokat elosztjuk a dokumentumvektor hosszával. Így minden dokumentum hossza 1 lesz.
v̂ = v / ||v|| ||v|| = √(v₁² + v₂² + … + vₙ²)
Szó-sorrend a példában: [kutya, macska, hörcsög, egér]
Nyers TF–IDF-vektorok
dok. | kutya | macska | hörcsög | egér | ||v|| |
d1 | 2,58 | 1,29 | 1,69 | 0,00 | 3,34 |
d2 | 1,29 | 0,00 | 0,00 | 1,29 | 1,82 |
d3 | 0,00 | 1,29 | 0,00 | 1,29 | 1,82 |
Példa: d1 hossza = √(2,58² + 1,29² + 1,69²) = 3,34
Egységhosszú vektorok
dok. | kutya | macska | hörcsög | egér | ||v̂|| |
d1 | 0,771 | 0,386 | 0,507 | 0,000 | 1,000 |
d2 | 0,707 | 0,000 | 0,000 | 0,707 | 1,000 |
d3 | 0,000 | 0,707 | 0,000 | 0,707 | 1,000 |
Minden sort külön normálunk: d2 és d3 hossza is 1 lesz.
A normalizálás után nem a hossz dönt, hanem az irány: milyen arányban vannak jelen a jellemző szavak.
Következmény: egységhosszú vektorokon a koszinusz-hasonlóság egyszerű skalárszorzat.
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Vektorok közötti hasonlóság
28 / 32
10
Koszinusz-hasonlóság: a szög, nem a hossz
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Két dokumentum akkor hasonló, ha a vektoruk ugyanabba az irányba mutat – a hosszuk nem érdekel minket.
jumper
drive
θ = 18°
q – lekérdezés
d1 · θ = 18° → cos = 0,95
d2 · θ = 50° → cos = 0,64
sematikus 2D metszet (a valódi tér 3664 dimenziós) · a nyíl iránya a szóösszetétel, a hossza a dokumentum hossza · a szaggatott ív az egységkör
A képlet
cos θ = (a · b) / (|a| · |b|)
a · b = Σ a_i · b_i
Egységhosszú vektorokon a koszinusz maga a skalárszorzat.
Mit jelentenek a számok? – a mi korpuszunkon
1,00 = azonos irány · 0° — a d093 és a d110 szó szerint ugyanaz a bejegyzés
0,00 = merőleges · 90° — egyetlen közös kifejezés sincs
0,009 = a tipikus dokumentumpár TF–IDF-koszinusza (≈ 89,5°): a tér szinte üres, majdnem minden merőleges mindenre
Egységhosszú TF–IDF-vektorok: mi változott?
A normalizálás után minden dokumentum hossza 1. Így már az irányt hasonlítjuk össze, nem azt, ki írt hosszabbat.
Emlékeztető példa
d1: „kutya kutya macska hörcsög”
d2: „kutya egér”
d3: „macska egér”
A koordináták sorrendje
[kutya, macska, hörcsög, egér]
Minden sor hossza:
|d1| = |d2| = |d3| = 1
dokumentum
kutya
macska
hörcsög
egér
hossz
d1
0,771
0,386
0,507
0,000
1,000
d2
0,707
0,000
0,000
0,707
1,000
d3
0,000
0,707
0,000
0,707
1,000
Most már a koszinusz egyszerűen: két sor megfelelő számait összeszorozzuk, majd összeadjuk.
10a
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Koszinusz kézzel: d1-hez melyik áll közelebb?
Egységhosszú vektorokon a koszinusz = skalárszorzat. Ezért nincs már külön osztás a hosszokkal.
Lekérdezésként vegyük d1-et.
Melyik dokumentum hasonlóbb hozzá?
cos(d1,d2)
= 0,771·0,707 + 0,386·0 + 0,507·0 + 0·0,707
= 0,545 ≈ 0,55
cos(d1,d3)
= 0,771·0 + 0,386·0,707 + 0,507·0 + 0·0,707
= 0,273 ≈ 0,27
Rangsor d1-hez
hely
jelölt
koszinusz
miért?
1.
d2
0,55
erős közös: kutya
2.
d3
0,27
gyengébb közös: macska
Fontos: a „hörcsög” d1-ben erős jel, de ha a másik dokumentumban nincs benne, akkor a skalárszorzathoz 0-val járul hozzá.
10b
2. fejezet · Szövegbányászat és szemantikus reprezentációk
11
Ugyanaz a jelentés, más szavak: az első fal
2. fejezet · Szövegbányászat és szemantikus reprezentációk
LEKÉRDEZÉS
„A gép indulás után pár másodperc múlva magától újraindul.”
1. jelölt
„Bootoláskor a rendszer nem jut el a bejelentkezésig, hanem visszaesik a POST-ra.”
közös szó: szinte nincs · ugyanaz a probléma: igen
2. jelölt
„Az indulás után szeretném, ha a gép magától lefuttatna egy másodpercekig tartó tesztet.”
közös szó: sok · ugyanaz a probléma: nem
TF–IDF rangsor: ?
Fogadás: melyiket rangsorolja előbbre a TF–IDF? És melyik kellene a moderátornak?
STOP — most te dolgozol
1. fejezet · Szövegbányászat és szemantikus reprezentációk
20 / 32
Nyisd meg a CooSpace-en a 2. fejezet tananyagát, és dolgozd át.
⏱ 20 perc — utána itt folytatjuk közösen.
A beépített ellenőrző kérdések kötelezőek — ne lapozd át őket.
Ha hamarabb végzel: várd meg a többieket, vagy belekezdhetsz a feladat-notebook elejébe.
Ha elakadtál: jelezz — odamegyek.
Embedding
28 / 32
12
Mondatembedding: tanult szemantikai tér
2. fejezet · Szövegbányászat és szemantikus reprezentációk
TF–IDF
a dimenziók = szavak · ritka
3664 dimenzió
értelmezhető
Mondatembedding
a dimenziók = tanult jelentésbeli irányok · sűrű
384 dimenzió
nem értelmezhető egyenként
Egy előre tanított modell dokumentumonként egyetlen vektort ad. A hasonlóság ugyanaz a koszinusz – csak más térben.
Amit ígér
a hasonló jelentésű, más szavakkal megfogalmazott szövegek közelebb kerülhetnek
Amit NEM ígér
Kérdés: mikor lehet ez rosszabb, mint a TF–IDF?
13
Mit jelent, hogy „tanult” reprezentáció?
2. fejezet · Szövegbányászat és szemantikus reprezentációk
A TF–IDF-et mi írtuk fel. Az embeddinget egy modell tanulta – nézzük meg, mi történik egyetlen bejegyzéssel.
nyers szöveg
a bejegyzés törzse
wordpiece tokenek
szódarabokra bontás
transformer
6 réteg, kontextus
mean pooling
tokenek átlaga
384 szám
egységhosszúra normálva
Mit tanult meg a modell?
Nem szótárat és nem szabályokat. Az all-MiniLM-L6-v2 nagyságrendileg egymilliárd mondatpáron azt tanulta meg, hogy az összetartozó mondatok vektorai kis szöget zárjanak be egymással.
A 384 dimenzió egyikének sincs neve – nem lehet megmondani, hogy a 137. koordináta „mit jelent”.
Mit nyerünk és mit veszítünk?
TF–IDF: 3664 dimenzió, a mátrix 1,05%-a nem nulla – dokumentumonként átlag 38 kifejezés, és mindegyik megnevezhető.
A modell 256 wordpiece után elvágja a szöveget – a korpuszunkban ez 66 bejegyzést érint.
A vektorok egységhosszúak, ezért a hasonlóság itt is ugyanaz a koszinusz – csak a tér más. A kód ezért írhat egyszerű skalárszorzatot.
14
A találati lista nem eredmény: jelöltlista
2. fejezet · Szövegbányászat és szemantikus reprezentációk
Öt ok, amiért egy találat rossz okból került a lista élére:
# | jelenség | mit lát a rendszer? | mi a valóság? |
1. | önmagára találás | a lekérdezés a korpusz része | a legjobb találat saját maga |
2. | közel duplikátum | idézett vagy újraküldött szöveg | nem ad új segítséget |
3. | metaadat-szivárgás | fejléc, aláírás, idézet | nem a témát mértük |
4. | túláltalánosítás | „általában hasonló” | a döntéshez irreleváns |
5. | címke ≠ relevancia | azonos kategória | nem ugyanarra a kérdésre válaszol |
Ezért: „a Top 5-ből hány volt tényleg hasznos?” – ez a mérték a döntési céltól függ. (A szakirodalomban: Precision@K.)
És a legfontosabb: a hasonlóság nem igazság. A szemantikailag közeli válasz lehet téves, elavult vagy káros.
Precision@K: a találati lista döntési értékelése
A hasonlóság rangsort ad. A Precision@K azt kérdezi: a Top K találatból hány volt tényleg hasznos?
Képlet
Precision@K = releváns találatok száma a Top K-ban / K
A döntési cél most legyen: „kutyás” bejegyzések ajánlása.
Az ember jelöli meg, hogy a találat tényleg releváns-e.
hely
jelölt
koszinusz
emberi ítélet
1.
d2
0,55
releváns ✓
2.
d3
0,27
nem releváns ✕
P@1 = 1 / 1 = 1,00
P@2 = 1 / 2 = 0,50
Ugyanez Top 5-nél
✓ ✕ ✓ ✕ ✓
P@5 = 3 / 5 = 0,60
Tanulság: a Precision@K nem azt méri, hogy a modell „igazat mondott”, hanem azt, hogy a rangsor eleje mennyire használható az adott emberi döntéshez.
2. fejezet · Szövegbányászat és szemantikus reprezentációk
14a