Es ist ein Jahr her, seit das Verbot von Online-Wahlen aufgehoben wurde, und es gibt einige Verwendungszwecke, die gegen das Wahlgesetz für öffentliche Beschäftigung rebellieren. Wie geht es Ihnen heute? Dieses Mal werde ich die Homepages jeder Partei analysieren, herausfinden, welche Wörter verwendet werden, und die Parteien mit ähnlichen Merkmalen extrahieren.
** Homepage-Analyse jeder Partei im Jahr 2014 ** http://needtec.sakura.ne.jp/analyze_election/page/analyzehp/2014
Quellcode https://github.com/mima3/analyze_election/tree/master/script_comp_manifesto
Laden Sie den Quellcode herunter und führen Sie das folgende Skript aus.
#Laden Sie die Homepage herunter und speichern Sie sie in der DB
python create_parties_db.py parties_hp_2014.sqlite party_hp_json_2014.json
#Morphologische Analyse und Summe der Anzahl der Wörter
python create_parties_tokens.py parties_hp_2014.sqlite
# tf-Berechnen Sie die Ähnlichkeit von IDF und Cosinus und zeichnen Sie das Ergebnis in JSON und PNG auf.
python create_tf_idf_report.py parties_hp_2014.sqlite party_hp_result_2014.json party_hp_result_2014.png "ms ui gothic"
Um es auszuführen, müssen Sie die folgenden Bibliotheken installieren. ・ Nltk ・ Lxml ・ MeCab ・ Urllib2 ・ Pydot
Der Wert von tf-idf des Wortes x im Satz y ist wie folgt.
tf-idf = tf × idf
idf = 1,0 + log (Gesamtzahl der Sätze / Anzahl der Sätze, in denen Wort x vorkommt) Wörter, die in vielen Dokumenten vorkommen, sind weniger wichtig und haben niedrigere Punktzahlen, und Wörter, die nur in bestimmten Dokumenten vorkommen, sind wichtiger und haben eine höhere Punktzahl Messen Sie den Abstand von Sätzen durch Kosinusähnlichkeit. Satz 1 hat ein Wort (A, B, C) und der Wert von TF-IDF dieses Wortes ist (0,1, 0,2, 0,3). Satz 2 hat ein Wort (C, D, E) und der TF-IDF-Wert dieses Wortes ist (0,4,0,5,0,6). Angenommen, die TF-IDF von Wörtern, die im Satz nicht vorhanden sind, ist 0, erstellen Sie eine TF-IDF für alle Wörter.
(A, B, C, D, E) in Satz 1 wird (0,1,0,2,0,3,0,0). (A, B, C, D, E) in Satz 2 wird (0,0,0,4,0,5,0,6)
Der Kosinus des Vektorwinkels zwischen Satz 1 und Satz 2 repräsentiert den Ähnlichkeitsgrad zwischen den beiden. Bei genau demselben Satz beträgt der Winkel zwischen Satz 1 und Satz 2 0 Grad.
Im Fall von Python wird es von nltk.cluster.util.cosine_distance berechnet.
Recommended Posts