33.4.2. Stilometriai elemzés

2025.10.06.
AI Biztonság Blog

Mindenkinek van egyedi kézírása, egy jellegzetes hanglejtése. De mi a helyzet a digitális írásképpel? A stilometria, vagyis a stílus mérése, pontosan ezt a kérdést járja körül. Nem a tartalomra, hanem a forma apró, gyakran tudattalan mintázataira fókuszál. Egy MI-generált szöveg, bármennyire is koherens, gyakran elárulja magát a statisztikai egyenletességével – hiányzik belőle az emberi írásra jellemző természetes „zaj” és következetlenség.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Ez a technika a Red Teamer kezében egyfajta digitális grafológia, amellyel megkülönböztethetjük a gépies precizitást az emberi kreativitás szeszélyeitől. Nem arról van szó, hogy egy szöveg „jól hangzik-e”, hanem arról, hogy a mögötte lévő számszerűsíthető adatok milyen eloszlást mutatnak.

A stílus mint ujjlenyomat: Mérhető jellemzők

A stilometriai elemzés során a szöveget diszkrét, mérhető egységekre bontjuk. A leggyakoribb jellemzőcsoportok a következők:

  • Lexikai jellemzők: A szókincs gazdagságára és használatára vonatkoznak. Ide tartozik a szavak átlagos hossza, az egyedi szavak aránya (Type-Token Ratio, TTR), vagy a leggyakoribb szavak listája. Az embereknek gyakran vannak kedvenc, ismétlődő szavaik, míg egy alap LLM hajlamos a szinonimák túlzott használatára a változatosság látszatáért.
  • Szintaktikai jellemzők: A mondatszerkezet mintázatait vizsgálják. Milyen hosszúak átlagosan a mondatok? Mennyire szóródnak a mondathosszak? Gyakoriak-e a komplex, alárendelt mondatok, vagy inkább az egyszerű, tőmondatok dominálnak? A központozás (vesszők, pontosvesszők, gondolatjelek használata) szintén erős egyéni jelző lehet.
  • Karakter-szintű jellemzők: A szöveg legalacsonyabb szintű építőkövei. Bizonyos karakterkombinációk (n-gramok) gyakorisága, vagy akár az írásjelek és szóközök aránya is hordozhat információt.

Esettanulmány: A belső szivárogtató azonosítása

Képzelj el egy helyzetet: egy cégnél belső, bizalmas információkat tartalmazó, de anonim kommentek jelennek meg egy iparági fórumon. A gyanú egy adott, technikailag képzett, de elégedetlen alkalmazottra terelődik. A feladatod Red Teamerként, hogy eldöntsd: a kommenteket valóban ő írta, vagy egy kifinomult MI modell, amely a cég belső zsargonját használja?

Szerencsére rendelkezel egy nagy mennyiségű, igazoltan az alkalmazott által írt szöveggel (e-mailek, belső dokumentációk). Ebből létrehozol egy „emberi” referencia profilt. Ezután elemzed a gyanús kommenteket. Az eredményeket az alábbi táblázat foglalja össze:

Stilometriai Metrika Alkalmazott (ismert emberi minta) Gyanús kommentek (elemzett minta)
Átlagos mondathossz 18.4 szó 19.1 szó
Mondathossz szórása 8.2 szó (magas variancia) 2.5 szó (alacsony variancia)
Type-Token Arány (TTR) 0.48 (változatos szókincs) 0.65 (túlzottan változatos, „mesterséges”)
Pontosvessző használata (/1000 szó) 1.7 0.1
„Azonban” kötőszó gyakorisága 0.3% 1.2% (feltűnően magas)

A következtetés: Bár az átlagos mondathossz megtévesztően hasonló, a többi metrika egyértelműen egy MI-re utal. A mondathosszak szórásának hiánya egyenletes, „gépies” stílust jelez. A kiugróan magas TTR és a specifikus kötőszavak túlzott használata szintén klasszikus LLM-jellemzők, amelyek a szöveg természetellenes optimalizálására utalnak. Az emberi írásminta sokkal „zajosabb”, inkonzisztensebb, ami itt a gyanúsított mellett szól.

A gyakorlati megvalósítás alapjai

A stilometriai elemzéshez nincs szükség bonyolult eszközökre, az alapelvek egyszerű szkriptekkel is megvalósíthatók. Lássunk egy pszeudokód példát a Type-Token Arány (TTR) kiszámítására, ami a szókincs gazdagságát méri.


# Pszeudokód a Típus-Token Arány (TTR) kiszámítására

függvény szamold_ttr(szoveg):
 # 1. Tisztítás: írásjelek eltávolítása és kisbetűsítés
 tiszta_szoveg = szoveg.lower().replace([".", ",", "!", "?"], "")

 # 2. Tokenizálás: a szöveg szavakra bontása
 tokenek = tiszta_szoveg.split(" ")

 # 3. Egyedi szavak (típusok) megszámlálása
 egyedi_tokenek = set(tokenek)
 tipusok_szama = len(egyedi_tokenek)

 # 4. Összes szó (token) megszámlálása
 tokenek_szama = len(tokenek)
 
 # 5. Arány kiszámítása
 if tokenek_szama == 0:
 return 0
 else:
 ttr_ertek = tipusok_szama / tokenek_szama
 return ttr_ertek

# Példa használat
emberi_szoveg = "A kutya, a macska és a másik kutya játszottak."
mi_szoveg = "Egy eb és egy cica interakcióba lépett."

print("Emberi TTR:", szamold_ttr(emberi_szoveg)) # Alacsonyabb lesz az ismétlődés miatt
print("MI TTR:", szamold_ttr(mi_szoveg)) # Magasabb lesz, mert minden szó egyedi
 

Korlátok és a támadói perspektíva

A stilometria nem csodaszer. Egy Red Teamernek tisztában kell lennie a korlátaival is:

  • Rövid szövegek: A módszer statisztikai jellegű, így rövid szövegeken (pl. egy-két mondat) nem ad megbízható eredményt. Szignifikáns mennyiségű adatra van szükség.
  • Stílusutánzás (Style Transfer): A fejlett MI modellek képesek egy adott szerző stílusát utánozni. Egy „írj ezt a szöveget X.Y. stílusában” prompt komolyan megnehezítheti az elemzést, mivel a modell megpróbálja reprodukálni a célpont stilometriai ujjlenyomatát.
  • Kevert források: Mi van, ha egy ember által írt szöveget egy MI szerkeszt át és bővít ki? Az eredmény egy hibrid stílus lesz, amelynek azonosítása rendkívül nehéz.

Éppen ezért a stilometriai elemzés ritkán áll meg önmagában. Sokkal hatékonyabb, ha más technikákkal, például a következő fejezetben tárgyalt szemantikai inkonzisztenciák vizsgálatával kombináljuk. Az eredmény nem egy bináris „ember/gép” ítélet, hanem egy valószínűségi mutató, egy újabb adatpont a szélesebb körű vizsgálatban.