http://search.yahooapis.jp/WebSearchService/V1/ webSearch?appid=YahooDemo&query=[URI ESCAPE したキー]&result=1
totalResultsAvailable が検索ヒット数なので、<ResultSet xsi:schemaLocation="urn:yahoo:srch http://search.yahooapis.jp/WebSearchService/V1/WebSearchResponse.xsd" type="web" totalResultsAvailable="19700" totalResultsReturned="1" firstResultPosition="1" ...
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use URI::Escape; while (<>) { my $num = get_num($_); print "$num\n"; } sub get_num { my ($key) = @_; my $ek = URI::Escape::uri_escape($key); my $url = "http://search.yahooapis.jp/WebSearchService/V1/". "webSearch?appid=YahooDemo&query=$ek&result=1"; my $res = get($url); my ($num) = ($res =~ /totalResultsAvailable="(\d+)"/); return $num || 0; }
% cat a.txt ufj 学校 六本木ヒルズ % sample.pl a.txt 105000000 1340000000 17400000
値が大きいほど「近い」とみなせる。| X ∩ Y | ------------ min(|X|,|Y|)
例えば、パンダとペンギンの関係の強さを計算してみます。141万÷860万≒0.16
パンダのヒット数|X|は1130万件、
ペンギンのヒット数|Y|は860万件、
「パンダ ペンギン」のヒット数|X∩Y|は141万件、
でしたので、シンプソン係数は約0.16になります。
パンダ ペンギン カピバラ アザラシ マントヒヒ
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; use URI::Escape; my @list; while (<>) { chomp; push @list, $_; } for (my $i = 0; $i < @list - 1; $i++) { my $x = get_num($list[$i]); for (my $j = $i + 1; $j < @list; $j++) { my $y = get_num($list[$j]); my $xy = get_num($list[$i]." ".$list[$j]); my $min = ($x < $y) ? $x : $y; my $simp = $xy / $min; print "$simp $list[$i] vs $list[$j]\n"; } } sub get_num { my ($key) = @_; my $ek = URI::Escape::uri_escape($key); my $url = "http://search.yahooapis.jp/WebSearchService/V1/". "webSearch?appid=YahooDemo&query=$ek&result=1"; my $res = get($url); my ($num) = ($res =~ /totalResultsAvailable="(\d+)"/); return $num || 0; }
% sample.pl animals.txt 0.125558312655087 パンダ vs ペンギン 0.140357852882704 パンダ vs カピバラ 0.0624748490945674 パンダ vs アザラシ 0.141463414634146 パンダ vs マントヒヒ 0.0934393638170974 ペンギン vs カピバラ 0.153923541247485 ペンギン vs アザラシ 0.0626016260162602 ペンギン vs マントヒヒ 0.0349900596421471 カピバラ vs アザラシ 0.0653116531165312 カピバラ vs マントヒヒ 0.00612466124661247 アザラシ vs マントヒヒ