<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>nakatani @ cybozu labs</title>
      <link>http://labs.cybozu.co.jp/blog/nakatani/</link>
      <description></description>
      <language>ja</language>
      <copyright>Copyright 2009</copyright>
      <lastBuildDate>Fri, 29 May 2009 18:21:43 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>コンピュータはオー・ヘンリーとエドガー・アラン・ポーの文章を見分けられるか？(ブログ移転のお知らせ)</title>
         <description><![CDATA[Perceptron の実装です、と言ってからずいぶん経ってしまいましたが、ようやくその続き……と思わせておいて、実はブログの移転のお知らせです。

サイボウズグループ全体の技術ブログとして <a href="http://developer.cybozu.co.jp/tech/">Cybozu Inside Out</a> が立ち上がり、こちらの "nakatani @ cybozu labs" で書いていたような記事も今後そちらで書かせていただくことになりました。

第１回目の記事として、Perceptron の実装編として、O.Henry と Edgar Allan Poe の文章を Perceptron で学習して正しく見分けられるか！？　という記事を書かせていただきましたので、よろしければごらんください。

<a href="http://developer.cybozu.co.jp/tech/2009/05/post-a7de.html ">コンピュータはオー・ヘンリーとエドガー・アラン・ポーの文章を見分けられるか？ - Cybozu Inside Out</a>

サイトは変わりますが、これからも引き続きよろしくお願いいたします。

なお、こちらのブログにある過去記事については、このまま保持される予定です。]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/05/post_11.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/05/post_11.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
        
         <pubDate>Fri, 29 May 2009 18:21:43 +0900</pubDate>
      </item>
            <item>
         <title>Perceptron を手で計算して理解してみる</title>
         <description><![CDATA[Perceptron の実装とか見ると、ものすごく簡単なので、本当にこれで学習できちゃうの？　と不安になってしまいました(苦笑)。
こういうときは、実際にパーセプトロンが計算しているとおりに、紙と鉛筆で計算してみて、期待する結果が出てくることを確認してみたくなります。

参照する教科書は「パターン認識と機械学習・上」(PRML) の「 4.1.7 パーセプトロンアルゴリズム」。
短い節です。必要最低限のことを一通り書いてある感じかな。

計算に用いるサンプルですが、手で計算できる規模でないといけないので、論理演算の AND を試してみることにします。


<h2>簡単に勉強</h2>

ちゃんとした説明は PRML などを見て欲しいですが、とても簡単にまとめます。

２値の線形識別モデルは、N 次元空間内を (N-1) 次元の超平面(決定面)で分割することで、入力ベクトル x から得られる特徴ベクトル φ(x) が２つのクラスのどちらに属するかを分類します(２次元で言えば、座標平面を直線で分割している感じ)。

その超平面は重みベクトル w を使って、 w^T φ(x) = 0 と表します。
空間を w^T φ(x) ≧ 0 と w^T φ(x) < 0 に分割するわけですね。
重みベクトル w を決定する一般的なアプローチは、誤差関数を決め、それを w の関数と見なし、最小化する w を求める、となります。

パーセプトロンは、誤差関数としてパーセプトロン基準を用い、また最小化に確率的最急降下アルゴリズムを用いるのが特徴、と。

パーセプトロン基準は、目的変数として t ∈ {-1, +1} を用いつつ(通常は {0, 1})、誤差関数を次のように定義しています。

<pre>
E_P(w) = - Σ w^T Φ(x_n) t_n
</pre>

ここで Σは誤分類されたパターン全体を走るとします。
すると、w^T Φ(x_n) ≧ 0 のとき t_n は「間違って」 -1 になっているし、w^T Φ(x_n) < 0 のときは t_n は「間違って」 +1 になっているため、E_P(w) は常に０以上であることがわかります。

これを最小化するために、「誤分類された x_n １つずつに対して」次の式を使って逐次的に最小値に近づけていきます。
イメージとしては、ニュートン法(多次元版)って感じです。
このあたり、PRML には 3.1.3 節を見ろ、と書いてますが、5.2.4 節もあわせて見るといいかもしれません。

<pre>
w^(γ+1) = w^(γ) - η▽E_P(w) = w^(γ) + φ(x_n) t_n
</pre>

ややこしそうに書いてますが、アバウトにぶっちゃけると「ハズレのときは、そのハズレが出てしまった特徴ベクトルを重みベクトルに足すか引くかする」ということです。

こんな方法では最小値に本当に近づくのかどうか必ずしもわからないんですが、「解が存在する場合は」この計算を有限回繰り返すことで解が得られます、というのが「パーセプトロンの収束定理」で、Perceptron のキモです。

ね、ほんとにそんなんでうまく学習できるんですか？　という気になるでしょう。


<h2>手で計算してみる</h2>

論理演算 AND とは……は、さすがに略。

AND の入力ベクトルと目的変数は次のようになります(ベクトルは転置した状態で記述します)。

<pre>
x_0 = (0, 0), t_0 = -1
x_1 = (1, 0), t_1 = -1
x_2 = (0, 1), t_2 = -1
x_3 = (1, 1), t_3 = +1
</pre>

これを学習できるのか、手で計算してみましょう。

特徴関数 φ は x_n そのままでもいいんですが、「φ_0 はバイアスでしょ、jk」と PRML にもあるので、次のように定義します。

<pre>
φ( x_0 ) = (1, 0, 0)
φ( x_1 ) = (1, 1, 0)
φ( x_2 ) = (1, 0, 1)
φ( x_3 ) = (1, 1, 1)
</pre>

これより重みベクトル w も３次元、初期値は w^(0) = (0, 0, 0) となります。

さて、ここから計算していきますが、誤分類ベクトルは本来ランダムに選ぶべきところ、ここでは少々恣意的に選んでいくことにします(理由は後述)。

<hr />

■Step 1

x_0 は w^T Φ(x_0) = 0 ≧ 0 となり t_0 = -1 と合致しません。
よって、「次の w 」は次の式で求まります。

<pre>
w^(1) = w^(0) + φ(x_0) t_0 = (0, 0, 0) - (1, 0, 0) = (-1, 0, 0)
</pre>

ますます不安……この調子で大丈夫？

■Step 2

x_3 は w^T Φ(x_3) = -1 + 0 + 0 < 0 となり t_3 = +1 と合致しません。よって
<pre>
w^(2) = w^(1) + φ(x_3) t_3 = (-1, 0, 0) + (1, 1, 1) = (0, 1, 1)
</pre>

■Step 3

x_1 は w^T Φ(x_1) = 0 + 1 + 0 ≧ 0 となり t_1 = -1 と合致しません。よって
<pre>
w^(3) = w^(2) + φ(x_1) t_1 = (0, 1, 1) - (1, 1, 0) = (-1, 0, 1)
</pre>

■Step 4

x_2 は w^T Φ(x_2) = -1 + 0 + 1 ≧ 0 となり t_2 = -1 と合致しません。よって
<pre>
w^(4) = w^(3) + φ(x_2) t_2 = (-1, 0, 1) - (1, 0, 1) = (-2, 0, 0)
</pre>

■Step 5

x_3 は w^T Φ(x_3) = -2 + 0 + 0 < 0 となり t_3 = +1 と合致しません。よって
<pre>
w^(5) = w^(4) + φ(x_3) t_3 = (-2, 0, 0) + (1, 1, 1) = (-1, 1, 1)
</pre>

■Step 6

x_1 は w^T Φ(x_1) = -1 + 1 + 0 ≧ 0 となり t_1 = -1 と合致しません。よって
<pre>
w^(6) = w^(5) + φ(x_1) t_1 = (-1, 1, 1) - (1, 1, 0) = (-2, 0, 1)
</pre>

■Step 7

x_3 は w^T Φ(x_3) = -2 + 0 + 1 < 0 となり t_3 = +1 と合致しません。よって
<pre>
w^(7) = w^(6) + φ(x_3) t_3 = (-2, 0, 1) + (1, 1, 1) = (-1, 1, 2)
</pre>

■Step 8

x_2 は w^T Φ(x_2) = -1 + 0 + 2 ≧ 0 となり t_2 = -1 と合致しません。よって
<pre>
w^(8) = w^(7) + φ(x_2) t_2 = (-1, 1, 2) - (1, 0, 1) = (-2, 1, 1)
</pre>

<hr />

これで全ての w^T Φ(x_n) が目的変数と合致するようになり、w = (-2, 1, 1) が得られます。
いやあ本当に学習できるんですね。
めでたしめでたし。

もしよければ、各ステップごとに決定面がどのように遷移するか描いてみると面白いかもしれませんね。
w = (a, b, c)、φ = (1, x, y) とすると、w^T φ = a + bx + cy = 0 なので、座標平面の ( - a/b , - a/c ) を通る直線として表せるので。


こんな簡単な例でも、いろいろ問題点が見えてきます。


(1) 収束に時間がかかる。

明確に解があることがわかっている、これだけ低次元の例でも収束に８回かかっています。
オンライン学習ライブラリで「学習を１０回繰り返す」必要があるのも大納得。


(2) 学習データの偏りに強い影響を受ける。

上の計算で(恣意的に)選ばれた誤分類ベクトルを見ると、x_3 が多いことがわかります。これは、正例が x_3 しかないためです。
これを本当にランダムに選んでいたら(そして実際の計算ではおおむねそうせざるを得ない)、収束にはもっと回数を要したでしょう。
あるいは学習データに偏りがなくても、ランダムに選んだ順番がたまたま「ずっと正例でトレーニングした後、今度はずっと負例」なんてことになったら、間違った結果が確実に出てしまうでしょう。


このあたりの問題点を少しでも解消しようとするのが Averaged Perceptron その他の方式、ということでしょうか。
なんにせよ、オンライン学習で「ランダム！」「繰り返し！」と叫ばれる理由がよくわかって、一安心です。


次回は実装。]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/04/perceptron_1.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/04/perceptron_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">NLP</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">パーセプトロン</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">機械学習</category>
        
         <pubDate>Fri, 24 Apr 2009 18:59:02 +0900</pubDate>
      </item>
            <item>
         <title>Perceptron を勉強する前にオンライン機械学習ライブラリを試してみる</title>
         <description><![CDATA[今度は <a href="http://www-users.cs.umn.edu/~karypis/cluto/">CLUTO</a> を試してみた話を書こうと思っていたのですけど、あまりふくらみそうにないので、保留。

オンライン学習(逐次学習)に興味があるので、まずは Perceptron 周辺を勉強し始めてます。
が、その前に動くものをさわっておこうということで、<a href="http://hillbig.cocolog-nifty.com/do/2008/05/oll_29e6.html">岡野原さんのオンライン機械学習ライブラリ</a>をちょっぴり試してみました。

<a href="http://code.google.com/p/oll/wiki/OllMainJa">oll プロジェクトページ(日本語)</a>


<h2>ビルド</h2>

Linux なら ./configure & make でＯＫ。

Windows の場合 oll.hpp の先頭のどこかに

<pre>
#include &lt;algorithm&gt;
</pre>

を追加すれば VC++ でもコンパイルできました。


<h2>サンプルデータ</h2>

サンプルデータには、プロジェクトページにも実験としてあがっている <a href="http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary.html#news20.binary">news20.binary</a> をまずは使ってみることにしましょう。
「シャッフルし、15000例の訓練データと4996例のテストデータに分けた」とあるので、その通りにします。

<pre>
$ sort -R news20.binary &gt; news20.random
$ head -15000 news20.random &gt; news20.train
$ tail -4996 news20.random &gt; news20.test
</pre>

実際に中谷が興味があるのは自然言語処理なので、NLP らしいデータはまた別途用意して試してみたいと思います。
まずはパーセプトロン。


<h2>学習＆テスト</h2>

ビルドが通ってデータの用意もできました。
実行。

<pre>
$ ./oll_train P news20.train news20.model.p -C=2.0 -b=1.0 -I=10
</pre>

15000 例の学習データを用いて、Perceptron(P) で１０回繰り返して学習(-I=10)、結果を news20.model.p に保存します。
学習手法は先頭の "P" を "AP" などに変更することで変えられます。そのあたり、コマンドラインの仕様はプロジェクトページで見てください。

「同じデータを１０回繰り返して学習する」というあたりが、収束(の可能性)がある線形識別器ならでは、でしょうか。
Naive Bayes とかだと同じデータで１０回学習なんて考えられないですから。


<pre>
$ ./oll_test news20.test news20.model.p

Accuracy 94.235% (4708/4996)
(Answer, Predict): (p,p):2425 (p,n):35 (n,p):253 (n,n):2283
</pre>

学習結果を用いて、テストデータを分類させてみて、その正解率を出しています。
(p|n,p|n) は positive|negative を positive|negative に分類した件数で、正解率は 94%。

プロジェクトページの例と大きく違っていないので、一応動いていることが確認できました。
これで自分で勉強＆実装したものとのベンチマークがとれますね。


次は、Perceptron を理解するために、「手で Perceptron を計算」してみます。]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/04/perceptron.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/04/perceptron.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
        
         <pubDate>Thu, 23 Apr 2009 02:08:12 +0900</pubDate>
      </item>
            <item>
         <title>英単語タイピングゲーム iVoca を機能アップデートしました</title>
         <description><![CDATA[<a href="http://ivoca.31tools.com/">英単語タイピングゲーム iVoca</a> にて、本日以下の機能をリリースしました。

<ul>
<li>ブックに問題一覧(単語一覧)ページを追加しました。問題内容や、各単語ごとの「習得度」や「苦手度」を確認できます。</li>
<li>問題および解答の長さを 30文字から 60文字に拡張しました。</li>
<li>'¡'(逆さの！) や '¿'(逆さの？) を解答に使える文字に追加しました。入力はそれぞれ '!' と '?' です。スペイン語の感嘆文・疑問文に対応します。</li>
</ul>


ブック画面の右上に「問題一覧」リンクが追加されています。

<img src="/blog/nakatani/imgs/ivoca200904_1.png" />


問題一覧では、問題と解答の他に「出題数」「習得度」「苦手度」が各単語ごとに表示されます。
例えば<a href="http://ivoca.31tools.com/wordlist?id=600">「難読駅名(JR東日本 東京近郊編)」</a>の問題一覧は以下のようになります(ユーザ登録して遊んでいない場合は出題数・習得度・苦手度は空になります)。

<img src="/blog/nakatani/imgs/ivoca200904_2a.png" />


「習得度」には現在の習得レベルが 100点満点で表示されます。ブックのスコアは、この習得度の合計とほぼ一致するようになっています。
「苦手度」は、「その単語にどれだけ手こずったか」が星０個～５個で表示されます(多いほど苦手)。

問題一覧ではヘッダをクリックするとソートしますので、「苦手度」順に表示させて苦労した単語が確認するなど、今までに学んだことのあるブックについて、いろいろな楽しみ方や役立て方をしてもらえるようになりました。



ずいぶん前からご要望いただいていた「問題と解答の長さを長くして欲しい」にも、ようやく対応しました。

<img src="/blog/nakatani/imgs/ivoca200904_3.png" />

長～い問題や解答については、ご覧のようなイメージで２行で表示されます。



スローペースではありますが、iVoca では引き続きより楽しんで単語を覚えられる機能を追加していきたいと思いますので、よろしくお願いします。]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/04/_ivoca_3.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/04/_ivoca_3.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
        
         <pubDate>Mon, 13 Apr 2009 15:52:31 +0900</pubDate>
      </item>
            <item>
         <title>HAC に使える feature selection を試す</title>
         <description><![CDATA[<br />
プチ間空きましたが、<a href="http://labs.cybozu.co.jp/blog/nakatani/2009/02/iir_1.html">「IIR の「効果的な」階層的クラスタリング」</a>の続き。<br />
「次回は feature selection で次元を落とすのを試してみるべき」と書いたとおり、feature selection(特徴選択)を行ってみます。<br />
<br />
要は「２５文書しかないのに 8000 語とか多すぎる。文書増えてったらガクブル。よし減らそう。全部必要な訳ないしね。でも、どうやって？」という話です。<br />
<br />
IIR では、Chapter 13 にて feature selection を扱っており、
また Chapter 18 では LSI(latent semantic indexing)、乱暴に言えば固有ベクトルを求めることでその空間が本来持っている次元数(階数)を導いている。<br />
<br />
しかし、Ch.13 の内容は Bayesian のような「教師有り分類」の場合の feature selection しかカバーしておらず。<br />
固有ベクトルを求めるのは bag of words の世界で本質的に最も正しい気はしますが、追加学習のコストが高そう。<br />
Web などの文書も単語もあとからあとから追加されるシチュエーションでは、なかなかしんどそうです(現在の個人的な印象。いい方法があるのかもしれません)。<br />
<br />
というわけで
がちゃがちゃ検索して適当な論文を探してみました。<br />
<br />
<a href="http://www.csee.umbc.edu/cadip/2002Symposium/">2002 CADIP Research Symposium</a> で発表されたとおぼしき <a href="http://www.csee.umbc.edu/cadip/2002Symposium/kogan.pdf">"Feature Selection and Document Clustering"</a> が、k-Means など「教師無し分類」における feature selection の効果的な手法を取り扱っていたので、これを実装してみることにしました。<br />
<br />]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/03/hac_feature_selection.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/03/hac_feature_selection.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">HAC</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">IIR</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">feature selection</category>
        
         <pubDate>Tue, 10 Mar 2009 18:41:33 +0900</pubDate>
      </item>
            <item>
         <title>英単語タイピングゲーム iVoca をアップデートしました</title>
         <description><![CDATA[本日、<a href="http://ivoca.31tools.com/">英単語タイピングゲーム iVoca</a> をアップデートしました。
更新内容は次の通りです。

<ol>
<li>サイボウズ(R) ネットID のアカウントから、iVoca 独自のアカウントシステムに移行します。アカウントデータは移行されますので、ご利用のユーザーにおかれましては、別途アカウントを作成する必要はございません。<br />
また、mixi OpenID でご利用いただいていたユーザーにおきましては、従来通り mixi OpenID にて引き続きご利用いただけます。
</li>
<li>学習データを公開および API で取得できるようになります。</li>
<li>iKnow! 連係機能を追加します。第１弾として、iKnow の単語リストを iVoca で学習することができるようになります。</li>
</ol>

iVoca の認証はこれまで「外部認証のみ」だったわけですが、<a href="http://d.hatena.ne.jp/n_shuyo/20080929/openid">API をどうするか、などなどなどの頭の痛い問題</a>がありました。
今回、iVoca が利用していた外部認証の一つ「サイボウズ(R) ネットID」がサービスを停止することになったので、これを機に独自認証の機能を提供することにいたしました。
これで API を提供できる道筋がついたので、まずは第一弾として、個人の学習履歴データを取得できるようにしました。

iVoca アカウントを設定し、公開設定を「公開」に指定した後、

<pre>
http://ivoca.nsdev1/api/progresses/[iVoca アカウント名]
</pre>

この URL にアクセスすることで、熱心に学習している５件のブックについて、日々の学習履歴が json 形式で得られます(フォーマットについては後日解説します……すいません)。

なお、従来「サイボウズ(R) ネットID」をご利用いただいていた方のログインID(メールアドレス)とパスワードは、上の注意書きの通りそのまま iVoca アカウントのほうに移行させていただいていますので、「ログイン」をクリックした後、iVoca アカウントのログインフォームにてメールアドレスとパスワードを入れてログインしてください。

mixi OpenID でご利用いただいていた方はそのまま引き続きご利用いただけますし、setting メニューにて iVoca アカウントも設定して、併用することも出来るようになっています。


そして、今回の目玉機能は <a href="http://www.iknow.co.jp/">iKnow!</a> 対応です。

<a href="http://developer.iknow.co.jp/docs/api">iKnow の API</a> を利用して、<a href="http://ivoca.31tools.com/books?mode=iKnow">iKnow の「学習アイテムリスト」を iVoca で学ぶ(遊ぶ)ことができるようになりました</a>。
これにより iKnow の素晴らしい問題リストを iVoca で覚えられるようになっただけでなく、iKnow にて音声データのある単語はちゃんとゲーム中に発音してくれるようになっています。


iVoca で遊べる iKnow リストの一例：
<ul>
<li><a href="http://ivoca.31tools.com/book?id=331">基礎英語 ステップ１</a></li>
<li><a href="http://ivoca.31tools.com/book?id=338">【2008オバマ氏勝利演説：全音声付き】 </a></li>
<li><a href="http://ivoca.31tools.com/books?tag=TOEIC">タグ「TOEIC」の一覧</a></li>
</ul>


ここに挙げたリスト以外にも、iVoca のユーザであればどなたでも、iKnow のどのリストでも iVoca で学べる(遊べる)ように登録することができます。
iVoca の <a href="http://ivoca.31tools.com/books?mode=iKnow">iKnow メニュー</a> から、iKnow のリスト画面の URL ( http://www.iknow.co.jp/lists/.... という形式のもの) を指定するか、同じ画面の iKnow リスト検索を使って利用したいリストを探してください。
なお、初めて iVoca にて利用するリストの場合には、学習データ初期化のための処理が10秒～１分程度かかります。


これほど素晴らしいデータを API で提供してくれているセレゴさんには、本当に感謝します。ありがとうございます。
これを第１弾として、逆に iVoca のブック(単語帳)を iKnow に登録する機能や、iVoca と iKnow の学習データを一元化して見せる機能とか、まずは iVoca でざっと覚えて、特に苦手な単語だけを選んで iKnow のリストを自動的に作るとかとか、いろいろ夢はふくらむんですが、順番にちょっとずつ、ですね。
まずは「問題の長さをもうちょっと長くできると嬉しい」という要望をいただいているのに、まだほうったらかしなので、こちらをやっつけるところからでしょうかね。


なお発音機能は Flash Player にて、バックエンドで iKnow アイテム情報を順次取得して実現しています。そのため、音声を発音するようになるまで少し遅れたり、ごく一部の単語のみしか発音してくれない、という状態になる場合があります。iKnow が混雑する時間帯は特に起きやすいようです。
改善を図りたいと考えてはいますが、あらかじめご了承ください。

]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/02/_ivoca_2.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/02/_ivoca_2.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
        
         <pubDate>Mon, 16 Feb 2009 22:07:40 +0900</pubDate>
      </item>
            <item>
         <title>iVoca メンテナンスのお知らせ</title>
         <description><![CDATA[英単語タイピングゲーム iVoca につきまして、以下の日程でメンテナンスを実施させていただきます。

・2009年2月16日(月) 18:00 ～ 20:00

メンテナンス中は iVoca をご利用していただくことが出来ませんので、ご了承ください。
メンテナンスが終了次第、サービスを再開いたします。

今回のメンテナンスにおきまして、以下の更新を予定しております。

<ul>
<li>サイボウズ(R) ネットID のアカウントから、iVoca 独自のアカウントシステムに移行します。アカウントデータは移行されますので、ご利用のユーザーにおかれましては、別途アカウントを作成する必要はございません。<br />
また、mixi OpenID でご利用いただいていたユーザーにおきましては、従来通り mixi OpenID にて引き続きご利用いただけます。
</li>
<li>学習データを公開および API で取得できるようになります。</li>
<li>iKnow 連係機能を追加します。第１弾として、iKnow の単語リストを iVoca で学習することができるようになります。</li>
</ul>
]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/02/ivoca_4.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/02/ivoca_4.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">iKnow</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iVoca</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">サイボウズ(R) ネットID</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">メンテナンス</category>
        
         <pubDate>Tue, 10 Feb 2009 18:54:56 +0900</pubDate>
      </item>
            <item>
         <title>IIR の「効果的な」階層的クラスタリング</title>
         <description><![CDATA[<a href="http://labs.cybozu.co.jp/blog/nakatani/2009/01/iir.html#more">IR の階層的クラスタリングを試す</a>の続きです。
"efficient" な HAC(hiererachical agglomerative clustering) を実装してみます。
今回は、コード全体をぺたぺた貼り付けるのも見にくいし面倒だしということで、github に置いてみました。

<pre>
git://github.com/shuyo/iir.git
</pre>

前回作った corpus パックも commit してありますので、 clone すればいきなり動く、はず。

<pre>
git clone git://github.com/shuyo/iir.git
cd iir/hac
ruby hac.rb 4million.corpus
</pre>

おのおの手元でちょこちょこ改変して試してみるには CodeRepos より git の方が向いてるんじゃあないかなあと思ったんですが、git まだ使いこなせてないのでなんか色々間違ってるかも。


実装の説明に行く前に、まず前回の naive HAC (=single-link clustering) はなぜ inefficient だったか、という話を簡単に。

クラスタを近い(=類似度が高い)順に結合していくのが HAC の基本ですが、そうなると当然「クラスタ同士の類似度」を計算しなくてはならなくなります。
一番素直で簡単のだと、「クラスタ間で最も近い(類似度が高い)ベクトル同士の類似度を、クラスタ間の類似度とする」という方法があるのですが(これが single-link clustering)、これが「大きいクラスタほど有利」な計算方法であることは明らかでしょう。
このため、「大きいクラスタが、対象を一つずつ拾っていってしまう」という現象(chaining)が発生してしまい、クラスタリングとして役に立たなくなってしまうことがあるわけです。
それを解消するための方法として、IIR の 17.2～17.4 では single-link clustering 以外に complete-link clustering, centroid, group-average など、チェインニングが起きにくい「クラスタ同士の類似度」を紹介しています。これらの詳細については、ここでは省きますね。
前回も紹介した<a href="http://www.kamishima.net/jp/clustering/">「クラスタリングとは (クラスター分析とは)」</a>にもこれらの方法が載っています。ただし、こちらは類似度として(ユークリッド)距離を使用しているので、IIR の cosine similarity とは大小が逆だったり、距離の場合に有効な「ウォード法」が紹介されていたりします。


また、IIR 17.2.1 では、前回の naive HAC の計算量は Θ(N^3) だったのですが、priority queue を導入すると Θ(N^2 log N) にできるよ、という話をしています。

それらを合わせたアルゴリズムの pseudo code が掲載されているので、今回はそれに沿って実装してみるわけです。


]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/02/iir_1.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/02/iir_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">HAC</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">IIR</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">centroid</category>
        
         <pubDate>Tue, 03 Feb 2009 19:26:46 +0900</pubDate>
      </item>
            <item>
         <title>IIR の階層的クラスタリングを試す</title>
         <description><![CDATA[Pathtraq で Web ページの自動分類を手がけてみて。

Web ページは日々どんどん変わっていくのでフィルタは常に更新されなければいけないんですが、そのためには適切なタイミングに、適切な学習データを用意しなければならない。大変。
メンテナンスフリーが理想ですが、もちろん難しい。
現実的なところとしては「追加学習が必要なことを検知して、適切な学習データの候補を提案してくれる」というものが作りたいなあ……などなど考えているわけです。


そこらへんも含めて、自然言語処理とか機械学習とかそこら辺のお勉強をしてるんですが、実際に手を動かさないとわかんないですよねー。

というわけで、 "Introduction to Information Retrieval" の Chapter 17 "Hierarchical clustering" に沿って、ドキュメントの分類器を作ってみました。
ポイントは、教師無し分類でどれくらいのことができるのか。
なので Chapter 16 の K-means でも良かったんですが、dendrogram で結果が得られるのが楽しそうだったので、手始めに 階層的クラスタリング にしました。
K-means も別途試してみるつもり。


"Hierarchical clustering"(階層的クラスタリング) については、日本語での説明だとこちらのページがわかりやすいです。

<ul>
<li><a href="http://www.kamishima.net/jp/clustering/">クラスタリングとは (クラスター分析とは)</a></li>
</ul>

「似ているもの」同士を結んで、全体を１つの２分木のようなもの（デンドログラム）に分類する手法です。おのおのの枝分かれについて閾値が明確なので、この結果から任意の個数のクラスタを得ることが出来るのが特徴です。
というわけで「デンドログラム」を描くのがひとまず目指すゴール。

]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2009/01/iir.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2009/01/iir.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自然言語処理</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">HAC</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">IIR</category>
        
         <pubDate>Fri, 30 Jan 2009 15:27:26 +0900</pubDate>
      </item>
            <item>
         <title>iVoca が日本語(ローマ字入力)に対応、なんでも暗記サービスになります！</title>
         <description><![CDATA[<a href="http://ivoca.31tools.com/home">単語をタイピングで覚える iVoca(アイボキャ)</a>。
問題が上から落ちてくるので、どんどん答えていくだけで単語を覚えてしまえるサービスです。

タイピングということはやっぱり英語だけなのか……
これが日本語でもできたら、英語から日本語もできるし、それこそ英語以外のいろいろなことを覚えるのに使えるのになあ。

と思っていたあなたに朗報！
iVoca が日本語入力に対応しました。

<script src='http://ivoca.31tools.com/widget?id=142' type='text/javascript'></script>

<a href="http://ivoca.31tools.com/book?id=142">「iVoca 難読漢字」</a>です。
ちょっぴり難しめの漢字や熟語が降ってきますので、読みを「ローマ字入力で」答えてください。
もちろん今までの iVoca と同じで、ユーザ登録すれば漢字ごとの成績を覚えてくれて、苦手な問題を重点的に暗記できます。


仮名漢字混じりの問題ももちろんＯＫ！

<script src='http://ivoca.31tools.com/widget?id=164' type='text/javascript'></script>

<a href="http://ivoca.31tools.com/book?id=164">「基本英単語100！(意味編)」</a>は、iVocaで楽しんでもらっていた「基本英単語100！」の意味を答えるバージョンです。
例えば問題で "see" が落ちて来たら "見る" と答えるわけですね。

漢字の入力はどうするのかって？　変換とか面倒でしょう？

いえいえご心配なく！
なんと "mi" と入力した時点で "見" が表示されます。
変換とか全くいらないので、とっても楽ちん。覚えることだけに集中できます。

他にも<a href="http://ivoca.31tools.com/book?id=168">「ハリー・ポッター１巻を読むのに必要な英単語(意味編)」</a>や、<a href="http://ivoca.31tools.com/book?id=159">「都道府県の県庁所在地」</a>など、日本語入力に対応したブックはどんどん増えていきます。


もちろん iVoca なので、ユーザが自由に問題を作ることができます。


これからは暗記ものならだいたいなんでも iVoca を使ってもらえますね。
英語だけじゃなくて、様々な Vocabulary (語彙)を増やすのに iVoca を活用してもらえると嬉しいです。


そうそう。
とりあえず覚えなきゃいけないことがない人でも、「全く変換とかしないのにどんどん漢字が表示されていく」という新感覚はぜひ一度楽しんでもらいたいです(笑)。
なかなか気持ちいいですよ！


続きには「日本語対応ブックの作り方」。

]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/12/ivoca_3.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/12/ivoca_3.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">ローマ字入力</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">日本語</category>
        
         <pubDate>Wed, 10 Dec 2008 11:49:24 +0900</pubDate>
      </item>
            <item>
         <title>iVoca が Yahoo! ブログへの貼り付けに対応しました＆RSS＆苦手単語ランキング</title>
         <description><![CDATA[<br />
<a href="http://ivoca.31tools.com/">ゲームで英単語を覚える iVoca</a> に新しい機能を追加しましたのでご紹介。<br />
<br />
<br />
<h3>■ Yahoo! ブログにブログパーツを貼り付けられるようになりました。</h3>
<br />
埋め込み用タグに "Yahoo" を追加！<br />
<a href="http://blogs.yahoo.co.jp/">Yahoo! ブログ</a>の Wiki 文法を使って iVoca を貼り付けられるようになりました。<br />
<br />
<img src="http://ivoca.31tools.com/img/blogs/yahoo_blog.png" /><br />
<br />
ただ残念ながら、Yahoo! ブログのブログパーツは、パーツをクリックして他のページに遷移することを禁止しているため、ブログパーツからの直接ログインなどは現状できなくなってしまっております。こちらについては対策を検討したいと考えています。<br />
<br />
あとは……そうですね、mixi に貼り付けられるようになったらとっても嬉しいんですがｗ<br />
<br />
<br />
<h3>■ 新着ブック RSS 配信</h3>
<br />
新しく作成されたブックや更新されたブックについて、RSS での配信を開始しました。<br />
RSS リーダーなどで <a href="http://ivoca.31tools.com/api/booksrss">http://ivoca.31tools.com/api/booksrss</a> を購読してもらえば、興味のあるブックを見逃しません。<br />
<br />
<br />
<h3>■ 「苦手な問題ランキング」を追加</h3>
<br />
みんながどういう単語を苦手としているか、ブックごとにランキングを表示しています（まだ遊んでいる人が少ないブックでは表示されません）。<br />
<br />
<img src="http://ivoca.31tools.com/img/blogs/nigate.png" /><br />
<br />
どれくらいの難易度かとか、ブックにどういう雰囲気の単語が含まれているとか、みんなこんな単語が苦手なんだ～とか、いろいろ楽しんでもらえるかと。<br />
問題を作ってくれた人にはどの単語や表現が難しいかとか意外とわからないものなので、ブック作成者にはなおさら興味深く感じてもらえるんじゃあないかと思っています。<br />
<br />
<br />
<br />
今後もまだまだ機能追加拡充を予定していますので、お楽しみに！<br />
<br />
]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/11/ivoca_yahoo_rss.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/11/ivoca_yahoo_rss.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">RSS</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Yahoo! ブログ</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">ブログパーツ</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">苦手単語</category>
        
         <pubDate>Wed, 19 Nov 2008 23:22:10 +0900</pubDate>
      </item>
            <item>
         <title>「英単語」タイピングゲーム iVoca が英語以外にも対応しました </title>
         <description><![CDATA[<br />
iVoca(アイボキャ) はユーザが自由に問題を作成することができる「英単語を覚える」タイピングゲームです。<br />
<br />
といっても、使われる文字がアルファベットに限ってよければ、あるいは問題文の方にもってくるのなら、以前から英語以外の問題を作成できていました（例:<a href="http://ivoca.31tools.com/book?id=50">「ポルトガル語基礎会話とサバイバル単語」</a>、<a href="http://ivoca.31tools.com/book?id=51">「動物の単語(ハングル版)」</a>）。<br />
<br />
今回は！<br />
イタリア語やフランス語、ドイツ語などで使われるアクセント付きアルファベットなどの問題として使えるようになりました。<br />
例えばイタリア語で「木曜日」は "giovedì" のように i にアクセントが付いた文字が使われるのですが、これをそのまま問題として登録できるわけです。<br />
ゲームの中でユーザが入力するときは、アクセントを無視して「Ｉ」キーでタイプ。アクセント付き文字をどうやって入力するかじゃあなくて、単語を覚えるためのゲームなので、最も簡単な方法で遊んで覚えて欲しいですからね！<br />
<br />
他にもどういう文字が使えるかは、ヘルプの<a href="http://ivoca.31tools.com/help.html#char">「問題に使える文字の種類」</a>を参照してください。<br />
<br />
早速イタリア語のブックを作ってみました。<br />
イタリアと言えばやっぱり！　おいしいごはん。というわけで第１弾は「イタリア語の食べ物」。<br />
<br />
<script src='http://ivoca.31tools.com/widget?id=104' type='text/javascript'></script>
<br />
iVoca のルーツは、素人時代に作ったイタリア語のタイピングゲーム。<br />
その頃から「このゲームを、学習度とか覚えてくれる、ちゃんとしたサービスにしたいな」とずっと思ってきたのが iVoca になりました。<br />
でも、やっぱり多くの人に受け入れてもらうためには、最初は英語を優先せざるをえず……<br />
こうしてイタリア語の問題も作れるようになって、夢の一つがようやく叶いました、ね。<br />
<br />
というわけで、イタリア語の問題のストックはまだまだあります。第２弾第３弾もお楽しみに！<br />
<br />
]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/11/_ivoca_1.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/11/_ivoca_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
        
         <pubDate>Tue, 04 Nov 2008 18:30:36 +0900</pubDate>
      </item>
            <item>
         <title>IE &amp; Javascript で英語をしゃべらせる方法 </title>
         <description><![CDATA[「（ちょっと設定しないといけないけど）何もインストールしないで、ブラウザに英語を喋らせるサンプル」を作ってみました。IE 限定。<br />
元ネタは<a href="http://builder.japan.zdnet.com/member/u336453/blog/2008/10/22/entry_27017272/">「JavaScript などで英語を喋らせる方法」</a>。<br />
<br />
<dl>
<dt>iVoca おしゃべりモード (IE & Javascript で英語をしゃべらせるサンプル)</dt>
<dd><a href="http://ivoca.31tools.com/speak_text.html">http://ivoca.31tools.com/speak_text.html</a></dd>
</dl>
<br />
任意の英文を喋らせてみるサンプルと、<a href="http://ivoca.31tools.com/">英単語タイピングゲーム iVoca</a> を SAPI に対応させて、タイピングした英単語をしゃべってくれる「おしゃべりモード」を試験的に実装したものを紹介しています。<br />
<br />
細かい手順やセキュリティに関する注意事項などはリンク先をご覧いただくとして、ここでは仕組みを簡単に説明。<br />
<br />
Windows XP や Vista では SAPI (Microsoft Speech API) が標準搭載されていて(Windows 2000 にも入っているとか。手元に環境がないので確認できませんが)、そいつが音声合成を行う ActiveX コンポーネントを持っているので、それをブラウザ上の Javascript から呼び出せれば OK。<br />
なのですが、残念ながらその ActiveX はブラウザから呼べるようになっていません（「実行しても安全とマーク」されていない）。<br />
<br />
それでもなんとかして呼び出したいなら、セキュリティの設定の方をいじる必要があります。<br />
具体的には Internet Explorer のセキュリティオプションで「スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行」を「有効にする」に設定することで SAPI の ActiveX コンポーネントをブラウザの Javascript から呼び出せるようになります。<br />
もちろん、この設定項目はどこからどう見ても危険。せめて「信頼済みサイト」で行っておくべき。というあたりの手順はサンプルのページを参照のこと。<br />
間違っても「インターネットゾーン」でこの設定を行わないように……！！！！<br />
<br />
SAPI を呼び出せるようにしてしまえば、後は簡単。<br />
SAPI の音声合成コンポーネントを取ってきて、その Speak メソッドに発音させたい英文を渡すだけです。<br />
<br />
<pre>
var spkr = new ActiveXObject('SAPI.SpVoice');
spkr.Speak("Hello iVoca!");
</pre>
<br />
サンプルの方では、try ～ catch で囲んで SAPI を呼び出せない場合の手当をしたり、Flash (iVoca のゲーム本体) から呼び出すためにほげほげしたりしてます。<br />
<br />
XP と Vista でインストールされている SAPI のバージョンが違っていて、実は Vista (SAPI 5.3) の方が女性の声で音質も良く、発音も自然できれい。合成じゃなくて録音じゃないかというくらい。<br />
XP (SAPI 5.1) のももちろん十分すごいんですが、音質のかなり悪い男性の声、発音もくせのある感じ……。Vista のを聞いた後だと、正直聞くに堪えないと言わざるを得ない。<br />
Vista にしてしまって、「あーなんか一つでもいいから Vista にして良かったと思えることないかなあ。もう何でもいいんだけど……」と日頃嘆いている方には、ぜひ Vista の発音を聞いて欲しいですね！！！<br />
もうほんと、このことだけで Vista にして良かったと思えること請け合いです……気の持ちようによっては。<br />
(ちなみに Vista の女性は "Microsoft Anna"、XP の男性は "Microsoft Sam" というお名前です）。<br />
<br />
サンプルのページでは<a href="http://ivoca.31tools.com/book?id=90">「アメリカ合衆国の５０州」</a>を取り上げてみたんですが、こういうのは特に正しい発音を聞きながら勉強したいからピッタリですよね。<br />
あと、サンプルにするのをつい自重してしまったんですが、<a href="http://ivoca.31tools.com/book?id=76">「ガンダムの機動兵器(型式→英語名)」</a>もかなり強烈にオススメ。想像以上にまともに発音してくれるのでウケます。<br />
<br />
iVoca ではユーザさんに単語帳を自分で作ってもらえるのですが、テキストなら誰でも作れるけど、音声はなかなかそういうわけにはいかない。<br />
でも、英文や単語を与えるだけでこれほど正確に発音してくれる SAPI がブラウザから普通に使えるようになれば、ユーザさんが作ってくれた問題の価値が何倍にも増しますし、他にもいろんな利用シーンが考えられて、いろいろとっても楽しそうな想像がふくらむんですが……音声合成だけでもブラウザから「安全に」使えるようにならないかなあ。
<br />
実際、発音している間はブラウザや Flash の動作が止まってしまうのさえなんとかなれば、個人的には常用したい。<br />
setTimeout でくるんだり、iframe 内で実行させるようにしてみたり、といくつか試してみたのですが、今のところこれを回避できずにいます。うーん。<br />
<br />
]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ie_javascript.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ie_javascript.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">SAPI</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iVoca</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">英語</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">音声合成</category>
        
         <pubDate>Tue, 28 Oct 2008 17:23:50 +0900</pubDate>
      </item>
            <item>
         <title>iVoca でブック(出題用の単語帳)を作るには </title>
         <description><![CDATA[<br />
<a href="http://ivoca.31tools.com/">英単語タイピングゲーム iVoca</a> は楽しんでいただけましたか？<br />
自分の興味のあるブック(単語帳)は一通りクリアしてしまったから、もう勉強する（遊ぶ）ものがないよう、という人もいらっしゃったりします？<br />
そういうとき、iVoca トップページの上にある「人気のタグ」からまだ勉強していないブックを探すのもいいですが、iVoca にはブックを作る機能があるので、自分で好きなブックを作ってしまうのも一つの手。<br />
<br />
「自分で作ったブックなんて、全部答え知ってるからおもしろくないでしょう」って？<br />
いえいえ、<a href="http://d.hatena.ne.jp/nishiohirokazu/20081016/1224127055">「他人が作ったブックで遊ぶよりも自分で作ったブックで遊ぶ方が面白いかも」</a>という意見もありますよ。<br />
ここはだまされたと思って一度作ってみちゃいましょう！<br />
<br />
というわけで、iVoca ブックの作り方をご紹介。とっても簡単です。<br />
<br />
iVoca の画面の右上にあるメニューの中から、"create book" をクリックするとブック作成画面が開きます。<br />
<img src="/blog/nakatani/imgs/create_book.png" /><br />
<br />
入力項目がいくつかありますが、最低限記入が必要なのは「ブック名」と「問題」です。<br />
ブック名は内容がわかるよう適当に短めに記入しましょう。<br />
<img src="/blog/nakatani/imgs/book_name.png" /><br />
<br />
問題＆解答は半角カンマ区切り、「問題,解答」か「解答,問題」のどちらでもお好きな形式で、問題の個数だけ改行区切りで並べればＯＫ。<br />
最低５問あれば登録して遊べちゃいます（さすがに５問くらいないと、１ゲームいかないうちに確実に終わってしまいます……）。<br />
<img src="/blog/nakatani/imgs/question.png" /><br />
<br />
適当に作ってみただけだからいきなり他の人に遊んでもらうのは恥ずかしいなあ……という場合は「公開範囲」を「自分専用」に設定すれば、そのブックを見えるのも遊べるのも自分だけになりますのでとっても安心。<br />
ブックが充実して、みんなに遊んでもらいたくなった場合はもちろん「公開範囲」を「全体に公開」などに変更するのを忘れずに！<br />
<img src="/blog/nakatani/imgs/accessible.png" /><br />
<br />
登録したブックはトップページの「新着ブック」に表示されます！<br />
<img src="/blog/nakatani/imgs/arrival.png" /><br />
<br />
ブックを登録した後に、単語の追加とか変更とかも簡単簡単。<br />
「新着ブック」に表示されているブック名をクリックするとかしてブック画面を開くと、右上のブック作者のアイコンの横に「このブックを編集」ボタンがあるので、クリック。<br />
すると新規登録の時と同じブック作成画面が開くので、同じように単語の追加や修正をしてください。<br />
<img src="/blog/nakatani/imgs/edit_book.png" /><br />
<br />
<br />
<h3>どんなブックを作ろうかな？</h3>
<br />
もちろん誰でも自由に好きなブックを作って勉強したり楽しんじゃったりしていいんですが、例えばどんなブックが楽しそうかなあ。<br />
<br />
<dl>
<dt>英語の文章、小説、漫画を読んでいて、わからなくて辞書引いちゃった単語を覚えちゃう</dt>
<dd><a href="http://ivoca.31tools.com/book?id=69">ハリー・ポッター１巻を読むのに必要な英単語</a>、<a href="http://ivoca.31tools.com/book?id=84">The Great Gatsby を読むのに必要な英単語</a></dd>
<dt>英語の映画やTVを見たり曲を聴いたりしていて、セリフや歌詞に出てきた単語を覚えちゃう</dt>
<dd><a href="http://ivoca.31tools.com/book?id=89">リトルチャロ Episode 1～3</a></dd>
<dt>スポーツとか経済とか、興味のある範囲の言葉を用語集的に集める</dt>
<dd><a href="http://ivoca.31tools.com/book?id=56">レシピによく出てくる単語</a>、<a href="http://ivoca.31tools.com/book?id=79">OpenID Authentication 2.0 に関連する英単語</a></dd>
<dt>試験対策とかで出題範囲の単語を効率よく暗記したい</dt>
<dd><a href="http://ivoca.31tools.com/book?id=73">工業英検3級対策 Vocabulary "M-R"</a></dd>
<dt>全然あんまり英語と関係ないブックを作って遊んじゃう</dt>
<dd><a href="http://ivoca.31tools.com/book?id=76">ガンダムの機動兵器(型式→英語名)</a>、<a href="book?id=70">タイ語で数字</a></dd>
</dl>
<br />
iVoca に実際に登録されてるブックの傾向と、どんなブックがあるかをさらりとあげてみました。<br />
勝手に整理してみただけなので、もちろんこの範囲に収まってなきゃいけないなんてことないので、好きなブックを作って勉強してね！（遊んでね！）。<br />
<br />
そうそう、ちょいと単純な雑学クイズっぽいのもいいなあ、なんて思って、今回のブックの作り方ご紹介を用意するついでにこんなブックを作ってみました。<br />
Have fun!<br />
<br />
<script src='http://ivoca.31tools.com/widget?id=90' type='text/javascript'></script>

http://labs.cybozu.co.jp/blog/nakatani/imgs/blogparts.png]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ivoca_2.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ivoca_2.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
        
         <pubDate>Tue, 21 Oct 2008 16:37:19 +0900</pubDate>
      </item>
            <item>
         <title>iVoca ブログパーツを貼り付けてみよう</title>
         <description><![CDATA[<br />
10/15 にリリースしました<a href="http://ivoca.31tools.com/">英単語タイピングゲーム iVoca</a>。<br />
<br />
その iVoca のゲーム部分をブログパーツとして、あなたのサイトやブログに貼り付けることが出来るようになっています。<br />
ブログパーツ貼り付けは iVoca にユーザ登録しなくてもできます！<br />
<br />
<script src='http://ivoca.31tools.com/widget?id=69' type='text/javascript'></script>
<br />
やり方は簡単。<br />
まず iVoca で貼り付けたいブックを選びます。<br />
iVoca のトップページに「人気のブック」が出ていますし、「人気のタグ」をクリックすれば(例えば<a href="http://ivoca.31tools.com/books?tag=%E5%88%86%E9%87%8E%E5%88%A5">「分野別」をクリックしてみる</a>)、そのタグで分類されたブックの一覧が表示されるので、そのあたりから探してみましょう。<br />
<br />
<a href="http://ivoca.31tools.com/book?id=69">「ハリー・ポッター１巻を読むのに必要な英単語」</a>を貼り付けるなら、ブック名をクリックして開いたブック画面の右下にある「埋め込み用タグを表示」ボタンを押します。<br />
<br />
<img src="/blog/nakatani/imgs/blogparts.png" /><br />
<br />
ブログパーツの貼り付け方の選択肢が出てきますので、あなたの使っているブログサービスに合わせて「script 形式」または「Google Gadgets 形式」を選んでください。<br />
script タグを使えるブログなら「script 形式」を選びましょう。はてなダイアリーの場合は「Google Gadgets 形式」を選んでくださいね。<br />
ブログでどのような形式のブログパーツが使えるかわからない場合は、ブログのサービス元にてご確認ください。<br />
<br />
<img src="/blog/nakatani/imgs/blogparts2.png" /><br />
<br />
形式を選ぶと、貼り付け用のタグがそのすぐ上の欄に表示されるのでコピーして（クリックすればタグ全体が選択されるので、右クリックしてコピーを選ぶだけでＯＫ）、ブログの本文書き込み欄などにペースとしてください。<br />
これでゲームをブログに貼り付けられました。かんたん！<br />
<br />
]]></description>
         <link>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ivoca_1.html</link>
         <guid>http://labs.cybozu.co.jp/blog/nakatani/2008/10/ivoca_1.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">iVoca</category>
        
        
         <pubDate>Fri, 17 Oct 2008 14:25:57 +0900</pubDate>
      </item>
      
   </channel>
</rss>

