2009年3月25日水曜日

われらが歌う時

リチャード・パワーズ著。高吉一郎訳。



 リチャード・パワーズの小説は『舞踏会へ向かう三人の農夫』、『ガラテイア2.2』、『囚人のジレンマ』と、日本語に翻訳されたものはすべて読んできた。今までの作品同様、本作でも時間を行き来しつつ物語が語られて行く。行き来する時間の中で語られるのは、ユダヤ系ドイツ人男性と黒人女性が、1939年にワシントンで恋に落ち、結婚し、築かれてゆく家族の姿だ。
 タイトルにもあるように歌が大きな役割を担っていて、それと同様に時間も大きな意味を持つのだけど、音楽と時間の組合せが物語に深みを与えている。『舞踏会へ向かう三人の農夫』は、一枚の写真をもとに時間を行き来するが、ここでは音楽をもとに時間を行き来している。両者を比較することで、音楽と時間の親密な関わりに気付かされる。

 だが、一番のテーマは人種問題だろう。人種問題があることは、知っていたが、日本にいる限りそれを実感することはない。巻末の訳者あとがきにも以下のようにある。
本書を読み終わる頃には、読者は経験不可能で想像不可能だったはずの二十世紀アメリカの人種問題を生きてしまっている。
 上下巻の一千頁を超える長編であることで、手を付けにくかったけど、読んでよかった。

2009年3月15日日曜日

文体とリズムの視覚化 Part3

 前回で必要なクラスの設計も終わったので、「2.1 構成要素への分割」を実装してみた。文章を入力すると、Yahooデベロッパーの形態素解析で処理して構成要素に分けるって部分です。Yahooの出力結果は、デフォルトで、品詞と読みと表示が得られるので、とりあえず品詞と読みを表示してみた。
 
 Word Chain version 0.1

 無料レンタルサーバに登録して、YahooデベロッパーIDを取得。前回のRubyのクラスを使用してYahooデベロッパーを呼び出して、結果を成形して表示する。すべて無料。とりあえずサービスの名前は「単語連鎖」という意味でWord chainという名前にした。
 次回は、単語の繋がりの処理は後回しにして、Processing.js による表示を優先したい。

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.<社会>と<ルール>」で扱われている、「行為功利主義」と「規則功利主義」かな。