- Geography::AddressExtract::Japanができるまで
- 自然文章から住所を抽出したい
- テクニック
- 港区(東京都と名古屋市にある)の場合は街の名前で判別(港区六本木なら東京都)
- その他問題
- Regexp::Trie使えそう
この講演の前身は昨年10月に行われた
Shibuya Perl Mongersテクニカルトーク#7。個人的にこれがすごく気になっていたのでとうとう見られて幸せ。
アメリカの住所でおなじことをしようと思ったら取り掛かりとして
Geo::StreetAddress::USというのがあるのだが、これは住所フォーマットの解析だけしかしてくれない。
たとえばニューヨーク市シブヤ123番地があったとして、
use Geo::StreetAddress::US;
use Data::Dumper;
$hashref = Geo::StreetAddress::US
->parse_location("123 Shibuya, New York, NY, 10001");
print Dumper($hashref);
はこういう結果を返す。
$VAR1 = {
'number' => '123',
'street' => 'Shibuya',
'state' => 'NY',
'zip' => '10001',
'city' => 'New York',
'suffix' => undef,
'type' => '',
'prefix' => undef
};
ところがYappoさんのモジュールと違って住所の部分を文章から切り出してくれるわけではなく、たとえば住所ではない文字列が混じった
$hashref = Geo::StreetAddress::US
->parse_location("My address is 123 Shibuya, New York, NY, 10001");
print Dumper($hashref);
にすると
$VAR1 = '';
というさびしい結果に。
さて、どうしよう(続く、かも)。