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

Populární příspěvky z tohoto blogu

Petra Havlínová: Automatické zpracování podkladů pro vyhodnocení vybraných KPI

Michaela Raková: Internetové obchody pohledem ČOI

Zuzana Uhříková: Ověření hypotézy, zda má Airbnb vliv na klasické pronájmy v Praze