Archiv nach Autor

Twapperlyzer Präsentation

9 Jan

Die Präsentation für den Twapperlyzer Vortrag sind jetzt online. Man kann sie hier finden. Es handelt sich dabei um eine HTML 5 Webseite, das Template kommt von html5rocks.com und wurde von mir angepasst. Es gibt auch einige Frameworks um die Templates (z.B. Landslide). Die Funktionen wurden dabei sehr schön ausgebaut, aber sie waren mir letztendlich zu unflexibel.

Kurzer Buchtipp: “Introduction to Information Retrieval”

13 Okt

Im Rahmen der Arbeit habe ich mich ein wenig mit dem Buch “Introduction to Information Retrieval”  von Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze beschäftigt. Es liegt als online Ausgabe als PDF vor und ich finde es sehr empfehlenswert.  Es war ursprünglich als Skript für eine Vorlesung gedacht  und ist deshalb genau das richtige für den geneigten Informatik Student.

Introduction to Information Retrieval

Introduction to Information Retrieval

Viele Vornamen

26 Sep

Bei twapperlyzer versuche ich über die Vornamen das Geschlecht zu bestimmen. Bis heute hatte ich dazu ca 11 Tausend Namen aus dieser Datei. Das war mich noch etwas wenig heute habe ich noch etwas recherchiert und habe noch diese Datei mit ca 40 Tausend Namen gefunden. Die beiden Dateien enthalten noch einige Meta-Informationen, wie die Wahrscheinlichkeit das das Geschlecht stimmt oder die Herkunft des Namens. Da ich nur die Namen brauchte habe ich beide vereint und  weiterverarbeitet zu jeweils einer Datei mit 19461 weiblichen Vornamen und einer Datei mit 20784 männlichen Vornamen. Beides sind eigentlich txt Dateien in denen die Namen durch einen Zeilenumbruch getrennt sind.

Sentiment Analysen im Vergleich

7 Sep

Ich hab eben mal zwei Anbieter von Sentiment Analysen verglichen und zwar:

Als Testdaten habe ich das knowaan Archiv benutzt. Die Ergebnisse sind in dieser Datei. Ich musste sie aber umbenennen um sie hoch laden zu können eigentlich ist es eine zip Datei die zwei JSON Dateien enthält. Einmal die Orginal Tweets ohne Retweets und einmal die tweets ohne Hashtags, Mentions und Urls. Das ist die Zusammenfassung:

Original:

  • tweetsentiments
    • positive: 12
    • neutral: 22
    • negative: 2
  • alchemyapi
    • positive: 16
    • neutral: 10
    • negative: 1
    • error: 9

Bereinigt:

  • tweetsentiments
    • positive: 13
    • neutral: 21
    • negative: 2
  • alchemyapi
    • positive: 14
    • neutral: 12
    • negative: 0
    • error: 10

Meine Einschätzung:

  • positive: 17
  • neutral: 16
  • negative: 3

So richtig überzeugen können beide nicht. Tweetsentiments reagiert nicht auf Wörter wie “cool” oder “interesting” dafür werden aber alle sprachen unterstützt. Das bedeutet dann aber meist das der Text als neutral eingestuft  wird außer er enthält ein Emoticon.
Manchmal hat Tweetsentiments Probleme mit zu kurzen Texten und wirft einen Fehler. Das lässt sich beheben indem neutrale nicht Stopwörter an den Text hängt. Der riesige Vorteil von Tweetsentiments ist das die  API Aufrufe nicht begrenzt sind.

Alchemyapi brauch eine Anmeldung, ist auf 30k Aufrufe pro Tag beschränkt und kommt nur mit englischen Texten zurecht. Sonst liefert die API aber  recht sinnvolle Resultate, auch wenn die API etwas zu positiven Ergebnissen neigt.

Ein Einfacher Algorithmus, um Antworten in Hashtag Communities zu finden.

5 Sep

Ein aufschlussreicher Aspekt bei der Analyse von Hashtag Communities ist die Ermittlung von gestellten Fragen und deren Antworten.

Fragen lassen sich problemlos anhand eines Fragezeichens identifizieren. Zusätzlich dazu lässt sich der Text auf sprachspezifische Fragewörter prüfen. Antworten zu finden ist wesentlich aufwendiger.

Fragen lassen sich grundsätzlich in zwei Kategorien unterteilen, Fragen an die Community, sowie Fragen an einzelne Personen. Um eine Frage diesen Kategorien zuordnen zu können, wurde untersucht ob in einem Fragetext die Benutzernamen anderer Benutzer erwähnt werden. Ist dies der Fall, so wird davon ausgegangen, dass die Frage an diese Person(en) gerichtet ist. Wird kein Benutzername gefunden, so ist davon auszugehen, das sie der zweiten Kategorie zuzuordnen ist.

Antworten lassen sich dementsprechend auch in diese Kategorien einteilen. Da auch direkte Fragen an einzelne Personen öffentlich gestellt werden, kann es dazu kommen das Benutzer auf nicht ans sie gerichtete Fragen antworten.

Technisch kann jede Nachricht, die nach der Frage gesendet wurde und die an den Fragesteller gerichtet ist, eine Antwort sein. Daher entscheidet die Frage über den Typ der Antwort. Um die Ergebnismenge überschaubar zu halten, versucht der Algorithmus nur direkte Antworten und Antworten auf Fragen an die Community zu finden.

Sind die Grundvoraussetzungen gegeben und die Nachricht kommt als Antwort in Frage wird sie genauer überprüft und bewertet. Bewertungskriterien sind:

  • Gemeinsame Hashtags im Antwort- sowie im Fragetext.
  • Gemeinsame Schlüsselwörter im Antwort- sowie im Fragetext.
  • Beide Texte sind in derselben Sprache verfasst.

Hashtags sind vom Benutzer gesetzt und anders als die automatisch erfassten Schlüsselwörter, besonders ausschlaggebend für die Bewertung.

Ein weiteres Kriterium bei der Bewertung der Antworten könnten auch zeitliche Differenzen zwischen Frage und Antwort sein.

Die Ergebnisse des Algorithmus sind bis jetzt wechselhaft. In einigen der untersuchten Archive kommt der Algorithmus zu guten Ergebnissen. In anderen sind direkte Fragen anscheinend selten beantwortet worden oder in den Antworten wurde kein Hashtag für die Community gesetzt. Gefundene Antworten auf direkte Fragen erwiesen sich in der Regel als sinnvoll.

Erwartungsgemäß finden sich bei Fragen an die Community durchweg viele Antworten. Die Qualität der Antworten ist jedoch nicht zufriedenstellend.

Im Idealfall wird die Webapplikation so gestaltet, dass die Antworten bewertet oder gelöscht werden können. Somit lässt sich die Qualität der Antworten nachträglich weiter verbessern.

Falls ihr noch Ideen habt für weitere Bewertungskriterien oder andere Verbesserungsvorschläge, bin ich auf euren Input gespannt.