Martina Trnková: Analýza nestrukturovaných dat
Analýza nestrukturovaných dat za
účelem najití zajímavého patternu
Cílem práce je analýza dat z jazykového
korpusu. Jako dataset je použit Santa
Barbara Corpus of Spoken American English. Korpus obsahuje cca 250.000 slov ve
formě přepisu nahrávek převážně rozhovorů (ale také telefonních hovorů,
pracovních meetingů, vyučovacích hodin atd.). Tyto rozhovory jsou náhodně
vybrané napříč různými sociálními vrstvami v celé USA. V korpusu jsou tedy
zastoupeny široké vzorky respondentů různých ras, náboženství, věku,
zaměstnání, vzdělání a etnicko-sociálního prostředí.
Dataset byl tedy vybrán zejména pro jeho
rozmanitost a široký záběr, díky jemuž ho považuji za vypovídající vzorek
současné mluvené americké angličtiny, vhodný k textové analýze.
Účelem práce je najití zajímavého patternu, který
by mohl sloužit k efektivnímu rozšíření slovní zásoby anglického jazyka.
Na základě frekvenční analýzy budou extrahována
nejvíce a nejméně používaná slovesa a
podstatná jména, jež budou sloužit dvěma odlišným skupinám studentů.
Nejvíce
používaná slovesa a podstatná jména
Cílovou skupinou je student anglického jazyka
dosahující úrovně A1-A2 (dle SERR). S ohledem na jeho omezené lexikální
znalosti bude výsledný výstup frekvenční analýzy spárován s českým překladem
ze slovníku Glosbe.
Nejméně
používaná slovesa a podstatná jména
V tomto případě by mohl být výstup využit pokročilými
studenty úrovně B2 a výše. Předpokládáme, že student ovládá základní slovní
zásobu a hledá možnosti jak si ji rozšířit. V tomto případě jsme
z důvodů větší přesnosti spárovali výsledek frekvenční analýzy
s výkladovým slovníkem.
Výsledkem práce bude 400 slov (rozdělených do
skupin po 100) pro každou výše popsanou skupinu. Tato slova budou publikována
k volnému šíření na webu. Výstup bude publikován ve formě xls, tak aby jel
bylo možné bez dalších úprav nahrát do aplikace Quizlet (“Quizlet je interaktivní online vzdělávací platforma, která dovoluje
studentům a učitelům vytvářet, ukládat a studovat jakýkoliv obsah ve formě
dvoustranných kartiček a automaticky generovaných her”), bude tedy určen pro to publikum, které
k memorizaci lexika preferuje drilovací metodu.
Postup práce
Knihovny
- Knihovna Pattern
Velmi zajímavá knihovna
s řadou modulů pro data mining a textovou analýzu. Je dokonce
dostupný pro různé jazykové mutace. Na projektu byly použity moduly:
singularization, verb conjugation.
- Knihovna Pydictionary
Knihovna je mimo jiné
propojená s WordNetem a google překladačem, tyto moduly byly použity. Dále
je zde možnost využít funkce antonyma a synonyma, jejich užití se plánuje do
budoucna. Bohužel se nakonec google překladač ukázal jako nefungující, byly
jsme tedy nuceni tuto část nahradit slovníkem Glosbe.
- Knihovna Collections
Modul Counter použit pro
frekvenční analýzu.
- Knihovna Re (Regulární výrazy)
- Knihovna Glosbe
Použili jsme ho
jako slovník místo google překladače, který nefungoval.
- Knihovna OS
Na procházení seznamu souborů.
- Knihovna warnings
Použita kvůli bugu v PyDictionary,
ignorujeme díky ní warningy.
Popis kódu
Definice proměnných pro větší
přehlednost:
Parsování
a rozřazení slov do kategorií:
Zde jsme si omezili výstup ze slovníku vždy
na dvě možnosti. Dva české překlady a dvě definice ze slovníku tam, kde je to
možné. Počet slov je kvůli omezené možnosti callu slovníku omezen na 200
(nakonec jsme jich ale použily jen 100). Také jsme si definovali disc_words,
kam manuálně dopňujeme slova, která v seznamu nemají být, ale zatím jsme to
pomocí parsování nezajistili.
Pojmenování filů, které jsme vytvořili:
Definice datové struktury:
Určíme si, co bude jeden prvek obsahovat. Tedy například WordMost anglické slovo, české slovo a četnost (tu jsme nakonec nevyužili). Šablonu struktury později využijeme k vytvoření objektů prvků a uložíme do seznamu.
Main funkce:
Main funkce řídí tok programu, postupným voláním dále definovaných funkcí provádí překlad a frekvenční analýzu. Nejprve načte seznam souborů, potom obsah těchto souborů parsuje dle definovaných pravidel. Dále rozdělená slova roztřídí dle slovních druhů. Pro naše účely budeme dále pracovat jen se slovesy a podstatnými jmény. Ty převede do infinitivu a jednotného čísla. Výsledek ukládá do souboru.
Frekvenční analýza:
Překlad nejpoužívanějších slov do češtiny:
Přiřazujeme
k anglickému slovo jeho český překlad za pomoci slovínku Glosbe. Slova
bereme z definovaného seznamu dict_most. Kvůli omezeným možnostem callu
slovníku Glosbe se snažíme simulovat nestrojové chování pomocí odmlk
v zasílání požadavků. Nakonec
ale omezujeme množství callu na 100 pro každou kategorii.
Spojení nejméně používaných slov s výkladovým slovníkem:
Funguje podobně jako
předchozí funkce. Seznam slov bereme od konce, to si zajistíme indexem -1.
Spojíme slova s PyDictionary a vyžadujeme jeden překlad pro sloveso a
jeden pro podstatné jméno (je-li k dispozici).
Funkce pro
načtení souborů a parsování:
Dělíme zde slova do 3 listů. Seznam speakeru, ten pro nás nemá lexikální význam. Dále seznam discarded, kam zařadíme slova neodpovídající parsování a dalším požadavkům (nemají alespoň 2 písmena a tato 2 písmena jsou stejná) a konečně seznam words, ten který nás bude dále zajímat.
POS tagging,
singularizace a infinitivy:
Funkce nám zajišťuje
rozlišení různých slovních druhu a jejich následné třídění. Nás dále bude
zajímat jen seznam se slovesy a podstatnými jmény, která si dáme do jednotné
formy infinitivu a jednotného čísla.
Výsledná prezentace
Výsledek analýzy je
k dispozici na: http://drillit.webnode.cz k volnému použití. Zde najdeme odkaz na
Google drive, kde jsou seznamy slov uloženy po 100 vstupech. Takto je možné je
rovnou importovat na Quizlet. Z důvodů omezenosti možností práce
s Glosbe API, jsme museli původní cíl 400 slov z každé kategorie omezit
na 100. Při nejbližší příležitosti bychom chtěli tento problém vyřešit.
Metadata
Součástí korpusu jsou i
metadata. Ty nám poskytují základní údaje o respondentech, k jejich
zpracování jsme se ale z časových důvodů nedostali. Rádi bychom
s nimi do budoucna pracovali.
Budoucí plány:
- Přidat slovník na slangové výrazy.
- Prediktivní analýza, jak souvisí vzdělání či oblast s používaným slovníkem (k tomu využijeme metadata)?
- Různé jazykové mutace.
- Rozšíření slovníčku o antonyma a synonyma pro další rozšiřování slovní zásoby.
- Porovnání outputu s výsledky v https://www.wordfrequency.info/uses.asp - shodují se nejčastější slova?
- Vyřešit, proč se některá, očividně nesmyslná slova objevují vysoko v seznamu četnosti (např. „tom“)
Závěrečné poděkování
Za pomoc děkuji mimo jiné
mentorovi Honzovi, také Mirkovi a dále mému guru, malému Keksíčkovi.
Zdroje:
https://cs.glosbe.com/a-api
Komentáře
Okomentovat