風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

日本語対応「Spritzもどき」をTwitter上で体験するブックマークレットを試作

Twitterの個別ツイートを対象として、日本語対応の「Spritzもどき」を体験できるブックマークレットを試作してみた。

ブックマークレット(Hatena::Let)

TwitSpritz - Hatena::Let

登録方法
  1. リンク先をブラウザで開く。
  2. 「TwitSpritz」というリンクを、Webブラウザのお気に入り/ブックマークツールバー等に登録。
使い方

Twitterの特定ツイートを開いた状態で、登録したブックマークレットを実行(お気に入り/ブックマークツールバー等から選択)すると、

風柳 on Twitter: "http://t.co/o3lK7S1A0l 視点を固定して高速で文章を読む「Spritz」もどきをTwitterの個別ツイートで体験するブックマークレット作ってみた。一応日本語対応。ブログ記事は後日。"

こんな感じでツイート内容をSpritzっぽく表示できる。
プルダウンでwpm指定(1分あたりのワード数・厳密にはワードじゃないが…)、[再]ボタンで再表示。

独り言など

日本語で体験してみたかった

少し前に話題になった、

文字を次々に表示させ、まるで話すようなテンポで文章を読み進めていけるようにする技術が「Spritz」です。

単語が目に飛び込んできてすごい速度で文章を読めるようになる「Spritz」 - GIGAZINE

これに、自分も興味をひかれたのだけれど、

Spritz

では、日本語は未対応(2014/3/25現在)。


また、OpenSpritzというブックマークレットもあるが、

すごい速度で文章が読めるようになる「Spritz」をウェブページで使用可能にするブックマークレット「OpenSpritz」 - GIGAZINE
Announcing OpenSpritz - A Free Speed Reading Bookmarklet - Gun.io

こちらもどうも日本語のページだとうまく動作しないっぽい。


なので、自分で作ってみた次第。

仕組みは単純

形態素解析エンジンのMeCabと、日本語係り受け解析器のCaboCha/南瓜に完全依存。
そもそも今回初めて使用したので、使い方もよくわかっていなかったりするけれども…。
テキスト解析:日本語係り受け解析 - Yahoo!デベロッパーネットワークに完全に依存。
こちらも今回初めて使用、やっぱりよくわかっていなかったりする…。

CaboChaに付属していたPython用ライブラリを用いて、JavaScript経由で渡されたTwitterのツイート内容を文節単位に分けている。
その上で、前後の文節が係り受け関係にあれば、なるべく一つにまとめて表示するようにしている(ただし、13文字以内に収まらなければくっつけない)。
文節単位だと細切れ過ぎる気がしたのだが、この辺りは感覚の違いが出そう。

Twitterのツイート内容を日本語係り受け解析APIに渡して、結果をもとに文節単位に分けている。
前後の文節に係り受け関係があればまとめるようにしようかと思ったけれど、いくつかのツイートで試してみて、結局文節単位の方がリズムに乗って読める気がしたので、現在は止めている。


なお、ORP(Optimal Recognition Position:最適認識位置)については考慮していない。
単純に13文字以下の場合、赤色の"┃"位置(7文字目)を基準にセンタリングしているだけ。
そもそも、日本語の単語や文節に ORP の概念があてはまるのかどうかもよくわかっていない。


■2014/03/26追記
CaboCha の説明をよく読むと、

  • 付属のモデルファイルは, 株式会社毎日新聞社の御厚意により 配布されている毎日新聞記事CD-ROM版を基に学習, 作成されたものです。付属のモデルファイルは, 毎日新聞データ使用許諾に関する覚書に記載の利用条件内で その使用及び, 複製,改変,頒布が認められます. そのため配布しているモデルをそのままの形で使うことは, 研究目的, 個人利用に限られます. 誤解ないように言っておくと, これは, CaboCha の利用が研究目的に限定されていることを意味しません。 ご自身で用意なさったコーパスを基に, 独自にモデルを学習, 作成した場合は研究目的以外の利用が可能です。
Google Project Hosting

とかかれており、

  • この「Spritzもどき」は「研究目的, 個人利用」に含まれるかというと、怪しい。
  • 自分でコーパスを用意したり、モデルファイルを作ったりするようなスキルはない。

ということで、使用は中止。


代わりにYahoo!の日本語係り受け解析APIを使うことに。
このため、レスポンスが多少遅れるようになってしまった。

ちなみにこちらは、

日本語係り受け解析Web APIは、24時間以内で1つのアプリケーションIDにつき50000件のリクエストが上限となっています。また、1リクエストの最大サイズを4KBに制限しています。詳しくは「利用制限」をご参照ください。

テキスト解析:日本語係り受け解析 - Yahoo!デベロッパーネットワーク

のような利用制限がある。

Spritzを知った直後のツイート

※ツイート中二つ目のURLを開くと、音が出るので注意!

いや、連想しちゃうよね、LUPIN the Third…