2009年3月8日日曜日

文体とリズムの視覚化 Part2

 前回は、目的と全体の概要などを述べた。
 
 ※ コード部分読みにくい色になってます。後で修正します。 修正しました。

 今回は、文章を入力してそれを構成要素に分ける部分の実装を行う。手順は以下のようになる。

1.  入力文字列を設定する.
2.  Yahooデベロッパーの日本語形態素解析に、要素に分けてもらう.
3.  結果を保持する.

 保持したものは今後の視覚化に使う、ということになる。

 上記の機能を持つクラスをRubyで実装する。
 単語の品詞、表記、読みを1つの単位として、入力された単語数分が結果として得られる。単語の扱いを簡単にするために、単語を扱うWordクラスを作った。こんな感じ。
#!/usr/bin/ruby -Ku

class Word

attr_accessor :surface #表記
attr_accessor :pos #品詞
attr_accessor :reading #読み

end

 実際に、YahooデベロッパーのAPIを呼び出すのは以下のMorphemeクラス。入力する文字列を設定できて、YahooデベロッパーのAPIを呼び出すことができる。結果は、上のWordクラスの配列に保持する、という単純な感じ。
#!/usr/bin/ruby -Ku

require 'open-uri'
require 'rexml/document'
require 'word.rb'

class Morpheme

attr_accessor :sentence, :words

def initialize(sentence = nil)
@appid = 'YourID'
@xmluri = 'http://api.jlp.yahoo.co.jp/MAService/V1/parse'
@results = 'ma'

@sentence = sentence
end

def morpheme
@words = Array.new

body = open("#{@xmluri}?appid=#{@appid}&results=#{@results}&sentence=" + URI.encode("#{@sentence}"))

doc = REXML::Document.new(body).elements['ResultSet/ma_result/word_list']
doc.elements.each('word') do |item|

word = Word.new

word.pos = item.elements["pos"].text
word.surface = item.elements["surface"].text
word.reading = item.elements["reading"].text

@words << word
end
end
end

 これで、Yahooデベロッパーを使って、形態素解析をしてくれる処理はとりあえず揃ったかな。

2009年3月4日水曜日

14歳からの社会学

宮台真司著。
副題は「これからの社会を生きる君に」



 先日参加したイベントで興味を持ったので、最初に読むのに良い本はないかと探して見つけたのがこの本だ。14歳という年齢はもうとっくに過ぎてしまったが、社会学のことを何も知らない状態での入門としてはちょうど良いのではないか思って手に取った。
 少し読むとその社会学の定義というか考え方のようなものが提示された。
社会学では人が何かをしたとき、社会のせいだけにしない。「その人が意志したから」と「意志」を出発点にする。(57)
社会学者は「意志」の前提となる社会について分析を加えるだけだ。(58)
 ちょうど今一番興味がありそうな感じでうれしい。そして、その分析する社会として7つの章が設けられている。
1.<自分>と<他人>
2.<社会>と<ルール>
3.<こころ>と<からだ>
4.<理想>と<現実>
5.<本物>と<ニセ物>
6. <生>と<死>
7. <自由>への挑戦
 一番興味深かったのは、「2.<社会>と<ルール>」で扱われている、「行為功利主義」と「規則功利主義」かな。

2009年2月28日土曜日

文体とリズムの視覚化

1. きっかけと目的

 小説を読んでいると、「この 人の文章って、あの人の文章に似てるな」と感じるときがある。でも、実際にそう感じたことが正しいかどうかを調べるには、小説をパラパラとめくりながら似 たような文章を探したりしないといけない。けっこう時間がかかるし、本を読む時間が減ってしまう。
 簡単に似てる似てないの判断ができるような仕組みがあればいいなぁ、と思って作ってみようと思い立った。リズムなんだから聴覚化(音楽化?)の方がストレートな気もするけど、技術的にまずは視覚化を実現したい。

 ※今回だけでは、視覚化しません。今回は、今後の方向性を示すもの具体的な作業は次回からになります。連載物になります。

2. 処理内容

 ある文章を入力すると、それを構成要素にわけ、文章の意味から自由な、意味にとらわれない単語の繋がりとして再構成し、視覚化する。以下が全体のイメージ。

図.全体のイメージ

2.1. 構成要素への分割


 構成要素へ分けるには、Yahoo!デベロッパーの日本語形態素解析を用いる。日本語を形態素に分割し、品詞や読み仮名を返してくれるサービス。
 Rubyで実装する予定。
 
2.2. 繋がりからの再構成
 詳細は未定。きっとここが一番のキモとなる箇所と思われる。

2.3. 視覚化

 Processing または、Processing.js を用いて視覚化する予定。

3. 成果物

それとなくでも違いがわかるようにしたい。
まずは、ローカルでいろいろ試しながら、最終的には、出来ればWeb上で動くようにしたい。

2009年2月21日土曜日

いつかソウル・トレインに乗る日まで

どれくらい小説を読んでいなかったか、覚えていないほど読んでいなかった気がする。


 一年以上ぶりに小説を読んだ。長い休みの後に読書を再会するなら、小説の読み方を思い出すために、よく知っている小説家を選ぶ必要があると思っている。迷いなく、高橋源一郎の最新作を選んだ。
 あまりに久しぶりの読書なので、本を間違えたのかと思った。本を読んでいる最中に、著者を確認したのは始めてだ。でも、本は間違っていなかったし、カバーだけが入れ替わっているということもなかった。きっと以前のように本を読んでいても、これが高橋源一郎の小説かどうか、同じように確認しただろう。

 この小説は、少し前に出た評論『ニッポンの小説 百年の孤独』とほぼ同時期に連載されていた。それを思い出して、パラパラとめくっていたところ、こんな文章にぶつかった。
その世界を、「外部」を読み解くために、小説が存在しているのであって、小説を、あるいはテキストを読むために、世界が存在しているのではない。そう、わたしはいいたいのです。(51)
 小説の中には、小説内小説といえるようないくつかの小説が存在している。どれもとても似ているような気がして、それと同時に小説の主人公のその後も考えてしまうようなところがあって。それら、考えてしまう主人公の「その後」こそ、ここでいう「外部」なのかなと思った。

2009年2月17日火曜日

ツグミ Dusky Thrush

春が近づいてきたからなのか、多摩川の河川敷でツグミを見かけることが多くなった。


それとも、鳥を見ることに慣れてきたのかもしれない。それくらいツグミは地味だ。大きさはムクドリと同じくらいで、地面を歩いている。遠目から見るとほとんどムクドリと違いがわからない。歩き方と姿勢が良いの、あまり群れないのが大きな違いだろうか。
もちろん、色がわかるまで近づければいいのだけれど、かなり警戒心が強い。目の上あたりに白いラインがあり、全体としては茶褐色。今のところ、鳴いた姿を見たことがない。

2009年2月14日土曜日

太田区立 池上梅園

暖かな陽気に誘われて太田区立池上梅園に行ってきました。


東京は二月だと言うのに、20度を越す陽気になりました。2月10日の時点で、既に八分咲きとの開花状況でしたが、この陽気でさらに開いたんじゃないでしょうか。蒲田からも近い都心ということで、たくさんの人手でした。


上は梅園内の見晴台からの展望。梅園の先に見えるのは、西馬込駅から都営地下鉄線の馬込車両検修場へ続く線路です。西馬込駅は、都営地下鉄浅草線の末端駅なので、車両はここから地下と地上を行き来していると思われます。専用の線路が高架になっているのがなんとも不思議です。


梅の花蜜を大好きなメジロも来てました。年配の方に人気でしたね、メジロ。

帰りはすぐ近くの池上本門寺によって帰りました。

2009年2月7日土曜日

メジロ White-eye

ついに、メジロの姿を捉えた。


多摩川から少し入った六郷神社で撮影。

二羽のメジロが飛び回りながら梅の花蜜を吸っていた。今までは近づくとすぐに逃げてしまっていたが、どうやら梅の花蜜に夢中で逃げることも忘れているようだ。梅の蜜が大好物とのこと。蜜を吸っている最中はほとんど鳴かなかった。メジロの聞きなし*1は「チルチルミチル」。

メジロは名前の通り、目のまわりが白い。体は緑のような黄色のような色で、雀と同じか小さいくらいの大きさ。地面に降りた姿は見たことがなく、一羽か二羽で活動していることが多いようだ。

*1. 鳥の鳴き声を人が覚えやすくしたもの。