2 件 見つかりました。
長い間行方不明だった電子辞書「SHARP PW-A8700」[2004-03-07-5]ですが、週末についにその姿を現しました。

めでたい!
■SHARP PW-A8700 電子辞書

![]()
![]()
一方、先日買った電子辞書「CANON wordtank IDF-2200E」[2008-06-21-3]が行方不明になりました。
なんでだよーー!
わけわからん。
■CANON wordtank IDF-2200E (5コンテンツ, 英語モデル, コンパクトサイズ)

![]()
![]()
ref.
- [を] 紙媒体の英語文書を読むときにはやっぱり電子辞書[2008-06-21-3]
- [を] 電子辞書 SHARP PW-A8700[2004-03-07-5]
Yahoo!デベロッパーネットワーク(YDN)に
「日本語係り受け解析Webサービス」が登場しました。
- Yahoo!デベロッパーネットワーク - テキスト解析 - 日本語係り受け解析
http://developer.yahoo.co.jp/jlp/DAService/V1/parse.html
「係り受けってなに?」という方もいると思うので、
以下、まったくもって厳密ではない、適当な解説を試みます。
(1) 日本語をコンピューターで処理するには、
まず形態素解析というのをやって、
文を形態素(≒単語)単位に分割します。
YDN の「日本語形態素解析Webサービス」[2007-06-18-1]
で試すことができます。
例えば、
「私はパソコンを買った」
という文章は、形態素解析すると、
「私」「は」「パソコン」「を」「買った」
と分割されます。
(2) 次に、文節、つまり「〜ね」で切れる単位にまとめあげます。
「私」「は」「パソコン」「を」「買った」
と文節にまとめると
「私は」「パソコンを」「買った」
となります。
「私はね、パソコンをね、買った」
といった具合に「〜ね」で区切れる単位です。
(3) この文節の係る先を推定するのが係り受け解析です。
「XがYした」(俺が試した)、「XなYだ」(きれいな写真だ)
のような、文章の基本的な構造を取り出すのです。
「日本語係り受け解析Webサービス」を使うと、
先の例では、
「私は」→「買った」
「パソコンを」→「買った」
という係り受け関係が抽出できます。
すごく大雑把ですけど、係り受け解析がなんなのか、
なんとなくでも分かって頂けたでしょうか?
係り受け解析は、機械翻訳、文章要約、意図理解など、
深くて高度な自然言語処理に利用されています。
言語を自由にあやつる人工知能を作るには必須の技術なのですよ!
§
で、「日本語係り受け解析Webサービス」を使うと、
どんなことができるのでしょうか?
ということで、簡単なサンプルプログラムを作ってみました。
「なんちゃって文章要約」です。
「こんな私の故郷は非常に良い場所なのです。」
という文を、係り受け解析を使って、
「故郷は良い場所なのです。」と要約します。
「なんちゃって文章要約」では、
どこにも係らない文節を「ベース」とし、
それに直接係る文節だけを残し、他を削除することで、
「文章要約」しています。
「こんな私の故郷は非常に良い場所なのです。」
の係り受け関係は、
「こんな」→「私の」
「私の」→「故郷は」
「故郷は」→「場所なのです。」
「非常に」→「良い」
「良い」→「場所なのです。」
となります。
ベースとなる文節は「場所なのです。」(係られているだけで、
どこにも係っていない)で、
それに直接係っている文節は「故郷は」と「良い」だけなので、
要約文は「故郷は良い場所なのです。」になります。
以下、Perl によるプログラム youyaku.pl と実行結果です。
■コード (youyaku.pl):
#!/usr/bin/perl
use strict;
use warnings;
use URI::Escape;
use LWP::Simple;
use XML::Simple;
my $appid = "YahooDemo";
while (<>) {
chomp;
my $xml_ref = dana($_);
next unless $xml_ref->{Result} and $xml_ref->{Result}->{ChunkList};
my @morphs;
my @froms;
my $base_id = -1;
foreach my $c (@{$xml_ref->{Result}->{ChunkList}->{Chunk}}) {
if ($c->{Dependency} >= 0) {
push @{$froms[$c->{Dependency}]}, $c->{Id};
} else {
$base_id = $c->{Id};
}
next unless $c->{MorphemList};
my $str = join("", map {$_->{Surface}}
@{$c->{MorphemList}->{Morphem}});
$morphs[$c->{Id}] = $str;
}
next if $base_id == -1;
print "$_\nSUMMARY: ", @morphs[@{$froms[$base_id]}],
$morphs[$base_id], "\n\n";
}
sub dana {
my ($key) = @_;
return {} unless $key;
my $url = "http://jlp.yahooapis.jp/DAService/V1/parse"
."?appid=$appid"
."&sentence=".URI::Escape::uri_escape($key);
my $response = get($url);
my $xmlsimple = XML::Simple->new(ForceArray => [ 'Chunk', 'Morphem' ]);
return $xmlsimple->XMLin($response);
}
$appid は自分で取得したものを使ってくださいね。
(http://e.developer.yahoo.co.jp/webservices/register_application)
■実行結果:
% cat a.txt こんな私の故郷は非常に良い場所なのです。 つまり、これはパソコンですが、こういうのは基本的に買うとダメ。 昨今の経済状況を考慮すると、セレブとの豪華なディナーはいかがなものか。 % ./youyaku.pl a.txt こんな私の故郷は非常に良い場所なのです。 SUMMARY: 故郷は良い場所なのです。 つまり、これはパソコンですが、こういうのは基本的に買うとダメ。 SUMMARY: パソコンですが、買うとダメ。 昨今の経済状況を考慮すると、セレブとの豪華なディナーはいかがなものか。 SUMMARY: 考慮すると、ディナーはいかがなものか。
「要約になってないじゃないか!」と言われても困ります。
「なんちゃって」文章要約ですのでー!
ref.
- [を] Yahoo!デベロッパーネットワークにテキスト解析APIが登場!
[2007-06-18-1]
- Wikipedia:構文解析
- CaboCha http://chasen.org/~taku/software/cabocha/
(ローカル環境で係り受け解析器を動かしたい人にはこれ!#1)
- KNP http://nlp.kuee.kyoto-u.ac.jp/nl-resource/knp.html
(ローカル環境で係り受け解析器を動かしたい人にはこれ!#2)
たつをの ChangeLog