5. Automatikus korpuszépítés és a benne való keresés Endrédy István
A nyelvtechnológia eszközei és nyersanyagai 2016.03.09.
The big picture
Nyelvtechnológia Hatékonyabb megoldáshoz: • több ismeret a nyelvről • több ismeret a világról
Automatikus korpuszépítés és a benne való keresés
• Korpuszok és építésük • Szógyakoriság • Mondatszerkezetek
Automatikus korpuszépítés és a benne való keresés
• Korpuszok és építésük • Szógyakoriság • Mondatszerkezetek
Korpusz • Korpusz-alapú módszerek: a szövegkorpusz segédeszköz, ami empirikus adataival támogatja az intuíciót, mérhetővé teszi a nyelvi jelenségeket, meglévő elméleteket bizonyít/cáfol • Korpuszvezérelt módszerek: a korpusz maga szolgáltatja az „elméletet”, a nyelvész minden előzetes feltevés és elvárás nélkül fordul az adatokhoz, és minden következtetést kizárólag a korpusz megfigyeléseiből von le • Serendipity Principle: jelentős dolog véletlen felfedezése, tipikusan akkor, amikor valami egész másra figyelünk
A korpuszannotáció szintjei • • • • • • •
Egyszerű szöveg Szófaji egyértelműsítés Névkifejezések kezelése Szintaktikai szerkezetek bejelölése Jelentés-egyértelműsítés Koreferencia-kezelés Egyéb
A korpusz méretének mérőszámai • Hány „token” van benne? = Mekkora a korpusz? • Mi egy token? • $22.50 • George W. Bush / George Bush / Bush
• Korpusznormalizálás • The / the / THE • Calif. / California • MTA / Magyar Tudományos Akadémia
• Hány „type” van benne? = Hány különböző szó van benne?
A korpusz mérete • Biblia (625.000 token) • egy 18milliárd tokenes korpusz • elolvasása 85 év lenne • kinyomtatva 900m vastag lenne
• gépi feldolgozás szükséges
Korpusz - miért?
• A nyelvtechnológia sok területén szükségesek a nagy korpuszok • Minél nagyobb, annál jobb • A nagy korpusz drága Cél: készítsünk korpuszt automatizáltan
Két nagy magyar szövegkorpusz BME MOKK 600 millió szó 2003-ban készült http://mokk.bme.hu/resources/webcorpus
Magyar Nemzeti Szövegtár 190 millió szó Válogatott tartalom POS-taggelt http://corpus.nytud.hu/mnsz
Ötlet 1. A magyar web szövegeinek letöltése 2. A leggyakoribb szavak, szósorozatok elemzése (n-gramok) 3. Hogyan változnak időben?
Hogyan?
• Crawler, amelyik folyamatosan járja a webet: szövegkinyerőt tartalmaz, amelyik az értékes részt kinyeri a HTML-ből
• A gyakori szósorozatok azonosítása
Egy crawler sémája
A fő tartalom kinyerése
Piros rész: boilerplate
Ugyanez HTML-ben
Boilerplate-eltávolító algoritmusok •BTE (Body Text Extraction) •Alapötlet: a boilerplate több címkét tartalmaz •Megtalálja azt a leghosszabb részt, ahol a legkevesebb címke van •Nem tud táblázatokból szöveget kinyerni •Sok hiba a magyar oldalakon
•Statisztikai módszer • Ha egy szöveg több oldalon szerepel: akkor az boilerplate • Ha egy banner mindig más reklámot ad: része lesz a fő tartalomnak (pl. Bookline az index.hu-n)
Mit csinálnak a többiek? A JusText algoritmus • Jan Pomikalek készítette (Masaryk University Faculty of Informatics, Brno, 2011) • Ezek arányaiból dönt: • Szöveg/címkék • Stopword • Linkek • Szöveg hossza
• Python • Nagyon jó eredmények és minőség
Egy probléma
Az „Aranyásó” algoritmus • A lapok sok ismétlődést tartalmaznak • Egy domain megtanulása: 1. Pár száz oldalt letöltünk 2. A több oldalon ismétlődő bekezdéseket megkeressük 3. Az egyedi bekezdések előtti, ill. mögötti azon HTML-minta a nyerő, amely a legtöbb lapon közös 4. Ezt a mintát megjegyezzük, és az összes lapra alkalmazzuk
Crawler-eredmények
Pázmány Korpusz • sokféle tartalom több, mint 40.000 domainről (1,5 milliárd token) • url-, bekezdés- és mondat szinten duplikátummentes • tokenizálás (Huntoken) • szófajilag elemzett (Humor + PurePos) • NP-annotáció (Huntag3) • új, pontosabb annotáció: a „Noémi-kód”
Pázmány korpusz • Szétválogatás: • Cikkek ↔ kommentek • hozzászólás minták keresése („Hozzászólások 123”, „nickname 2014.02.02.”, stb.) • Smiley-sűrűség
• Összefüggő szöveg ↔ felsorolások • Átlagos bekezdés szószáma > 15 és stopwordsűrűség
• Közös kódolás (utf-8)
Pázmány korpusz
alkorpusz fő korpusz
egyéb tartalmak kommentek összesen
tokenszám 903 438 361 237 957 892 58 995 776
1 200 392 029
Automatikus korpuszépítés és a benne való keresés
• Korpuszok és építésük • Szógyakoriság • Mondatszerkezetek
Szósorozatok valódi gyakoriságának számolása • Egyetlen szó – könnyű eset • Szósorozatok – számos probléma A gyakori rövid minta (hibásan) gyakorinak mutathatja a körülötte lévő hosszúakat: előfordulás szósorozatok
Előfordulás a szövegben
Önálló előfordulás
„túl az Óperencián”
200
200
„túl az”
300
300-200=100
„túl”
1000
1000-500=500
Szósorozatok valódi gyakoriságának számolása • Beágyazott minták • Sebesség- és memóriakorlátok 13 GB méretű szöveggel
• Alkalmazása: Ha az input egy cikk, valószínűleg a fő szereplőjét vagy témáját adja
Ha az input egy korpusz, a tipikus szókapcsolatokat adja Ha az input egy POS-taggelt korpusz, a leggyakoribb struktúráit adhatja az adott nyelvnek
Tervek • Az egész magyar web letöltése (tárhely ) • 2., 3., sokadik futtatás: csak a különbség tárolása • Trendek megfigyelése a web tartalmában
Példák lexikai információra egy kis korpuszból Minta: [főnév] [főnév] [mn] [főnév] Matolcsy György nemzetgazdasági miniszter Barack Obama amerikai elnök (664) Sólyom László köztársasági elnök (367) Angela Merkel német kancellár (345) Nicolas Sarkozy francia elnök (256) Schmitt Pál köztársasági elnök (229) Vlagyimir Putyin orosz elnök (186)
Minta: [névelő] [főnév] [ige] A A A A
szóvivő elmondta (660) szakember elmondta (480) miniszter közölte (320) bíróság megállapította (29)
(694)
Minta: [főnév] [főnév] Orbán Viktor (8181) New York (4085) Wall Street (1358) Harry Potter (691) Johnny Depp (645) Angelina Jolie (627) Puskás Ferenc (380)
Automatikus korpuszépítés és a benne való keresés
• Korpuszok és építésük • Szógyakoriság • Mondatszerkezetek
Főnévi csoport felismerése
Maximal NP Peter’s brown dog is barking.
Minimal NP
Főnévi csoport felismerése Sequential tagging: címkéket rendelünk a szavakhoz Szó
címke
Peter
B-NP
‘s
B-NP
brown
I-NP
dog
I-NP
is
B-VP
barking
I-VP
.
O
Címkék: B - begin I - inside E - end S - single
Főnévi csoport felismerése CoNLL-2000 format word
POS
label
Peter
NN
B-NP
‘s
POS
B-NP
brown
JJ
I-NP
dog
NN
I-NP
is
VBZ
B-VP
barkin g
VBG
I-VP
.
.
O
A chunkerek ugyanazon tanító- és tesztadaton összehasonlíthatóak Fejlesztés: •szoftver •adat
Főnévi csoport felismerése CoNLL-2000 format bármely jegy… címke
szó
POS
Peter
NN
B-NP
‘s
POS
B-NP
brown
JJ
I-NP
dog
NN
I-NP
is
VBZ
B-VP
barkin g
VBG
I-VP
.
.
O
Tipikus jegy (=feature) hangolások: •Új jegy hozzáadása pozíció, speciális eset, stb •Címke módosítása B-NP → peter-NN-B-NP •Szófaj módosítása trial-and-error kiértékelés: a fentiek tanítása és tesztelése egy chunkeren
Javaslatok új jegyekre noun prep num noun verb
一个人和一只狗跑步 human
animal quantity
(A man runs with a dog.)
motion,run
WordNet - synsetek word
pos
synsets
IOB labels
Mr.
NNP
title.n.06/mister.n.01/name.n.01/…
B-NP
Terra
NNP
-
I-NP
said
VBD
indicate.v.03/tell.v.02/express.v.02/ …
he
PRP
he.n.02/helium.n.01/…
sold
VBD
interact.v.01/deal.v.06/sell.v.07/…
O
First
NNP
rank.n.02/state.n.02/status.n.01/…
B-NP
Illinois
NNP
language.n.01/indian.n.01/…
I-NP
…
O B-NP
WordNet - új jegyek definiálásához WordNet synset
gyakoriság
hozzárendelt címke
arány
mister.n.01
785
B:767 / I:18
B:98% / I:2%
nation.n.03
63
I:63
I:100%
number.n.11
90
B:1 / I:89
B:1% / I:98%
day.n.10
186
B:7 / I:179
B:4% / I:96%
country.n.04
67
B:1 / I:66
B:1% / I:99%
A magas arányú synsetek új jegyként használhatóak az NP felismerésnél
WordNet - a javaslatok áttekintése
Eredmények F-score with original tags
F-score with modified tags by toolkit
NLTK - unigram chunker
83.20%
83.80%
NLTK - bigram chunker
84.50%
86.10%
HunTag3
92.68%
92.74%
voting system between more chunkers (Shen and Sarkar, 2005)
92.74%
94.12%
voting system between more chunkers + HunTag3
93.13%
94.59%
method
Eredmények voting format
with original POS
modified POS by the toolkit
IOB1
92.01%
93.57%
IOB2
90.71%
92.04%
IOE1
90.64%
92.18%
IOE2
88.67%
89.96%
O+C
90.52%
91.71%
after voting
92.74%
94.12%
after voting, HunTag3 added
93.13%
94.59%
A mondatok feldolgozása Főnévi csoportok felismerése és kiemelése „Egyedi elbírálást kér a kormánytól a károk enyhítésénél az árvízsújtotta Felsőzsolca önkormányzata.”
„(Egyedi elbírálást) kér (a kormánytól) (a károk enyhítésénél) (az árvízsújtotta Felsőzsolca önkormányzata).” „NP-t kér NP-től NP-nél NP.”
A mondat – NP-k nélkül • A főnévicsoport-kereső és a mondatváz-kereső rendszer demonstrációja • Játék (másféle) hiányos mondatokkal
Egy probléma – #1 eset „Aláírják a finanszírozási szerződést a Budapesti Közlekedési Központ igazgatósága és a Fővárosi Közgyűlés jóváhagyásával.” „Aláírják (a finanszírozási szerződést) (a Budapesti Közlekedési Központ igazgatósága) és (a Fővárosi Közgyűlés jóváhagyásával).” „Aláírják NP-t NP és NP-vel.” „Aláírják NP-t NP-vel.”
Egy probléma – #2 eset „Ráütöttem a pecsétet és az oklevelet átadtam.” „Ráütöttem (a pecsétet) és (az oklevelet) átadtam.”
„Ráütöttem NP-t és NP-t átadtam.”
Hogyan lehetne megkülönböztetni Szemantikus információ kinyerése a korpuszból „NP1 és NP2” „NP1 valamint NP2” „NP1 blabla1, NP2 pedig blabla2” => Ezen NP fejei azonos domainben vannak
Eredmények 75M text => 5,500 pár Kis világismeret NP felismeréshez
IMF fagylalt bér munka délután növekedés ...
EU jégkrém nyugdíj kenyér reggel foglalkoztatás
NP chunking • Szabályalapú • reguláris kifejezésekkel • 81% (magyar nyelvre)
• Statisztikai • HunTag • 90%
HunTag: fejlesztési ötletek • • • • • •
Más címkékkel (MSD, Humor, Noémi-kód) WordNet-tulajdonságokkal MMO-címkékkel Hibrid (szabályalapú + statisztikai) Tiltó szabályokkal HunTag újraírása, más matematikai modellek
Cikkek • A Hungarian NP-chunker Gábor Recski, Dániel Varga http://eprints.sztaki.hu/7155/1/OYB8-4-Recski_Varga.pdf
• Szófaji kódok és névelemek együttes osztályozása Móra György, Vincze Veronika, Zsibrita János http://www.inf.uszeged.hu/projectdirs/mszny2011/images/stories/kepek/mszny2011_press_ nc_b5.pdf (139. oldaltól)
• More Effective Boilerplate Removal-the GoldMiner Alg. István Endrédy, Attila Novák http://polibits.gelbukh.com/2013_48/More%20Effective%20Boilerpla te%20Removal%20-%20the%20GoldMiner%20Algorithm.pdf
• Motivációs videó https://www.youtube.com/watch?v=nfoudtpBV68