EWzIRD/L/z3

From WikiZMSI

< EWzIRD | L

Na zajęciach

  • Pobrać i rozpakować plik: politicians.zip zawierający dane (teksty przemówień) oraz skrypty MATLABa pomocne do rozpoczęcia pracy. Dla każdego polityka przygotowane jest około 80 kB tekstu.
  • Zapoznać się ze skryptami: makeStatesFromText (ewidencjonuje wszystkie różne stany na podstawie sumy tekstów, pozwala odrzucić pewien odsetek najrzadszych stanów), textToSetOfOs (dzieli teksty pochodzące od jednego autora na teksty uczące i testowe, traktując zdanie jako sekwencję).
  • Podzielić dane poszczególnych polityków na sekwencje uczące i testowe w proporcji 70 do 30 procent.
  • Na danych uczących należy nauczyć modele Markowa dla poszczególnych polityków: Belka, Buzek, Kaczyński, Marcinkiewicz, Miller.
  • Zepsilonować modele.

Do domu

  • Napisać skrypt, który na wejście przyjmuje: macierz komórkową sekwencji testowych (od poszczególnych polityków) i zbiorczo klasyfikuje teksty testowe do poszczególnych autorów. Jako parametr przekazać, ile zdań (sekwencji) będzie składało się na jeden tekst do rozpoznania (można będzie podać np. 5 zdań, 10 zdań, itd.).
  • Wyznaczyć ogólną procentową poprawność rozpoznawania, oraz poprawności dla poszczególnych polityków.
  • (zadanie premiowane 1) Dla każdego polityka sprawdzić, z kim i w jakim stopniu jest on mylony. Inaczej, trzeba odnotować przy zbiorczej klasyfikacji tzw. macierz konfuzji.
  • (zadanie premiowane 2) Potraktować jako stan nie pojedynczy znak a parę znaków {(aa), (ab), ..., (żż)} (podpowiedź: wystarczy napisać odpowiednio swój skrypt extractStates wyciągający pary sąsiadujących znaczków ze słowa jako stany). Powtórzyć powyższe kroki: tj. zbudować modele, zepsilonować i sprawdzić skuteczność rozpoznawania (klasyfikacji). Chcemy się dowiedzieć czy przejście na dwuznaki podniosło skuteczność rozpoznawania względem pojedynczych znaków.