May 31, 2007 at 23:33 , Tags:
読書,
仕事
これ読みました。
いやー、すごくためになりました。
「いかに努力して勉強するかではなく、いかに努力せず勉強に取り組めるようにするか、ということが重要だ」ということを著者は繰り返し言っています。
「勉強のための仕組み作り」が大切であると。
ただ漠然と勉強してても全然身につかないので、そこをなんとしないといけないんですね。
そのためにも、まず勉強をうまく進めるための仕組み作りが大切であると。
勉強したら常にその成果をアウトプットするようにして、自分の目でそれを確かめるようにすることを習慣づけるとか。
要は、いかに効率よく勉強を継続できるか、ということが重要なんですね。
著者曰く、重要なのは「勉強のノウハウ」なんだそう。
でもこの「勉強のノウハウ」は学校ではあまり教わらないんですね。
僕自身、今までいろんな本を読んできて勉強してきたつもりなんですが、いまいち身についている感じがしていなかったんですよ。
それはやっぱり、その勉強の成果を現実の社会で活かせていなかったり、知識が深まっているとしてもそれをちゃんとアウトプットしてこなかったのが原因だと思います。
ただなんとなく勉強をスタートさせるのではなく、きちんと目標を定めてから計画的に取り組むことが大切なんですね。
May 28, 2007 at 0:17 , Tags:
科学,
哲学,
人間
えーと、今日考えてたことをつらつらと。
今日は人工知能について考えてました。
途中、昼寝してたりもしましたが。
人工知能に関する過去の業績とかあまりしらないんですが、どういう研究がされてきたのかはなんとなく想像できる気がします。
だいたい次のような感じなんじゃないですかね。(想像ベース)
1) 文法からのアプローチ
2) 論理的な面からのアプローチ
3) パターン認識からのアプローチ
1) 文法からのアプローチには限界があります
文法は、人間の言語活動の一側面しか説明しないんですよね。
例えば、文脈にも法則性というかパターンみたいなものがあるように見えます。
人間はそういうものも含めて言語を処理しているんじゃないかと思います。
文法はそういったものについて何も説明しないんです。
文法に関する考察それ自体はおもしろいんですけどね。
2) 論理的な面からのアプローチですが、これは厄介です(説明が)。
結論から言うと、人間は論理的に考えてなんかいません。
いや、論理的に考えることはできるんだけど、意識的にそれをやらないと無理だと思います。
人間の思考は論理では説明できないんです。
人間の思考なんて、ほとんどの場合「なんとなくそう思う」といった程度のものでしかないと思います。
言い方を変えると「直感」ってやつですか。
人間はほとんど「直感」で行動しているんじゃないでしょうか。
で、「直感」は「論理」ではなく「パターン」から導き出されるんだと思います。
3) パターン認識からのアプローチですが、これもまた厄介です(説明が)。
確かに、人間が何かを識別したり、予測したりするときには「パターン」が使われていると思います。
つまり「パターン認識」ができているんだと思います。
でも、それができたからといってその対象を理解したということにはならないですよね。
まず、「理解する」というのはどういうことなのかをはっきりさせる必要があります。
ここから先は哲学の領域ですかね。
(この辺はもうちょっとうまく説明できるようになってからちゃんと書く必要がある)
ていうか、文法もパターンの一種と考えられなくないですね。
人間が脳の中で文法というパターンに従って文章を分割しているのは確かだと思いますが、その先の「で、人間はどうやってその文を理解するの?」という問いに文法は何も答えてくれません。
対象となる文章に文法の規則を当てはめてみたところで、「うん、確かにそういう規則が当てはめられるね。で、そこからどうするの?」という次の問いに進むだけなんです。
その「文法の先」について考えを巡らしている人はたくさんいると思いますが、もうこれは文法という枠で考えられることじゃないと思います。
…
眠いので終わり。
May 27, 2007 at 16:48 , Tags:
人間
文章の末尾に意味もなく「!」を付けると妙に気分がノッてくる。
そんなことないですか?
ないですよね!
…
人間って、自分が使う言葉に影響されると思います。
思考やコミュニケーションの「道具」として言葉があるというよりは、言葉により思考やコミュニケーションが形作られるんじゃないかと。
こんなことをよく考えてるんですけど、ここから先に考えが進まないんですよねぇ。
May 27, 2007 at 16:37 , Tags:
プログラミング,
Ruby,
Web
Hpricot という HTML パーサがあると教えていただきました。
Hpricot, a fast and delightful HTML parser
Hpricot is a very flexible HTML parser
すごくフレキシブルな HTML パーサである、とのこと。
先日は scrAPI を使ってみてその便利さに興奮してたのですが、こちらもなかなか良さそうな雰囲気です。
日本語の情報として、以下が参考になりそうです。
Greenbear Laboratory - Hpricot Showcase-Ja
とりあえず、前に scrAPI でやったのと同じような事をやるとするとこんな感じになります。
require 'rubygems'
require 'hpricot'
html = '
‘
doc = Hpricot(html)
# id=”header” 内のリンク要素から href 属性を取り出す
p (doc/”#header a”).collect {|i|
i[”href”]
}
#=> [”http://1″, “http://2″, “http://3″]
なんか、僕にとっては Hpricot の方が scrAPI より直感的でわかりやすいかも、とか思いました。
scrAPI の場合は以下のようにして抽出条件を先に定義しておくんですけど、
scrapper = Scraper.define do
process '#header a', 'links[]' => "@href"
result :links
end
これが少し面倒くさいな、なんて思ってました。
irb でいろいろ試す際にもやりにくそうだし。
その点、Hpricot は以下のようにして好きなときに好きな要素を取り出せるので、いろいろ試したい時にも楽だと思います。
p (doc/".menu a")
# “link 4″ }, {elem “link 5″ }, {elem “link 6″ }, {elem “link 7″ }]>
条件の指定には XPATH か CSS セレクタ が使えます。
XPATH については良く知らないんですけどね!
May 27, 2007 at 12:23 , Tags:
デザイン,
Web
Webページをデザインするとき、テーブルを使うのはよろしくないとかいう意見をよく目にするんだけど、僕は別にいいんじゃないかなと思う。
いや、やっぱりよくないか。
ていうか、float で綺麗に要素を並べるのって、複雑なデザインになってくると難しそうだし、僕からしてみるとそのやり方は直感的じゃない。
僕は .Net とか Java とかでクライアントアプリの画面を作る仕事をそこそこやってきたんだけど、それらと比べるとスタイルシートを使ったデザインのやり方が不自由に感じられて仕方ない。
例えば、Java の Swing で画面をデザインするときにはいろんな手法が使える。
レイアウトマネージャっていうのを使ってコンポーネント(テキストボックスとかボタンとか)をうまいこと配置していく。
それと比べると、スタイルシートによる Web ページのデザインにおいては一種類のレイアウト方式しか使えないわけで、それがすごく不便というか不憫に感じる。
ま、不自由さがあるからこそいろんなおもしろいアイデアが生まれるとか、そういう良い面はあると思うけど。
May 27, 2007 at 1:03 , Tags:
ブログ,
プログラミング,
Ruby
google-code-prettify を使ってソースコードに色がつくようにしてみました。
このプラグインを使ってます。
Google Code Prettify for wordpress : DEAN LEE:/DEV/BLOG
例:
# Output "I love Ruby"
say = "I love Ruby"
puts say
# Output "I *LOVE* RUBY"
say['love'] = "*love*"
puts say.upcase
# Output "I *love* Ruby"
# five times
5.times { puts say }
May 27, 2007 at 9:53 , Tags:
プログラミング,
Ruby,
Web
scrAPI を使ってみたんですけど、これ結構便利ですね。
ruby のスクレーピングツールキットです。
Labnotes » scrapi
CSS3のセレクタを使ってHTMLドキュメントから必要な要素を取り出せます。
例:
require 'rubygems'
require 'scrapi'
require 'open-uri'
$KCODE = 'u'
# テスト用HTML
html = '
‘
# スクレイパーを定義
scrapper = Scraper.define do
process ‘#header a’, ‘links[]’ => “@href”
result :links
end
# スクレーピング実行
links = scrapper.scrape(html)
p links
# => [”http://1″, “http://2″, “http://3″]
scrAPI を使って Wikipedia からデータを抽出したりしてみました。
プログラムから Wikipedia のサイトに直接データを取りに行くのはあまりよろしくないみたいなので、Wikipedia のデータを全部ダウンロードしてそこからデータを抽出しました。
Wikipedia:データベースダウンロード - Wikipedia
HTML 形式のデータをダウンロードしたんですが、圧縮された状態で1GBくらいのサイズで、解凍すると13GBくらいになりました。
XML形式のファイルをダウンロードして MySQL にインポートする方が、データの扱いやすさという面では良いかもしれません。
scrAPI に関しては以下が参考になりました。
川o・-・)<2nd life - ruby のスクレイピングツールキット scrAPI
ヽ( ・∀・)ノくまくまー(2007-01-15)