- Geography::AddressExtract::Japanができるまで
- 自然文章から住所を抽出したい
- 日本の住所パターンを研究
- 郵便番号DBも使える
- Regexp::Assembleを使って文字列のリストすべてをカバーする正規表現を作る
- テクニック
- 都道府県がなくても補完
- 港区(東京都と名古屋市にある)の場合は街の名前で判別(港区六本木なら東京都)
- その他問題
- 人間の書いた住所はゆらぎが多い
- 異体字問題(Encodeで対応できるらしい)
- 変わった住所(京都とか):抽出可能
- Regexp::Trie使えそう
アメリカの住所でおなじことをしようと思ったら取り掛かりとして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 = '';というさびしい結果に。
さて、どうしよう(続く、かも)。
0 件のコメント:
コメントを投稿