Pokročilé metody rozpoznávání řeči Přednáška 8 Rozpoznávání s velkými slovníky, pravděpodobnostní jazykový model
Rozpoznávání s velkým slovníkem (1) Úlohy zaměřené na diktování či přepis řeči vyžadují velké slovníky Kolik slov je třeba? Angličtina versus čeština
(AJ 50 tis. slov, ČJ > 1 milion)
Angličtina driver, drivers, driver’s
Čeština řidič, řidiče, řidiči, řidičem, …. řidička, řidičův, řidiččin, řidičský,
important
důležitý, důležitého, důležitá, … důležitější, nejdůležitější, ….
build, builds, built, building stavit, stavím, stavíš, stavili, stavily, stav,stavící, vystavit, postavit, zastavit, nestavit
Rozpoznávání s velkým slovníkem (2) Jak vytvořit vhodný slovník s přijatelnou velikostí? 1.
Získat co nejvíce textů z dané oblasti - všeobecný slovník: směs textů novinových, odborných, beletrie … - odborný slovník: texty pouze z dané oblasti
2.
Texty je třeba vyčistit a znormalizovat - odstranit netextové položky (obrázky, znakovou grafiku, formátovací symboly, atd.) - identifikovat a odstranit překlepy (např. pomocí spell-checkeru, není jednoduché) - rozvinout číslovky psané číslicí (nejednoznačná úloha) a podobně též zkratky (které se nevyslovují jako zkratky, např. „tzv.“, „km/hod“)
3.
Identifikovat slova, která mají různé ortografické podoby (např. „milion“ a „milión“, nebo „Al Kajda“ a „Al Kajdá“) a sjednotit je do jediné vybrané podoby
Rozpoznávání s velkým slovníkem (3) Jak vytvořit vhodný slovník s přijatelnou velikostí? (pokračování) 3. 4.
Sestavit seznam všech slov vyskytujících se v daných textech a seřadit jej podle četnosti Do slovníku vybrat prvních N slov podle četnosti - N se volí podle možností rozpoznávacího systému nebo na základě požadovaného pokrytí (coverage rate) Coverage [%]
100 Spoken data
98
Text data
96 94 92 90 100
200
300
400
500
600
700
800
Lexicon size (thousand w ords)
Poznámka: Slova mimo slovník (OOV – Out-of-Vocabulary) nebudou nikdy rozpoznána OOV rate = 100 – Coverage rate [%]
Rozpoznávání s velkým slovníkem (4) Vliv velikosti slovníku na OOV, ACC (přepis zpráv, 2005)
Slovník
Počet slov
Min. frekvence Accuracy [%]
OOV [%]
64K
64620
300
70,96
5,17
102K
102228
140
73,75
3,31
149K
148928
70
75,62
1,94
195K
194942
40
76,64
1,34
257K
257056
20
77,27
0,97
312K
312289
10
78,13
0,75
Rozpoznávání s velkým slovníkem (5) Jak vytvořit vhodný slovník s přijatelnou velikostí? (pokračování) Ke každému slovu dodat výslovnost U některých slov přidat výslovnostní varianty (např. „6 – šest, šezd, šes“, „USA – úesá, júesej“) Pro další (např. sémantické) zpracování může slovník obsahovat další přídavné informace:
6. 7. 8.
Standardní ortografie
Alternativní ortografie
Výslovnostní varianty
Morfologická třída
Základní tvar
milionů
miliónů
milijonú, milijónú
Num2P Num4P
milion
téze
these, teze
téze, teze
NounMasc1P
téze
s, z, sE, zE
Prep4, Prep7
s
s
Jazykový model (language model – LM) Pevná gramatika je použitelná pouze u velmi omezených úloh (povely, zadávání čísel, telefonní volba, apod.) Pokud uživatel nedodrží gramatiku, systém buď udělá chybu (S, D nebo I) nebo vůbec nedokončí rozpoznávání (nenajde přijatelnou cestu do konce promluvy). Běžná řeč se neřídí pevnými pravidly. Možná je prakticky každá kombinace slov, liší se však svou pravděpodobností.
Pravděpodobnostní jazykový model (1) Je založený na pravděpodobnostech slovních kombinací. Nejčastěji používaný: N-gramový model - je reprezentovaný pravděpodobnostmi N slov za sebou
- bigram p( wn | wn −1 ) =
C ( wn −1 , wn ) C ( wn −1 )
- trigram p( wn | wn−1wn− 2 ) = C ( wn− 2 , wn−1 , wn ) C ( wn − 2 , wn −1 )
Pravděpodobnost sekvence n slov vypočítaná z bigramů:
P ( w1 , w2 , w3 ,.....wn ) = p ( w1 | start ). p ( w2 | w1 ). p ( w3 | w2 ).... p ( wn | wn −1 )
Pravděpodobnostní jazykový model (2) Trénování jazykového modelu – bigramu: 1. Nutný je co největší korpus textů (všeobecných nebo odborných) 2. Text je třeba předem vyčistit a normalizovat. 3. Pro výpočet bigramů je třeba si v paměti alokovat prostor pro matici četností a všechny prvky vynulovat. 4. Program prochází text slovo po slovu a za každou nalezenou dvojici slov ze slovníku přičte do příslušného prvku 1. 5. Na závěr se určí bigramové pravděpodobnosti, a to vydělením součtem četností v řádku (pro stejného předchůdce). (Součet pravděpodobností na řádku musí být roven 1). 6. Zbývá vyřešit otázku, co s nulovými pravděpodnostmi. Pravděpodobnosti bigramů ve větě se násobí, takže jediná nula způsobí, že taková věta nemůže být nikdy správně rozpoznána. – řeší se tzv. vyhlazením.
Proces odhadu hodnot bigram. LM 1.
Slovní páry a jejich četnosti odvozené z korpusu
from
he
I
often
Paris
from
to
travel
travels
we
you
3
he
2
I
2
often
2
1
Paris
2
1
2
2 2
1
4
2
1
travels
3
1
we
1
you
1
Zurich
2
START
1
1
2
3 4
travel
5
1
2 1
to
Zurich
3
1 1
1
2
3
2
3
2
1 3
1
4
2
1 1
3
2
1
3
2
1
1
1
1
2
3
1
1
3
1
1 1
3
3
2
Proces odhadu hodnot bigram. LM 1. 2.
Slovní páry a jejich četnosti odvozené z korpusu Vypočteny relativní četnosti
from
he
I
often
Paris
to
travel
travels
we
you
Zurich
from
0
0
0
0
0,3
0
0
0
0
0,2
0,5
he
0
0
0
0,4
0
0
0
0,4
0
0,2
0
I
0
0
0
0,5
0
0
0,5
0
0
0
0
often
0,091
0,05
0,091
0
0,045
0,182
0,091
0,1364
0,045
0,091
0,182
Paris
0,222
0,11
0
0,111
0
0,333
0
0
0,111
0
0,111
0
0
0
0
0,4
0
0,1
0
0
0,3
0,2
0,182
0,09
0,091
0,182
0
0,273
0
0
0,091
0,091
0
0,3
0,1
0
0,2
0
0,3
0
0
0
0,1
0
we
0,143
0
0
0,429
0
0
0,286
0
0
0,143
0
you
0,143
0
0,143
0,429
0
0
0,286
0
0
0
0
0,2
0,1
0,1
0,1
0,1
0,3
0
0
0,1
0
0
0,059
0,12
0,176
0,059
0,059
0
0,059
0
0,176
0,176
0,118
to travel travels
Zurich START
Proces odhadu hodnot bigram. LM 1. 2. 3.
Slovní páry a jejich četnosti odvozené z korpusu Vypočteny pravděpodbnosti (jako relativní četnosti) Provedeno vyhlazení – nulové četnosti nahrazeny malými hodnotami from
from
he
I
often
Paris
to
travel
travels
we
you
Zurich
0,033
0,03
0,033
0,033
0,233
0,033
0,033
0,0333
0,033
0,167
0,367
0,05
0,05
0,05
0,25
0,05
0,05
0,05
0,25
0,05
0,15
0,05
I
0,056
0,06
0,056
0,278
0,056
0,056
0,278
0,0556
0,056
0,056
0,056
often
0,093
0,06
0,093
0,019
0,056
0,167
0,093
0,1296
0,056
0,093
0,167
Paris
0,179
0,11
0,036
0,107
0,036
0,25
0,036
0,0357
0,107
0,036
0,107
to
0,033
0,03
0,033
0,033
0,3
0,033
0,1
0,0333
0,033
0,233
0,167
travel
0,156
0,09
0,094
0,156
0,031
0,219
0,031
0,0313
0,094
0,094
0,031
travels
0,233
0,1
0,033
0,167
0,033
0,233
0,033
0,0333
0,033
0,1
0,033
we
0,125
0,04
0,042
0,292
0,042
0,042
0,208
0,0417
0,042
0,125
0,042
you
0,125
0,04
0,125
0,292
0,042
0,042
0,208
0,0417
0,042
0,042
0,042
Zurich
0,167
0,1
0,1
0,1
0,1
0,233
0,033
0,0333
0,1
0,033
0,033
START
0,068
0,11
0,159
0,068
0,068
0,023
0,068
0,0227
0,159
0,159
0,114
he
Metody vyhlazování LM (1) Řeší otázku co s nulovými pravděpodobnostmi (neviděnými dvojicemi) Metoda ADD1 – ke každému prvku matice se přičte 1 p +1 ( wn | wn −1 ) =
C ( wn −1 , wn ) + 1 C ( wn −1 ) + V
metoda jednoduchá, ale nadhodnocuje neviděná slovní spojení
Metody vyhlazování LM (2) Metoda Witten-Bell – v praxi často používaná nulové pravděpodobnosti nahrazuje malým číslem, jehož velikost souvisí s tím, kolik má předchůdce různých následovníků
Příklad: slovo „poťemkinovský“ se vyskytuje s několika málo následníky, proto neviděné bigramy dostanou mnohem nižší hodnotu než neviděné bigramy např. u slova „dobrý“
Nástroje v HTK HTK podporuje práci s bigramy a trigramy Nástroje: - HLM - HLSTATS Popis: - HTKBook, kapitoly 14 a 15