Skip to content

Spotkanie 2014.03.05

dmydlarz edited this page Mar 6, 2014 · 4 revisions

Zrobiono

Ulepszone czyszczenie tweetów

  • algorytm służący do klasyfikacji tweetów z emotikonami został polepszony
    • usuwane są części nieistotne wpisu z punktu widzenia emotikony
    • przykładowo dla tweetu

CFC just bagged 3points "@MyIdolMasha: Hello whats up everyone ? :D"

  • do tej pory wszystkie słowa z tego tweetu były określane jako pozytywne
  • emotikona dotyczy jednak tekstu cytowanego
  • więc tweet jest przekształcany na formę

CFC just bagged 3points

  • czyli z wszystkich tweetów usuwane są części wtórne (cytaty, komentarze dołączone do retweetów, itd).
  • dzięki temu oznaczenie emotikony dotyczy faktycznego tekstu
  • dodatkowo usuwane są wszystkie hiperłącza, wspomnienia innych użytkowników (@username), nazwiska/określenia piłkarzy z bazy danych, użyte wcześniej jako słowa kluczowe do zbierania tweetów, liczby, znaki inne niż alfabet
  • dokonywana jest także normalizacja liter diakrytyzowanych
  • w związku z powyższym przed samym faktem uczenia, algorytm otrzymuje wyczyszczony tekst z emotikoną
  • więcej przykładów w klasie z testem użytego cleanera

https://github.com/dmydlarz/pracamgr/blob/master/twitter-crawler/src/test/java/pl/edu/agh/twitter/sentiment/counterclassifier/IrrelevantRemovingCleanerTest.java

Zmienono sposób wyliczania sentymentu dla zdania

  • algorytm oparty o artykuł Twitter for Sentiment Analysis: When Language Resources Are Not Available, Pak, Paroubek
  • uczenie na podstawie emotikon
  • wartość sentymentu słowa wyznaczany jako
    log(pos + 1/neg + 1), gdzie
    pos - liczba wystąpień w tweetach z pozytywną emotikoną,
    neg - l. wyst. w tweetach z negatywną emotikoną
  • wartość sentymentu zdania jest średnią arytmetyczną z wartości dla słów
  • zdanie określane jest jako pozytywne, gdy jego wartość sentymentu jest większa od średniej wszystkich ocenianych zdań
  • uzyskane wyniki znajdują się w arkuszu
    https://docs.google.com/spreadsheets/d/1tekCPyykWJYR3ksIAGofOvbHJXp0MRikrMl_iMD_HJI/edit?usp=sharing
    • L3/F100/1 - min. długość słowa 3, min. częstotliwość słowa 100, uruchomienie 1
    • T/L3/F100/1 - jw. z podzieleniem zbiorów na treningowy i testowy (80% do 20%); w powyższym przykładzie algorytm był uczony wszystkimi tweetami
    • L3/F100: 71.5% skuteczności
    • T/L3/F100: 63.59% skuteczności
    • T/L3/F50: 74.32% skuteczności