TF-IDFによる各政党のホームページの解析 その1
測定の概要
各政党のホームページより全てのリンクをたどり、そのHTMLからテキストとして抜き出して単語を抽出する。 この単語の出現頻度をtf-idfにより取得する。 この単語のスコアを元に書く文章の類似度の比較と考察を行なう。 処理の手順 前回の1党、1つのPDFとことなり、データ数が多いので、一端、SQLITEに格納してから解析を行なう。 以下がコードとなる。 http://needtec.sakura.ne.jp/election/analyze_hp.zip このプログラムを実行するにはPython2.7とMecab(UTF-8)が必要である。 1.トップページよりリンクをたどり、特定のドメインにリンクしているHTMLを全てぬきだす。 この際、PDFやExcelなどは無視をする。 下記のコマンドを実行することにより、analyze_hp.sqliteのcategorysテーブルとpagesテーブルにデータを挿入する
2. DBに格納したページの情報からテキストを抜き出して、これをMeCabにより単語に分割して、その出現頻度をもとめ結果をDBに書き込む。 下記のコマンドを実行することにより、analyze_hp.sqliteのpagesテーブルからページのデータを取得して、これをMeCabで分割して、その結果をtokensテーブルに格納する。その後、tokensのカテゴリと単語別に出現数を集計した結果をcounting_tokensテーブルに格納する。
3. DBに格納してある単語の出現頻度からtf-idfを計算して、コサイン類似度にて政党間の距離をもとめる。 下記のコマンドを実行することで、計算結果のreport_tf_idf_result.txtと政党間の距離をグラフであらわしたreport_tf_idf_result.pngが作られる。
解析対象のページ 検索開始URL: このページからリンクをたどる。再帰も行なう。ただし、ここのドメインと「有効なドメイン」で指定したドメイン中のページのみ調査対象とする 検有効なドメイン: 複数のドメインをもつ政党用に検査を開始したURLのドメイン以外で検査が必要なドメインを記述する。
最多ページ数について: 以外にもネットでは人気のない民主党が2位に2倍以上の差をつけてトップである。 民主党はhttp://www.dpj.or.jp/s/というURLに携帯サイトがあり、これは12342件ある。これがページ数を多くしている一因である。 しかし、それをのぞいても、11670件は存在しており、これは依然としてトップである。 つまり民主党はネットにたいする発信に相当量の力をそそいでいることがわかる。 英語のページ: 民主党、自由民主党、公明党、日本共産党などの5000件以上のページを持つ政党は英語版のページが用意してあった。 以外だったのがTPP推進でグローバリゼーションを推進する傾向のある、「みんなの党」「維新の会」には英語用のページが存在しない、もしくは簡単に見つけられる場所にはないようである。 TPPはP4の内容そのままだと、公共入札などで外国も参加できるように英語で行なう必要が出てきたりすると思う。必然的に日本の企業は外国と競争しなければならなくなるが、国民にはそういう外国勢との競争を推進しておきながら、自分の政党の広報は例外にしているのに大きな疑問を感じる。 文字コードの関係: 基本的にUTF-8で作られているようである。 しかし、共産党の古いページの一部にShift-JISなどが混ざっているようだ。 http://www.jcp.or.jp/akahata/keyword/084_inc.html 2038年問題によるリンクの循環: 自民党のホームページを純粋にURLでたどると、無限にリンクをたどり続ける問題が出てくる。 以下のページを参照してみる。 https://www.jimin.jp/activity/conference/weekly.html?wk=1278 本来であれば、2038年01月18日~2038年01月25日になるはずだ。 これが、「~1970年01月01日」になっているのが確認できると思う。 このページから次のページを選択しても不正な日付が出てくるだけである。 これは日付を1970年1月1日からのミリ秒単位で32bitの領域で管理しているために、2013年1月19日でオーバーフローを起こして負の値になってしまうために発生する。 そのために、"wk="のクエリーに与える値は±100件に限るようにした。 みどりの風のページ数の少なさの原因: みどりの風のページ数の異様な少なさについては、HTTPで取得するさいに"HTTP Error Service Temporarily Unavailable"が発生している。これはサーバーが処理しきれない負荷が掛かったときに一時的にアクセスできない旨を通知するものであり、リトライをすれば取得できることもある。 しかし、リトライをすると、さらに負荷をかけてしまい、選挙妨害にもなりかねないので、取得はあきらめた。 みどりの風のサイトをブラウザで訪ねても同様のエラーが発生することが確認できた。 なお、この政党以外では同様のエラーが発生していないので、アクセス数とサーバーの性能のバランスが取れていないと考えられる。 タイムアウトエラー: 民主党のページを取得しているとたまにタイムアウトが発生する。 私が確認したのは下記のページであるが、今現在、リクエストをすると成功する。 ・http://www.dpj.or.jp/member/104 ・http://www.dpj.or.jp/s/tag/791 ・http://www.dpj.or.jp/s/news/page/457 ・http://www.dpj.or.jp/s/member/4124 ・http://www.dpj.or.jp/s/member/4005 ・http://www.dpj.or.jp/article/101042/%E3%80%90%E3%83%93%E3%83%87%E3%82%AA%E9%85%8D%E4%BF%A1%E3%80%91%EF%BC%92%EF%BC%91%E6%97%A5%E3%80%81%E8%BC%BF%E7%9F%B3%E5%B9%B9%E4%BA%8B%E9%95%B7%E5%AE%9A%E4%BE%8B%E4%BC%9A%E8%A6%8B%E3%80%80 ・http://www.dpj.or.jp/tag/海江田万里 タイムアウトのタイミングは不定で、原因を把握することはできなかった。 デッドリンク: いくつかのURLはアクセスをおこなってもNot Foundとなる。このデッドリンクのページ数とそれが全体に占める割合を求めた。
デッドリンクの率で圧倒的な生活の党のデッドリンクの多くは下記のようなものだ。 http://www.seikatsu1.jp/member/member0001.html おそらくこのページは元議員の紹介ページだ。 離党するなり、選挙に落ちるなりで、メンバーを辞めた人のページを消したがリンク元を修正するのを忘れているのだと思われる。 同様にデッドリンク数で圧倒する民主党も下記のようなメンバーの紹介ページがデッドリンクしている場合が多い。 http://www.dpj.or.jp/member/?detail_14=1 このことより、ホームページの更新がおいつかないくらいの離党者、落選者を出したという事実が見えてくる。 おそらく、7/21の参院選挙の結果、この結果より多くのデッドリンクを生み出すことが予想される。 各政党間のコサイン類似度の距離の比較 公明党 -> 社民党 : 0.731928 公明党 -> 新党大地 : 0.857919 公明党 -> 日本共産党 : 0.738020 公明党 -> みんなの党 : 0.681428 公明党 -> 民主党 : 0.638287 公明党 -> 自由民主党 : 0.737310 公明党 -> みどりの風 : 0.849121 公明党 -> 生活の党 : 0.655711 公明党 -> 緑の党 : 0.815483 公明党 -> 日本維新の会 : 0.783212 公明党 -> 幸福実現党 : 0.873400 ....... max:幸福実現党(0.873400) min:民主党(0.638287) 社民党 -> 公明党 : 0.731928 社民党 -> 新党大地 : 0.701226 社民党 -> 日本共産党 : 0.583070 社民党 -> みんなの党 : 0.609722 社民党 -> 民主党 : 0.395126 社民党 -> 自由民主党 : 0.585487 社民党 -> みどりの風 : 0.686491 社民党 -> 生活の党 : 0.414220 社民党 -> 緑の党 : 0.686187 社民党 -> 日本維新の会 : 0.802258 社民党 -> 幸福実現党 : 0.667003 ....... max:日本維新の会(0.802258) min:民主党(0.395126) 新党大地 -> 公明党 : 0.857919 新党大地 -> 社民党 : 0.701226 新党大地 -> 日本共産党 : 0.693700 新党大地 -> みんなの党 : 0.733263 新党大地 -> 民主党 : 0.688256 新党大地 -> 自由民主党 : 0.780878 新党大地 -> みどりの風 : 0.817711 新党大地 -> 生活の党 : 0.681593 新党大地 -> 緑の党 : 0.818427 新党大地 -> 日本維新の会 : 0.842807 新党大地 -> 幸福実現党 : 0.874037 ....... max:幸福実現党(0.874037) min:生活の党(0.681593) 日本共産党 -> 公明党 : 0.738020 日本共産党 -> 社民党 : 0.583070 日本共産党 -> 新党大地 : 0.693700 日本共産党 -> みんなの党 : 0.589351 日本共産党 -> 民主党 : 0.541578 日本共産党 -> 自由民主党 : 0.657948 日本共産党 -> みどりの風 : 0.699870 日本共産党 -> 生活の党 : 0.586468 日本共産党 -> 緑の党 : 0.668951 日本共産党 -> 日本維新の会 : 0.703166 日本共産党 -> 幸福実現党 : 0.797108 ....... max:幸福実現党(0.797108) min:民主党(0.541578) みんなの党 -> 公明党 : 0.681428 みんなの党 -> 社民党 : 0.609722 みんなの党 -> 新党大地 : 0.733263 みんなの党 -> 日本共産党 : 0.589351 みんなの党 -> 日本維新の会 : 0.730536 みんなの党 -> 民主党 : 0.445813 みんなの党 -> 自由民主党 : 0.605552 みんなの党 -> みどりの風 : 0.757906 みんなの党 -> 生活の党 : 0.245014 みんなの党 -> 緑の党 : 0.744886 みんなの党 -> 幸福実現党 : 0.821752 ....... max:幸福実現党(0.821752) min:生活の党(0.245014) 民主党 -> 公明党 : 0.638287 民主党 -> 社民党 : 0.395126 民主党 -> 日本共産党 : 0.541578 民主党 -> みんなの党 : 0.445813 民主党 -> 新党大地 : 0.688256 民主党 -> 自由民主党 : 0.485674 民主党 -> みどりの風 : 0.673311 民主党 -> 生活の党 : 0.339329 民主党 -> 緑の党 : 0.671926 民主党 -> 日本維新の会 : 0.681216 民主党 -> 幸福実現党 : 0.704851 ....... max:幸福実現党(0.704851) min:生活の党(0.339329) 自由民主党 -> 公明党 : 0.737310 自由民主党 -> 社民党 : 0.585487 自由民主党 -> 新党大地 : 0.780878 自由民主党 -> 日本共産党 : 0.657948 自由民主党 -> みんなの党 : 0.605552 自由民主党 -> 民主党 : 0.485674 自由民主党 -> みどりの風 : 0.709040 自由民主党 -> 生活の党 : 0.500105 自由民主党 -> 緑の党 : 0.714813 自由民主党 -> 日本維新の会 : 0.631767 自由民主党 -> 幸福実現党 : 0.720751 ....... max:新党大地(0.780878) min:民主党(0.485674) みどりの風 -> 公明党 : 0.849121 みどりの風 -> 社民党 : 0.686491 みどりの風 -> 新党大地 : 0.817711 みどりの風 -> 日本共産党 : 0.699870 みどりの風 -> みんなの党 : 0.757906 みどりの風 -> 民主党 : 0.673311 みどりの風 -> 自由民主党 : 0.709040 みどりの風 -> 生活の党 : 0.707437 みどりの風 -> 緑の党 : 0.639000 みどりの風 -> 日本維新の会 : 0.731312 みどりの風 -> 幸福実現党 : 0.806779 ....... max:公明党(0.849121) min:緑の党(0.639000) 生活の党 -> 公明党 : 0.655711 生活の党 -> 社民党 : 0.414220 生活の党 -> 日本共産党 : 0.586468 生活の党 -> みんなの党 : 0.245014 生活の党 -> 民主党 : 0.339329 生活の党 -> 自由民主党 : 0.500105 生活の党 -> みどりの風 : 0.707437 生活の党 -> 新党大地 : 0.681593 生活の党 -> 緑の党 : 0.718295 生活の党 -> 日本維新の会 : 0.760308 生活の党 -> 幸福実現党 : 0.726544 ....... max:日本維新の会(0.760308) min:みんなの党(0.245014) 緑の党 -> 公明党 : 0.815483 緑の党 -> 社民党 : 0.686187 緑の党 -> 新党大地 : 0.818427 緑の党 -> みんなの党 : 0.744886 緑の党 -> 民主党 : 0.671926 緑の党 -> 自由民主党 : 0.714813 緑の党 -> みどりの風 : 0.639000 緑の党 -> 生活の党 : 0.718295 緑の党 -> 日本共産党 : 0.668951 緑の党 -> 日本維新の会 : 0.742498 緑の党 -> 幸福実現党 : 0.798622 ....... max:新党大地(0.818427) min:みどりの風(0.639000) 日本維新の会 -> 公明党 : 0.783212 日本維新の会 -> 社民党 : 0.802258 日本維新の会 -> 新党大地 : 0.842807 日本維新の会 -> 日本共産党 : 0.703166 日本維新の会 -> みんなの党 : 0.730536 日本維新の会 -> 民主党 : 0.681216 日本維新の会 -> 自由民主党 : 0.631767 日本維新の会 -> みどりの風 : 0.731312 日本維新の会 -> 生活の党 : 0.760308 日本維新の会 -> 緑の党 : 0.742498 日本維新の会 -> 幸福実現党 : 0.846989 ....... max:幸福実現党(0.846989) min:自由民主党(0.631767) 幸福実現党 -> 公明党 : 0.873400 幸福実現党 -> 社民党 : 0.667003 幸福実現党 -> 新党大地 : 0.874037 幸福実現党 -> 日本共産党 : 0.797108 幸福実現党 -> みんなの党 : 0.821752 幸福実現党 -> 民主党 : 0.704851 幸福実現党 -> 自由民主党 : 0.720751 幸福実現党 -> みどりの風 : 0.806779 幸福実現党 -> 生活の党 : 0.726544 幸福実現党 -> 緑の党 : 0.798622 幸福実現党 -> 日本維新の会 : 0.846989 ....... max:新党大地(0.874037) min:社民党(0.667003) TF-IDFによる各政党のホームページの解析 その2 へつづく
by mima_ita
| 2013-07-22 05:50
| 実験
|
by mima_ita 検索
カテゴリ
全体
実験 VBA 泣き言 管理 メンタルヘルス memo buildbot php テスト subversion book JQuery python R .NET box2d SQLSERVER node.js ruby 未分類 最新の記事
以前の記事
2014年 07月
2014年 06月 2014年 05月 2014年 04月 2013年 12月 2013年 11月 2013年 10月 2013年 09月 2013年 07月 2013年 06月 2013年 05月 2013年 03月 2012年 10月 2012年 09月 2012年 08月 2012年 04月 2012年 02月 2012年 01月 2011年 10月 最新のトラックバック
その他のジャンル
ブログパーツ
|
|||||||||||||||||||||||||||||||||||||||
ファン申請 |
||