Yahoo言語解析ツールWrapper Beta版

jarファイル ダウンロード

http://stiq.info/files/txqz-nlp-modules-1.0.jar

これはなに?:

youzakaさんが作ったYahoo形態素解析エンジンのJava用Wrapperを
さらに扱いやすくしたのと、キーフレーズ検索に対応出来るようにしたもの

基本設計

TaggerFactory.getTagger(ほにゃらら);
の1文で、形態素解析の種類の指定を行って、
形態素解析を行い、y!から取ってきたデータを扱いやすくするようになっている。
*1

Tagger tagger = TaggerFactory.getTagger(arg1, arg2);
形態素解析の種類を指定して、Taggerインスタンス化する。
String arg1は、形態素解析の種類

  • "yahoo"で、形態素解析
  • "yahoo_kp" または、"yahoo_KeyPrase"で、キーフレーズ検索*2

String arg2は、自分のyahooのappIdを入れる。
arg2は、省略出来るけど、俺のappIdが消費されるので、必ず自分のアカウントでやってください><

tagger.setString(line);
lineに解析したい文章を入れる。

あとは、サンプルを見て、分からないところがあれば聞いてください。

Yahoo!形態素解析

サンプル
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import net.txqz.morpheme.Tagger;
import net.txqz.morpheme.TaggerFactory;
import net.txqz.morpheme.Token;

public class NLPTest {
	public static void main(String[] args) {

		Tagger tagger = TaggerFactory.getTagger("yahoo_kp", "******"); //******のところに、自分のyahooのIDを入力
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Please input Japanese text.");
		String line;

		try {
			while((line = in.readLine()) != null) {
				System.out.println(line);
				tagger.setString(line);
				for(Token t : tagger.getTokenList()) {
					System.out.println(t);
					//Taggerの各要素、surface -> 単語そのまま、base -> 基本形に直す、
					//reading -> 読み方(漢字をひらがなに)、pos -> 品詞情報
					System.out.println(t.getSurface() + t.getBase() + t.getReading() + t.getPos());
				}
			}
		} catch(IOException ioe) {
			ioe.printStackTrace();
		}
	}
}
実行結果


Yahoo!キーフレーズ検索

サンプル
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import net.txqz.morpheme.Tagger;
import net.txqz.morpheme.TaggerFactory;
import net.txqz.morpheme.Token;

public class NLPTest {
	public static void main(String[] args) {

		Tagger tagger = TaggerFactory.getTagger("yahoo_kp", "*******"); //*******のところに、自分のYahooのIDを入力
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.println("Please input Japanese text.");
		String line;

		try {
			while((line = in.readLine()) != null) {
				System.out.println(line);
				tagger.setString(line);
				for(Token t : tagger.getTokenList()) {
					System.out.println(t.getKeyPhrase() + " : " + t.getScore());
				}
			}
		} catch(IOException ioe) {
			ioe.printStackTrace();
		}
	}
}
実行結果

*1:この辺の設計は、全てyouzakaさんの設計です。あたまが良すぎる。

*2:裏オプションで、gosenを指定出来るけど、設定がめんどくさいので、また後で

東京都議会議員選挙の党派マニフェストを自動分類したよ

これはなに?

2009年7月12日投開票の東京都議会議員選挙において、主要6党(自民党民主党公明党共産党幸福実現党生活者ネットワーク)の会派マニフェストに書いてある内容を品田方式と呼ばれる選挙研究で使う分類カテゴリに従い、分類したものです。
各党のマニフェストで、政策カテゴリ別に言及割合を出すことにより、どの政策に、政党がどれだけ興味があるかを割り出して、政党の政策位置を推定できるということが期待出来ます。
分類作業は、stiqが研究している自然言語処理機械学習*1の方法を用いて自動分類コーディングシステムを構築し、それを使っています。
自動分類コーディングシステムを構築することによって、人手による分類によって数ヶ月掛かっていた作業が、1日で終わり、公示日ごろに発表されるマニフェストをすぐに分類処理して、投票日までに分類データを作ることが出来ます。
次期衆院選についても、同様の分類を行う予定です。

学術論文

具体的に、このシステムについては、これらの論文に仕組みが書かれています。
出典:日本版ボートマッチ ワーキング・グループより

  • 「政党や政治家の政策的な立場を 推定する―コンピュータによる自動コーディングの試み―」 上神貴佳・佐藤哲也.2009(掲載予定).『選挙研究』25巻1号.
  • 「投票支援のためのインターネット・ツール―日本 版ボートマッチの作成プロセスについて―」 上神貴佳・堤 英敬.2008.『選挙学会紀要』10号,27‐48頁.
  • 「投票支援ツールと『政策中心の選挙』の実現―オランダの 実践と日本における展望―」 上神貴佳.2006.『選挙学会紀要』6号,43‐64頁.

また、この分類に用いている分類カテゴリについての論文は、

  • 「選挙公約政策データについて」 品田裕. 2006. 『日本政治研究3(2)』, 63-91頁.

に基づいています。

おことわり

今日公開するデータは、東京都議選に合わせて、システムのテスト運用をこめて分類した結果であり、それの速報版です。
細かいところまでのデータの検証はできていませんので、ご了承ください。
研究目的でご利用の場合やマニフェスト分類について、詳しく知りたい方はお知らせください。
mail : stiq2e atmark gmail.com
または、http://tai.ia.inf.shizuoka.ac.jp/にある連絡先へ

各党政策言及割合

政策対象

政党が誰に向けた政策なのかを分類したものです。


政策分野(大分類)

政党がどのような政策をマニフェストに書いているのかを、大きな分野別にまとめたのものです。


政策内容(小分類)

政策分野(大分類)をさらに細かいカテゴリで分けたもの
こんな感じのデータです。

くわしくは、ダウンロード先にある資料をご覧下さい。

言及数と候補者数

都議選における各政党のマニフェストの分量と候補者数

自民党マニフェストの分量が突出して多いです。

上記結果のダウンロード

http://stiq.info/labs/tokyo_manifesto2009_3rd_edtion.zip
繰り返しになりますが、このデータを研究目的で使いたい場合は、必ず上記連絡先へお知らせください。

追記 (7月11日土曜日21時40分)

この記事を紹介していただきました。そのトラックバック先より、

私はグラフよりも[カラースケール]機能のほうが、より見やすいと感じました。
投票支援ツール−東京都議会議員選挙の党派マニフェストの政策分類結果 - インストラクターのネタ帳

とありましたので、参考にさせていただきました。言及割合が高いものに色をつけました。
また、他にも候補者数のデータもあると良いという助言いただいたので、調査して、参考の為に数値を載せました。
ダウンロード先のデータも入れ替えました。
よろしくお願いします。

*1:自然言語処理に、GoSenとY!形態素解析API機械学習のwekaライブラリ

Rejectセキュリティキャンプでやりたいことなどなど

凍結中のこのブログも復活させないと・・・。
まずは、ゆっくりしすぎて、内容書かずにすいません><

普段どういうことをやっていて、どういう知識なら持っているのか

普段は、Java使い。機械学習*1データマイニングやら、自然言語処理技術を使って、ごにょごにょしています。
他にも、PHPPythonをちょっとだけ。
集合知つかって、社会的におもしろいことやろうぜ。みたいなこと*2をやっています。
どれも中途半端で、全然モノになってないなー。

自分がどういうことをやりたいか

Programing Collective Intelligence*3を使ってなにかやれたらいいです。
これの復習がメインかな?
何かしらデータを使ってアプリ作ってみたいけど、そこまでできるかな?
何か作った!という実践経験がほしい。

誰と一緒に開発やりたいか(もしくは一人でもくもくとやりたいか)

データマイニングやら統計の専門家(の卵?)に話しを聞いてみたい。
すごい足手まといだろうけど。


まずいな、お盆にすこし復習しておこう。
あと、もって行くPCって、今あるのは、めちゃでかいDELLノートなんだけど。かっこわるー!


Programming Collective Intelligence: Building Smart Web 2.0 Applications

Programming Collective Intelligence: Building Smart Web 2.0 Applications

Collective Intelligence in Action

Collective Intelligence in Action

*1:Wekaというライブラリを使っているので、理論的なところはさっぱりわからん

*2:研究室でやっているhttp://kouna.ru/http://shuugi.in/とか、今はカスタマーサポート役になっているw

*3:張ったぺんぎん本、なんとなくで読んだので、語句を「集合知プログラミング」にて、日本語で確認したい><

第2回CSS勉強会の宿題 −floatの挙動に全俺が泣いた

h1 {
display:block;
font-size:200%;
margin:.67% 0;
font-weight:bolder;
}
.base {
background:#f0f0f0;
display:list-item;
border-style:dotted;
width: 40%;
float: left;
margin: 0 10% 0 0 ;
}
dt {
display: block;
font-size: 150%;
padding: .30em;
}
dd{
display: inline;
font-family: monospace;
line-height: 150%;
border-style: dotted;
}
.sub{
display: block;
background-color: #ffddaa;
margin: 0 0 0 45%;
}

(stiq.css)


先週のhtml(stiq.html)のheadに以下を付け足す。

<link rel="stylesheet" href="./stiq.css" />

第1回HTML勉強会の宿題 −今までのコピペHTMLからの脱却


htmlを改めてまともに書く!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>about: stiq</title>
</head>
<body>
<h1>stiqの自己紹介</h1>

<div class="profile base" id="stiq">
	<h2>基本情報</h2>
	
	<dl>
		<dt>名前</dt><dd>stick23rd</dd>
		<dt>省略形?かつ、よく使う名前</dt><dd>stiq</dd>
		<dt>所属</dt><dd>静岡大学情報学部砂糖研究室</dd>
		<dt>経歴</dt><dd>
			<ol>
				<li>2005年3月 わーわー高等学校卒業</li>
				<li>2005年4月 あーあーあー学科入学</li>
				<li>2005年3月 あーあーあー学科卒業予定</li>
			</ol>
		</dd>
		<dt>生年月日</dt><dd>198.年.月..日</dd>
		<dt>年齢</dt><dd>**歳</dd>
		<dt>現住地</dt><dd>xx県yy市</dd>
		<dt>出生地</dt><dd>ii府jj市</dd>
	</dl>
</div>
<div class="profile sub" id="stiq">
	<h2>どーでもよい情報</h2>
	
	<dl>
		<dt>ステータス</dt><dd>おなかがすいている</dd>
		<dt>ブログとかとか</dt><dd>http://d.hatena.ne.jp/stick23rd/</dd>
		<dt>作りかけホームページ</dt><dd>
		<ul>
		<li>http://strbcake.net</li>
		<li>http://stiq.info</li>
		</ul>
		</dd>
	</dl>
	
	<p>その他、いっぱいいろいろ、よろしくお願いします。</p>
</div>
</body>
</html>

Shuugi.inをリリースしました

リリースしてからだいぶ遅れましたが、私の所属研究室のプロジェクトで、次回衆院選に向けた予測市場アプリケーションを出そうという話になり、1月11日にめでたくリリースできました。

http://shuugi.in/ (Shuugi.in)


私は、おもにドキュメントの作成や運営者ブログの更新を、id:uesimaくんとともに担当しています。

http://d.hatena.ne.jp/shuugi_in/ (Shuugi.in運営者ブログ)

Shuugi.inは集合知衆院選の結果を予想しようという実験です。誰でも無料でいつでも参加できます。
また、去年夏のsangi.inの成果と反省を踏まえて、大幅バージョンアップと管理体制もしっかり(自分が担当だけど)していくつもりです。
うれしいことに、もう500ユーザの参加をいただきました!!

半分メモになりますが、Shuugi.inのポイントとして、

  • かんたん注文機能
  • セット注文(sangi.inにもあったけど・・・)
  • ロボットエージェント
  • 直感的にわかるインターフェース
  • 豊富なドキュメント
  • メッセーボードを使った議論を生む土壌
  • ブログパーツtwitter botなどのアプリ


こんなもんかな?
まだまだアップデートや新しい機能が出てくるかもしれません。おたのしみに。
取引量は多ければ多いほど、みんなの意見が反映されますて、正しい予測値が出るのではないかと考えています。
まずは、めざせ1000ユーザ!

よろしければ、参加のほうをお願いします。


(それとは、別に研究のほうも忙しくなってきました、就活・進学も・・・)