01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
<http://d.hatena.ne.jp/sumim/20040525/p1>
<http://blogger.main.jp/changelog/2004-07-28-2.html>
改造した。
いわゆる一つの再帰下降型構文解析。
ループと分岐と関数呼び出しで書く例のやつです。
[src]
#! perl -w
# Parse ChangeLog
# Copyright: (C) Project PaoPei with zuihu 2004 JAPAN
# $Id: remoteclog.txt,v 1.2 2004/12/06 08:58:45 zuihu Exp $
# modified 2006-11-27, for chalow, cf. http://kerolin.jspeed.jp/2006/10/03/
package ParseChangeLog;
use strict;
use Parse::RecDescent;
use Data::Dumper;
$Parse::RecDescent::skip = '[\r\f\n]*';
my $grammar = q(
parse: entry(s)
{[{entry => $item[1]}]}
entry: entryheader item(s)
entryheader: /^(\d{4}-\d{2}-\d{2})\s+(.+) \s+\<(.+)\>/
{@{$return}{qw(date user mail)} = ($1,$2,$3)}
item: itemheader itembody(s)
{
my $body = join ("\n", @{$item[2]});
@{$return}{qw(title tag body)} = ($item[1]->[0], $item[1]->[1], $body)
}
itemheader: /^\t\* ([^\[]*)(\[.*\]):/
{[$1,$2]}
itembody: /^(?!(\t\* .+?:|\d{4}-\d\d\-\d\d))(.*)/
{($2)}
);
my $text;
{
local $/ = undef;
$text = <STDIN>;
}
my $log = Parse::RecDescent->new($grammar)->parse($text);
print Dumper($log);
[src]
<http://www-neos.mcs.anl.gov/>
ジョブを投げたらメールで結果が返ってくるらしいです。
手元のライブラリが動かないので、プロトタイプはこれでいいかな。
<http://www.loebner.net/Prizef/loebner-prize.html>
Turing test で競うコンテスト
<http://www.jaist.ac.jp/~n-yoshi/research/resources.html>
<http://sifaka.cs.uiuc.edu/lmir/>
<http://portal.acm.org/citation.cfm?id=1031458>
<http://jakarta.apache.org/commons/sandbox/latka/>
HTTP server 用の test suite
<http://www.gatsby.ucl.ac.uk/~zoubin/tutorials06.html>
近隣分野の研究者・博士向けチュートリアル講義。
<http://www.jdocs.com/>
いくつかの異なる Java ライブラリの API がまとめて置かれている。
ある機能を提供するライブラリを探す、というときに便利かも。
org.apache.commons.math.complex とかがある。
<http://www.formatdata.com/recipeml/examples.html>
自然言語のレシピにアノテーションするアプローチ。
<recipeml version="0.5">
<recipe>
<head>
<title>The Needless-Markman Hoax Chocolate-Chip Cookie</title>
</head>
<ingredients>
<ing>
<amt><qty>2</qty><unit>cups</unit></amt>
<item>butter</item>
</ing>
<ing>
<amt><qty>4</qty><unit>cups</unit></amt>
<item>flour</item>
</ing>
</ingredients>
<directions>
<step>Measure oatmeal and blend in a blender to a fine
powder</step>
<step>Cream the butter and both sugars</step>
<step>Add eggs and vanilla; mix together with
flour, oatmeal, salt, baking powder, and soda</step>
<step>Add chocolate chips, Hershey Bar and nuts</step>
<step>Roll into balls and place two inches apart
on a cookie sheet</step>
<step>Bake for 10 minutes at 375 degrees</step>
</directions>
</recipe>
</recipeml>
directions の意味表現を記述するとかいう話が出たり。
<http://nlp.kuee.kyoto-u.ac.jp/~kuro/startnlp/techwriting.html>
1.よくタイトルを考える
2.適当に章立てを考える
3.よく,各章で何を書くかを考える
各章の内容を10項目ぐらいで箇条書き.
もちろん,ここでよく考えて章立てをかえてもよい
★ ここで先生にみせる
4.最終論文の各文に対応する程度の細かさで,何を書くかを考える.
まだメモ的でよい.表現,テニオハにはこだわらない.
★ ここで先生にみせる.
5.用語の統一を行い,重要な図表などは書く
★ ここまでちゃんとできれば内容的には論文はできたようなもの.
6.日本語の文にする.
(ちなみにここで英語の文にすれば英語の論文になる)
ここからは作文テクニックの問題だが,大学生にとってはこれが大変.
日本の小中高教育ではまったく教わらない.
卒論・修論の分量なら本当は一月ぐらいかけて書く必要があるが..
★ 学生によくみられる問題は,3,4の論文内容の問題と,5の作文テクニッ
クの問題を同時に悩んで,1文も書きすすまずに1時間,2時間とすごすケー
ス.それはやめましょう.
The International Corpus of English Homepage 無料 メールを送ってパスワードをもらう
UCL/CECL Centre for English Corpus Linguistics ICLE Corpus 学習者コーパス プロジェクトへの協力が必要
Learner Corpus Data 自由に使えるけど、量が少ない
<http://web.yl.is.s.u-tokyo.ac.jp/~ganat/presentation.html>
プレゼンを作る時に注意すべきこと。
* 資料は興味を引くものにする。見やすくする。 できる限り図で説明する。
* 箇条書きに気をつける。順番を表す時は番号つきのリストで、 並列の関係のときは番号なしで。それ以外のときは箇条書にしない。
* 関係のあるものは、目で見ても関係があることがわかるようにする。 色とか記号の使い方に統一感を持たせる。
* 誤植は絶対にあったら駄目。 ひとつでもあったら聴衆が信用してくれなくなる。
* 一般論を述べたら、例を出すとよい。 必ず "一般論" → "具体例" の順番で。 ただし、軽くさわりを説明するくらいならば簡単な例を最初に出してもいいと思う。<\li>
* あまり細かいところまで踏み込み過ぎない。 細かいところを説明すると全体が見えなくなる。
* 一番最初に何を話すのか全部言う。
<http://mi.eng.cam.ac.uk/~er258/code/fp_template.html>
OpenNLP tokenizer, POS-tagger, NE
lingpipe segmentation, POS-tagger, NE, medline
mallet NB, ME, Boosting, CRF
The Lemur Toolkit for Language Modeling and Information Retrieval indexing とか
NLP - SWiK
<http://www.linguistics.ucla.edu/faciliti/research/skim_diss.pdf>
<http://kerolin.jspeed.jp/Computer/Linux/Meadowger060611.html>
package Plagger::Plugin::CustomFeed::ChangeLog; use strict; use warnings; use base qw( Plagger::Plugin ); use Parse::RecDescent; use Text::Markdown 'markdown'; $Parse::RecDescent::skip = '[ \r\f\n]*'; sub register { my($self, $context) = @_; $context->register_hook( $self, 'subscription.load' => \&load, ); } sub load { my($self, $context) = @_; my $feed = Plagger::Feed->new; $feed->aggregator(sub { $self->aggregate(@_) }); $context->subscription->add($feed); } sub aggregate { my($self, $context, $args) = @_; my $file = $self->conf->{changelog_file}; $context->log(info => "Load $file"); open my $fh, $file or return $context->log(error => "$file: $!"); my $text; { local $/ = undef; $text = <$fh>; } my $feed = Plagger::Feed->new; $feed->title("ChangeLog"); $feed->type('ChangeLog'); my $grammar = q( parse: entry(s) {@{$return}{entry} = @item[1]} entry: entryheader item(s) {@{$return}{qw(header item)} = @item[1..2]} entryheader: /^(\d{4}-\d{2}-\d{2})\s+(.+) \s+\<(.+)\>/ {@{$return}{qw(date user mail)} = ($1,$2,$3)} item: itemheader itembody(s) { my $body = join ("\n", @{$item[2]}); @{$return}{qw(tag title body)} = ($item[1]->[0], $item[1]->[1], $body) } itemheader: /^\t\* (.*):\s+(.+)/ {[$1,$2]} itembody: /^\t(?!\*)(.*)/ {($1)} ); my $data = Parse::RecDescent->new($grammar)->parse($text); for my $datelog (@{$data->{entry}}){ for my $item (@{$datelog->{item}}){ my $entry = Plagger::Entry->new; $entry->title($item->{title}); $entry->author($datelog->{user}); $entry->date($datelog->{date}); my $htmlized_body = markdown($item->{body}); $entry->body($htmlized_body); $feed->add_entry($entry); } } $context->update->add($feed); } 1; __END__
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2009-02-01 00:57
Powered by chalow