「私はパソコンを買った」という文章は、形態素解析すると、
「私」「は」「パソコン」「を」「買った」と分割されます。
「私」「は」「パソコン」「を」「買った」と文節にまとめると
「私は」「パソコンを」「買った」となります。
「私は」→「買った」という係り受け関係が抽出できます。
「パソコンを」→「買った」
「こんな」→「私の」となります。
「私の」→「故郷は」
「故郷は」→「場所なのです。」
「非常に」→「良い」
「良い」→「場所なのです。」
$appid は自分で取得したものを使ってくださいね。#!/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); }
「要約になってないじゃないか!」と言われても困ります。% cat a.txt こんな私の故郷は非常に良い場所なのです。 つまり、これはパソコンですが、こういうのは基本的に買うとダメ。 昨今の経済状況を考慮すると、セレブとの豪華なディナーはいかがなものか。 % ./youyaku.pl a.txt こんな私の故郷は非常に良い場所なのです。 SUMMARY: 故郷は良い場所なのです。 つまり、これはパソコンですが、こういうのは基本的に買うとダメ。 SUMMARY: パソコンですが、買うとダメ。 昨今の経済状況を考慮すると、セレブとの豪華なディナーはいかがなものか。 SUMMARY: 考慮すると、ディナーはいかがなものか。