IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人 京都産業大学の特許一覧 ▶ 株式会社 ミックウェアの特許一覧

特開2022-120949住所情報処理装置、住所情報処理方法、およびプログラム
<>
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図1
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図2
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図3
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図4
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図5
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図6
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図7
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図8
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図9
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図10
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図11
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図12
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図13
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図14
  • 特開-住所情報処理装置、住所情報処理方法、およびプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022120949
(43)【公開日】2022-08-19
(54)【発明の名称】住所情報処理装置、住所情報処理方法、およびプログラム
(51)【国際特許分類】
   G06F 16/28 20190101AFI20220812BHJP
   G06N 20/00 20190101ALI20220812BHJP
【FI】
G06F16/28
G06N20/00 130
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021018021
(22)【出願日】2021-02-08
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
(71)【出願人】
【識別番号】504322611
【氏名又は名称】学校法人 京都産業大学
(71)【出願人】
【識別番号】504050275
【氏名又は名称】株式会社 ミックウェア
(74)【代理人】
【識別番号】100115749
【弁理士】
【氏名又は名称】谷川 英和
(72)【発明者】
【氏名】河合 由起子
(72)【発明者】
【氏名】徳原 秀明
(72)【発明者】
【氏名】王 元元
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FB04
(57)【要約】
【課題】従来技術においては、住所情報を含む情報に対する処理において、処理コストが大きかった。
【解決手段】住所情報を有する対象情報を取得する対象情報取得部31と、住所情報の少なくとも一部に対応する地域コードを、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部11から取得する地域コード取得部32と、地域コード取得部32が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部33と、置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理部34と、処理結果を出力する処理結果出力部41とを具備する住所情報処理装置Aにより、住所情報を含む情報に対する処理において、処理コストを小さくできる。
【選択図】図1
【特許請求の範囲】
【請求項1】
住所情報を有する対象情報を取得する対象情報取得部と、
前記住所情報の少なくとも一部に対応する地域コードを、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部から取得する地域コード取得部と、
前記地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、
前記置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理部と、
前記処理結果を出力する処理結果出力部とを具備する住所情報処理装置。
【請求項2】
前記住所情報は、番地情報またはフロア情報を含み得、
前記置換情報取得部は、
前記住所情報の中で、前記地域コードに対応しない文字列に含まれる番地情報またはフロア情報に対応する数値を取得し、当該数値をも要素して含むベクトルである置換情報を取得する、請求項1記載の住所情報処理装置。
【請求項3】
前記対象情報取得部は、
各々異なる住所情報を含む2つの対象情報を取得し、
前記地域コード取得部は、
前記2つの各対象情報に対応する地域コードを、前記地域コード格納部から取得し、
前記置換情報取得部は、
前記地域コード取得部が取得した各地域コードを要素して含む2つのベクトルである2つの置換情報を取得し、
前記置換情報処理部は、
前記2つのベクトル間の距離を算出し、当該距離である処理結果を取得する、請求項1または請求項2記載の住所情報処理装置。
【請求項4】
前記対象情報は、住所情報以外の他情報を含み、
前記対象情報取得部は、
各々異なる住所情報を含む2つの対象情報を取得し、
前記地域コード取得部は、
前記2つの各対象情報に対応する地域コードを、前記地域コード格納部から取得し、
前記置換情報取得部は、
前記2以上の各対象情報ごとに、前記対象情報が有する前記住所情報の少なくとも一部に対応する前記地域コードをベクトルの1以上の要素にし、かつ前記他情報から前記ベクトルの1以上の要素を取得し、前記地域コードである前記1以上の要素と、前記他情報から取得した前記1以上の要素とを有するベクトルである置換情報を取得し、
前記置換情報処理部は、
前記2つのベクトル間の距離を算出し、当該距離である処理結果を取得する、請求項1または請求項2記載の住所情報処理装置。
【請求項5】
前記対象情報は、住所情報以外の他情報を含み、
前記対象情報取得部は、
2以上の対象情報を取得し、
前記置換情報取得部は、
前記2以上の各対象情報ごとに、前記対象情報が有する前記住所情報の少なくとも一部に対応する前記地域コードをベクトルの1以上の要素にし、かつ前記他情報から前記ベクトルの1以上の要素を取得し、前記地域コードである前記1以上の要素と、前記他情報から取得した前記1以上の要素とを有するベクトルである置換情報を取得し、
前記置換情報処理部は、
前記置換情報取得部が取得した2以上の置換情報である2以上の教師データに対して、機械学習の学習処理を行い、学習モデルである処理結果を取得し、
前記処理結果出力部は、
前記学習モデルを蓄積する、請求項1または請求項2記載の住所情報処理装置。
【請求項6】
住所情報を有する対象情報を取得する対象情報取得部と、
前記住所情報の少なくとも一部に対応する地域コードを、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部から取得する地域コード取得部と、
前記地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、
請求項5記載の住所情報処理装置が蓄積した学習モデルと前記置換情報とを用いて、機械学習の予測処理を行い、処理結果を取得する置換情報処理部と、
前記処理結果を出力する処理結果出力部とを具備する住所情報処理装置。
【請求項7】
前記地域コード取得部は、
前記対象情報が有する前記住所情報の少なくとも一部に対応する地域コードを、前記地域コード格納部から取得する地域コード取得手段と、
前記地域コード取得手段が取得した地域コードが変換条件を満たす場合に、当該地域コードと対になる変換コードを、地域コードと変換コードとの対応を管理する1以上のコード対応情報が格納される変換コード格納部から取得する変換コード取得手段とを具備し、
前記置換情報取得部は、
前記変換コード取得手段が取得した変換コードを要素して含むベクトルである置換情報を取得する、請求項1から請求項6いずれか一項に記載の住所情報処理装置。
【請求項8】
地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部と、対象情報取得部と、地域コード取得部と、置換情報取得部と、置換情報処理部と、処理結果出力部とにより実現される住所情報処理方法であって、
前記対象情報取得部が、住所情報を有する対象情報を取得する対象情報取得ステップと、
前記地域コード取得部が、前記住所情報の少なくとも一部に対応する地域コードを、前記地域コード格納部から取得する地域コード取得ステップと、
前記置換情報取得部が、前記地域コード取得ステップで取得された地域コードを要素して含むベクトルである置換情報を取得する置換情報取得ステップと、
前記置換情報処理部が、前記置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理ステップと、
前記処理結果出力部が、前記処理結果を出力する処理結果出力ステップとを具備する住所情報処理方法。
【請求項9】
地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部にアクセス可能なコンピュータを、
住所情報を有する対象情報を取得する対象情報取得部と、
前記住所情報の少なくとも一部に対応する地域コードを、前記地域コード格納部から取得する地域コード取得部と、
前記地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、
前記置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理部と、
前記処理結果を出力する処理結果出力部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、住所情報を処理する住所情報処理装置等に関するものである。
【背景技術】
【0002】
従来、住所情報を含むテキストの意味的類似性を測定するために、単語間の意味的類似に基づくテキスト間の類似距離算出方式を用いた技術があった(非特許文献1)。
【0003】
また、従来、k最近傍に基づく協調フィルタリングにおけるアイテム間の意味的距離を計算するための技術があった(非特許文献2)。
【0004】
さらに、従来、例えば、住所情報を含むテキストデータからOne-Hot Encodingで特徴量ベクトルを取得し、当該特徴量ベクトルを用いて、機械学習の学習処理や予測処理を行う技術が広く知られていた。
【0005】
また、モバイル端末(スマホやテレビ等)の情報を取得したサーバが機械学習をサーバで実施するのではなく、モバイル端末で機械学習し、モデルパラメータのみサーバ側と共有するフェデレーテッドラーニングとよばれる技術がある(非特許文献3、非特許文献4)。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Courtney Corley and Rada Mihalcea. Measuring the semantic similarity of texts. In Proceedings of the ACL Workshop on Empirical Modeling of Semantic Equivalence and Entailment, EMSEE ’05, p. 13?18, USA, 2005. Association for Computational Linguistics.
【非特許文献2】Salmo M.S. J´unior and Marcelo G. Manzato. Collaborative filtering based on semantic distance among items. In Proceedings of the 21st Brazilian Symposium on Multimedia and the Web, WebMedia ’15, p. 53?56, New York, NY, USA, 2015. Association for Computing Machinery.
【非特許文献3】インターネットホームページ「秘密を保持したままAIを共同開発」(URL:https://chizaizukan.com/property/property169.html)
【非特許文献4】インターネットホームページ「フェデレーション ラーニング:集中トレーニング データを使用しない協調機械学習」(URL:https://developers-jp.googleblog.com/2017/05/federated-learning-collaborative.html)
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術においては、住所情報を含む情報に対する処理において、処理コストが大きかった。
【課題を解決するための手段】
【0008】
本第一の発明の住所情報処理装置は、住所情報を有する対象情報を取得する対象情報取得部と、住所情報の少なくとも一部に対応する地域コードを、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部から取得する地域コード取得部と、地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理部と、処理結果を出力する処理結果出力部とを具備する住所情報処理装置である。
【0009】
かかる構成により、住所情報を含む情報に対する処理において、処理コストを小さくできる。
【0010】
また、本第二の発明の住所情報処理装置は、第一の発明に対して、住所情報は、番地情報またはフロア情報を含み得、置換情報取得部は、住所情報の中で、地域コードに対応しない文字列に含まれる番地情報またはフロア情報に対応する数値を取得し、数値をも要素して含むベクトルである置換情報を取得する、住所情報処理装置である。
【0011】
かかる構成により、住所情報を含む情報に対する処理において、処理コストをより小さくできる。
【0012】
また、本第三の発明の住所情報処理装置は、第一または第二の発明に対して、対象情報取得部は、各々異なる住所情報を含む2つの対象情報を取得し、地域コード取得部は、2つの各対象情報に対応する地域コードを、地域コード格納部から取得し、置換情報取得部は、地域コード取得部が取得した各地域コードを要素して含む2つのベクトルである2つの置換情報を取得し、置換情報処理部は、2つのベクトル間の距離を算出し、距離である処理結果を取得する、住所情報処理装置である。
【0013】
かかる構成により、住所情報を含む情報に対する距離を算出する処理において、処理コストを小さくできる。
【0014】
また、本第四の発明の住所情報処理装置は、第一または第二の発明に対して、対象情報は、住所情報以外の他情報を含み、対象情報取得部は、各々異なる住所情報を含む2つの対象情報を取得し、地域コード取得部は、2つの各対象情報に対応する地域コードを、地域コード格納部から取得し、置換情報取得部は、2以上の各対象情報ごとに、対象情報が有する住所情報の少なくとも一部に対応する地域コードをベクトルの1以上の要素にし、かつ他情報からベクトルの1以上の要素を取得し、地域コードである1以上の要素と、他情報から取得した1以上の要素とを有するベクトルである置換情報を取得し、置換情報処理部は、2つのベクトル間の距離を算出し、距離である処理結果を取得する、住所情報処理装置である。
【0015】
かかる構成により、住所情報と他情報とを含む情報に対する距離を算出する処理において、処理コストを小さくできる。
【0016】
また、本第五の発明の住所情報処理装置は、第一または第二の発明に対して、対象情報は、住所情報以外の他情報を含み、対象情報取得部は、2以上の対象情報を取得し、置換情報取得部は、2以上の各対象情報ごとに、対象情報が有する住所情報の少なくとも一部に対応する地域コードをベクトルの1以上の要素にし、かつ他情報からベクトルの1以上の要素を取得し、地域コードである1以上の要素と、他情報から取得した1以上の要素とを有するベクトルである置換情報を取得し、置換情報処理部は、置換情報取得部が取得した2以上の置換情報である2以上の教師データに対して、機械学習の学習処理を行い、学習モデルである処理結果を取得し、処理結果出力部は、学習モデルを蓄積する、住所情報処理装置である。
【0017】
かかる構成により、住所情報を含む情報に対する機械学習の学習処理において、処理コストを小さくできる。
【0018】
また、本第六の発明の住所情報処理装置は、住所情報を有する対象情報を取得する対象情報取得部と、住所情報の少なくとも一部に対応する地域コードを、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部から取得する地域コード取得部と、地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、第五の発明の住所情報処理装置が蓄積した学習モデルと置換情報とを用いて、機械学習の予測処理を行い、処理結果を取得する置換情報処理部と、処理結果を出力する処理結果出力部とを具備する住所情報処理装置である。
【0019】
かかる構成により、住所情報を含む情報に対する機械学習の予測処理において、処理コストを小さくできる。
【0020】
また、本第七の発明の住所情報処理装置は、第一から第六いずれか1つの発明に対して、地域コード取得部は、対象情報が有する住所情報の少なくとも一部に対応する地域コードを、地域コード格納部から取得する地域コード取得手段と、地域コード取得手段が取得した地域コードが変換条件を満たす場合に、地域コードと対になる変換コードを、地域コードと変換コードとの対応を管理する1以上のコード対応情報が格納される変換コード格納部から取得する変換コード取得手段とを具備し、置換情報取得部は、変換コード取得手段が取得した変換コードを要素して含むベクトルである置換情報を取得する、住所情報処理装置である。
【0021】
かかる構成により、住所情報を含む情報に対する処理において、精度を上げることができる。
【発明の効果】
【0022】
本発明による住所情報処理装置によれば、住所情報を含む情報に対する処理において、処理コストを小さくできる。
【図面の簡単な説明】
【0023】
図1】実施の形態1における住所情報処理装置Aのブロック図
図2】同住所情報処理装置Aの動作例について説明するフローチャート
図3】同置換情報取得処理の例について説明するフローチャート
図4】同郵便番号管理表を示す図
図5】同変換コード管理表を示す図
図6】同住所情報処理装置Aの処理例を説明する図
図7】同住所情報処理装置Aの処理例を説明する図
図8】同アメリカの各都市のデータを示す図
図9】同実験1の結果を示す図
図10】同実験2の結果を示す図
図11】同実験3の結果を示す図
図12】同レストラン管理表を示す図
図13】同ユーザ訪問レストラン管理表を示す図
図14】同コンピュータシステムの概観図
図15】同コンピュータシステムのブロック図
【発明を実施するための形態】
【0024】
以下、住所情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
【0025】
(実施の形態1)
本実施の形態において、受け付けられた住所情報から地域コードを取得し、住所情報の少なくとも一部に対応する地域コードを要素とするベクトルである置換情報を用いて、所定の処理を行い、処理結果を出力する住所情報処理装置について説明する。
【0026】
また、本実施の形態において、住所情報から地域コードと番地等を取得し、地域コードを要素とするベクトルである、番地等を要素とするベクトルである置換情報を用いて、所定の処理を行い、処理結果を出力する住所情報処理装置について説明する。
【0027】
なお、上記の所定の処理は、例えば、2つの置換情報の間の距離を算出する処理である。距離は、例えば、後述する物理的距離または後述する意味的距離である。また、所定の処理は、例えば、機械学習の学習処理または予測処理である。
【0028】
さらに、本実施の形態において、飛び地等の特異な地域コードに対する補正の処理を行う住所情報処理装置について説明する。
【0029】
図1は、本実施の形態における住所情報処理装置Aのブロック図である。住所情報処理装置Aは、格納部1、受付部2、処理部3、および出力部4を備える。
【0030】
格納部1は、地域コード格納部11、および変換コード格納部12を備える。処理部3は、対象情報取得部31、地域コード取得部32、置換情報取得部33、および置換情報処理部34を備える。地域コード取得部32は、地域コード取得手段321、および変換コード取得手段322を備える。出力部4は、処理結果出力部41を備える。
【0031】
格納部1には、各種の情報が格納される。各種の情報は、例えば、後述する対応情報、後述する変換コード情報である。
【0032】
地域コード格納部11には、1以上の対応情報が格納される。対応情報は、地域コードと住所情報の少なくとも一部との対応を示す情報である。対応情報は、例えば、地域コードと住所情報の少なくとも一部の対の情報である。対応情報は、例えば、地域コードと住所情報の少なくとも一部とのリンクの情報である。対応情報は、住所情報の少なくとも一部から地域コードを取得できる情報であれば良い。
【0033】
地域コードは、空間的な領域を特定する情報である。地域コードは、住所情報の一部または全部に対応する。地域コードは、通常、一の地域コードが特定する一の領域と、他の地域コードが特定する他の領域とが、物理的に近い距離にある領域であるほど、一の地域コードと他の地域コードとの差異が小さくなるように決められた情報である。通常、物理的な距離が近い2つの領域ほど、当該2つの領域の各地域コードの差異が小さくなるように決められたコードである。
【0034】
ただし、地域コードに、例外があっても良い。例えば、飛び地に対応する地域コードは、例外である場合がある。例えば、飛び地の地域コードと飛び地に隣接する領域の地域コードとの差異が大きく、前記隣接する領域と比較して、当該飛び地とは物理的に遠い領域の地域コードと飛飛び地の地域コードとの差異が小さい場合である。
【0035】
地域コードは、例えば、郵便番号である。地域コードである郵便番号とは、郵便番号の一部でも全部でも良い。つまり、地域コードは、例えば、「603-8555」の郵便願号のうち「603」のみでも良いし、全体の「603-8555」でも良い。地域コードは、例えば、電話番号の一部(例えば、市外局番の数値)である。
【0036】
地域コードは、対応する領域の位置が考慮された、独自の情報でも良い。例えば、地域コードは、「北海道・・・01」「青森・・・02」・・・「沖縄・・・47」等でも良い。
【0037】
住所情報は、住所を示す情報である。住所情報は、完全な住所の情報をすべて含む情報であることは好適であるが、住所の一部の情報でも良い。つまり、住所情報は、例えば、「京都府京都市下京区中堂寺命婦町1-10」等、すべての情報を含むことは好適であるが、「都道府県」「市町村」のみの情報、「都道府県」「市町村」「丁目」までの情報、「市町村」「区」のみの情報等の住所の一部の情報でも良い。また、住所情報は、「番地」を含むことは好適である。また、住所情報は、「フロア情報」「部屋番号」を含むことは好適である。また、住所情報は、「ストリート番号」「通り名」等を含んでも良い。さらに、住所情報は、「建物名」等を含んでも良い。
【0038】
変換コード格納部12には、1または2以上のコード対応情報が格納される。コード対応情報は、地域コードと変換コードとの対応を管理する情報である。コード対応情報は、例えば、地域コードと変換コードとの対の情報である。コード対応情報は、地域コードと変換コードとのリンクの情報でも良い。つまり、コード対応情報は、地域コードから変換コードを取得できる情報であれば良い。変換コードとは、特定の地域コードに対して、住所情報処理装置Aが置換情報を取得する際に使用するコードである。
【0039】
また、地域コード格納部11および変換コード格納部12は、住所情報処理装置Aが具備することは好適であるが、図示しない外部の装置に存在していても良い。
【0040】
受付部2は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、対象情報、開始指示である。対象情報は、処理対象の情報である。対象情報は、住所情報を有する。対象情報は、他情報を含んでも良い。他情報は、住所情報以外の情報である。他情報の内容やデータ構造等は問わない。開始指示は、住所情報処理装置Aの動作の開始の指示である。
【0041】
ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
【0042】
各種の指示や情報の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
【0043】
処理部3は、各種の処理を行う。各種の処理は、例えば、対象情報取得部31、地域コード取得部32、置換情報取得部33、置換情報処理部34が行う処理である。
【0044】
対象情報取得部31は、1または2以上の対象情報を取得する。対象情報取得部31は、例えば、受付部2が受け付けた1以上の対象情報を取得する。対象情報取得部31は、例えば、格納部1の1以上の対象情報を取得する。対象情報取得部31は、例えば、図示しない外部の装置から、1以上の対象情報を受信する。対象情報取得部31が対象情報を取得する方法や、対象情報の取得ルートは問わない。
【0045】
対象情報取得部31は、例えば、各々異なる住所情報を含む2つの対象情報を取得する。
【0046】
対象情報取得部31は、例えば、住所情報を含む2以上の説明変数の集合である対象情報を取得する。なお、説明変数は、機械学習の学習処理または予測処理に使用される情報である。
【0047】
地域コード取得部32は、対象情報取得部31が取得した対象情報が有する住所情報の少なくとも一部に対応する地域コードを、地域コード格納部11から取得する。
【0048】
地域コード取得部32は、例えば、対象情報が有する住所情報の少なくとも一部に一致する情報を有する対応情報に含まれる地域コードを、地域コード格納部11から取得する。
【0049】
地域コード取得手段321は、対象情報が有する住所情報の少なくとも一部に対応する地域コードを、地域コード格納部11から取得する。
【0050】
地域コード取得手段321は、例えば、2以上の各対象情報に対応する地域コードを、地域コード格納部から取得する。
【0051】
変換コード取得手段322は、地域コード取得手段321が取得した地域コードが変換条件を満たす場合に、地域コード取得手段321が取得した地域コードと対になる変換コードを、変換コード格納部12から取得する。
【0052】
変換条件は、例えば、変換コード格納部12の中に、地域コード取得手段321が取得した地域コードが存在することである。変換条件は、例えば、地域コード取得手段321が取得した地域コードが所定の数値または所定の文字列を含むことである。
【0053】
置換情報取得部33は、地域コード取得部32が取得した地域コードを要素して含むベクトルである置換情報を取得する。地域コードを要素して含むベクトルとは、地域コードを一の要素とするベクトルでも良いし、地域コードから取得された2以上の要素を含むベクトルでも良い。例えば。地域コードが、郵便番号「603-8555」である場合、ベクトルは、[6038555]を一要素とするベクトルでも良いし、[603,8555]の2つの要素を有するベクトルでも良い。
【0054】
置換情報取得部33は、例えば、住所情報の中で、地域コードに対応しない文字列に含まれる番地情報またはフロア情報に対応する数値を取得し、当該数値をも要素して含むベクトルである置換情報を取得する。
【0055】
置換情報取得部33は、例えば、住所情報「京都府京都市下京区東塩小路町721-1」のうちの「京都府京都市下京区東塩小路町」に対応する郵便番号「600-8216」から取得されるベクトルの要素と、「下京区東塩小路町」の文字列からOne-Hot Encodingにより取得されるベクトルの要素と、番地情報「721-1」から取得されるベクトルの要素とを有するベクトルである置換情報を取得する。かかる置換情報は、例えば、[600,8216][0,0,1,・・・,0,0][721,1]を有するベクトルである。なお、ここで、[0,0,1,・・・,0,0]は、「下京区東塩小路町」の文字列からOne-Hot Encodingにより取得されるベクトルの要素の集合である、とする。なお、One-Hot Encodingは、公知技術であるので、説明は省略する。なお、かかる方法は、後述するProc1の方法である。
【0056】
例えば、対象情報が有する住所情報が「京都府京都市下京区東塩小路町721-1」である場合、置換情報取得部33は、例えば、「京都府京都市下京区東塩小路町」に対応する郵便番号「600-8216」と番地情報である「721-1」とを有する置換情報を取得する。なお、ここで、置換情報は、ベクトル(600,8216,721,1)であることは好適である。なお、かかる方法は、後述するProc2の方法である。
【0057】
置換情報取得部33は、例えば、地域コード取得部32が取得した各地域コードを要素して含む2つのベクトルである2つの置換情報を取得する。
【0058】
置換情報取得部33は、例えば、2以上の各対象情報ごとに、対象情報が有する住所情報の少なくとも一部に対応する地域コードをベクトルの1以上の要素にし、かつ他情報からベクトルの1以上の要素を取得し、地域コードである1以上の要素と、他情報から取得した1以上の要素とを有するベクトルである置換情報を取得する。なお、他情報からベクトルの1以上の要素を取得する処理は、例えば、One-Hot Encodingであるが問わない。他情報からベクトルの1以上の要素を取得する処理は、例えば、他情報に対応する値を、図示しないデータベースから取得する処理でも良い。
【0059】
置換情報取得部33は、例えば、変換コード取得手段322が取得した変換コードを要素して含むベクトルである置換情報を取得する。言い換えれば、置換情報取得部33は、例えば、対象情報が有する住所情報の少なくとも一部を、変換コード取得手段322が取得した変換コードに置き換えた置換情報を取得する。
【0060】
置換情報処理部34は、置換情報取得部33が取得した1または2以上の置換情報に対して、予め決められた処理を行い、処理結果を取得する。
【0061】
置換情報処理部34は、例えば、置換情報取得部33が取得した2つのベクトル間の距離を算出し、距離である処理結果を取得する。なお、ここでの2つのベクトルは、2つの置換情報である。
【0062】
置換情報処理部34は、例えば、置換情報取得部33が取得した2以上の置換情報である2以上の教師データに対して、機械学習の学習処理を行い、学習モデルである処理結果を取得する。
【0063】
置換情報処理部34は、例えば、住所情報処理装置Aが蓄積した学習モデルと置換情報とを用いて、機械学習の予測処理を行い、処理結果を取得する。
【0064】
以下、予め決められた処理の具体例について、詳細に説明する。なお、予め決められた処理は問わないが、上述した通り、例えば、予め決められた処理は、2つのベクトルである置換情報間の距離を算出する処理、機械学習の学習処理、機械学習の予測処理である。
(1)置換情報処理部34が距離を算出する場合
【0065】
置換情報処理部34は、2つのベクトルである置換情報間の距離を算出し、当該距離である処理結果を取得する。なお、2つのベクトル間の距離は、例えば、ユークリッド距離であるが、コサイン類似度による距離、マハラノビス距離等でも良い。2つのベクトル間の距離を算出する技術は公知技術であるので、詳細な説明は省略する。
【0066】
また、2つの置換情報が住所情報から取得された要素のみからなるベクトルである場合、当該2つの置換情報の距離は、物理的距離と言うこととする。一方、2つの置換情報が住所情報から取得された要素と他情報から取得された要素とを有するベクトルである場合、当該2つの置換情報の距離は、意味的距離と言うこととする。なお、意味的距離は、意味的類似距離と言っても良い。2つの置換情報が他情報をも有する場合、2つの置換情報間の距離は、領域間の物理的な距離のみならず、他の情報により生じる距離をも含むので、意味的距離と言うこととする。
(2)置換情報処理部34が機械学習の学習処理を行う場合
【0067】
置換情報処理部34は、置換情報取得部33が取得した2以上のベクトルである2以上の教師データに対して、機械学習の学習処理を行い、学習モデルである処理結果を取得する。なお、教師データは、置換情報である。なお、学習モデルは、学習器、分類器等と言っても良い。
【0068】
また、機械学習のアルゴリズムは問わない。機械学習の学習処理を行うアルゴリズムは、例えば、深層学習、決定木、ランダムフォレスト、SVM、SVR等が利用可能であるが、機械学習の種類は問わない。
【0069】
置換情報処理部34は、例えば、機械学習の学習処理を行うモジュールに、2以上の置換情報を与え、当該モジュールを実行することにより、学習モデルを取得する。
【0070】
置換情報処理部34は、例えば、機械学習の学習処理を行うモジュールに、1以上の正例である置換情報と1以上の負例である置換情報とを与え、当該モジュールを実行することにより、学習モデルを取得する。
【0071】
なお、上記の学習処理のモジュールは、例えば、TensorFlowのライブラリの中の各種の関数、fastText、tinySVM、R言語のrandom forestのモジュール等である。
(3)置換情報処理部34が機械学習の予測処理を行う場合
【0072】
置換情報処理部34は、(2)の学習処理により取得された学習モデルと、置換情取得部33が取得したベクトルとを用いて、機械学習の予測処理を行い、処理結果を取得する。なお、置換情取得部33が取得したベクトルとは、地域コード取得部32が住所情報から取得した地域コードを要素して含むベクトルである。
【0073】
また、学習処理と同様、予測処理を行う機械学習のアルゴリズムは問わない。機械学習の予測処理を行うアルゴリズムは、学習処理と同様、例えば、深層学習、決定木、ランダムフォレスト、SVM、SVR等が利用可能であるが、機械学習の種類は問わない。なお、かかるモジュールは、例えば、TensorFlowのライブラリの中の各種の関数、fastText、tinySVM、R言語のrandom forestのモジュール等である。
【0074】
出力部4は、各種の情報を出力する。ここで、各種の情報は、例えば、処理結果である。処理結果は、例えば、上述した距離、学習モデル、予測処理における予測結果である。
【0075】
ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
【0076】
処理結果出力部41は、処理結果を出力する。処理結果出力部41は、例えば、学習モデルを格納部1または図示しない他の装置に蓄積する。処理結果出力部41は、例えば、距離を表示する。処理結果出力部41は、例えば、予測結果を表示する。
【0077】
格納部1、地域コード格納部11、および変換コード格納部12は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
【0078】
格納部1等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部1等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。
【0079】
受付部2は、例えば、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
【0080】
処理部3、対象情報取得部31、地域コード取得部32、置換情報取得部33、置換情報処理部34、地域コード取得手段321、および変換コード取得手段322は、通常、プロセッサやメモリ等から実現され得る。処理部3等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、例えば、CPU、MPU、GPU等であり、その種類は問わない。
【0081】
出力部4、および処理結果出力部41は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部4等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
【0082】
次に、住所情報処理装置Aの動作例について、図2のフローチャートを用いて説明する。
【0083】
(ステップS201)受付部2は、開始指示を受け付けたか否かを判断する。開始指示を受け付けた場合はステップS202に行き、開始指示を受け付けなかった場合はステップS201に戻る。
【0084】
(ステップS202)対象情報取得部31は、1以上の対象情報を取得する。なお、対象情報は、開始指示に含まれていても良いし、格納部1に存在していても良いし、図示しない外部の装置から受信される等でも良い。
【0085】
(ステップS203)地域コード取得部32は、カウンタiに1を代入する。
【0086】
(ステップS204)地域コード取得部32は、ステップS202で取得された対象情報の中で、i番目の対象情報が存在するか否かを判断する。i番目の対象情報が存在する場合はステップS205に行き、i番目の対象情報が存在しない場合はステップS209に行く。
【0087】
(ステップS205)地域コード取得部32は、i番目の対象情報から住所情報を取得する。
【0088】
(ステップS206)地域コード取得部32は、ステップS205で取得した住所情報の全部または一部と対になる地域コードを、地域コード格納部11から取得する。
【0089】
(ステップS207)置換情報取得部33は、ステップS206で取得された地域コードを用いて、置換情報を取得し、図示しないバッファに一時蓄積する。かかる置換情報取得処理の例について、図3のフローチャートを用いて説明する。
【0090】
(ステップS208)地域コード取得部32は、カウンタiを1、インクリメントする。ステップS204に戻る。
【0091】
(ステップS209)置換情報処理部34は、ステップS207で一時蓄積された1以上の置換情報に対して、所定の処理を行い、処理結果を取得する。
【0092】
(ステップS210)処理結果出力部41は、ステップS209で取得された処理結果を出力する。ステップS201に戻る。
【0093】
なお、図2のフローチャートにおいて、ステップS209における所定の処理は、例えば、上述した距離の算出処理、機械学習の学習処理、機械学習の予測処理であるが、1以上の置換情報を用いた処理であれば、他の処理でも良い。
【0094】
また、図2のフローチャートにおいて、ステップS206の後、変換コード取得手段322は、ステップS206で取得された地域コードが変換条件を満たすか否かを判断し、変換条件を満たす場合、変換コード取得手段322は、地域コードに対応する変換コードを変換コード格納部12から取得することは好適である。そして、かかる場合、置換情報取得部33は、地域コードに代えて、取得された変換コードを用いて、置換情報を取得することは好適である。
【0095】
さらに、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0096】
次に、ステップS207の置換情報取得処理の例について、図3のフローチャートを用いて説明する。
【0097】
(ステップS301)置換情報取得部33は、ステップS205で取得されているi番目の住所情報の中に、1以上のコード外情報が存在するか否かを判断する。1以上のコード外情報が存在する場合はステップS302に行き、1以上のコード外情報が存在しない場合はステップS307に行き。
【0098】
なお、コード外情報とは、住所情報の中の情報であり、地域コード取得部32が取得した地域コードに対応しない情報である。例えば、住所情報が「京都府京都市下京区東塩小路町721-1」であり、地域コード取得部32が取得した地域コード(ここでは、郵便番号)が「600-8216」である場合、コード外情報は、住所情報から郵便番号「600-8216」に対応する「京都府京都市下京区東塩小路町」を除いた「721-1」である。
【0099】
(ステップS302)置換情報取得部33は、カウンタiに1を代入する。
【0100】
(ステップS303)置換情報取得部33は、ステップS301で取得したコード外情報の中で、i番目のコード外情報が存在するか否かを判断する。i番目のコード外情報が存在する場合はステップS304に行き、i番目のコード外情報が存在しない場合はステップS307に行く。
【0101】
(ステップS304)置換情報取得部33は、i番目のコード外情報からベクトルを構成する要素を取得するか否かを判断する。要素を取得する場合はステップS305に行き、要素を取得しない場合はステップS306に行く。なお、コード外情報によって、ベクトルの要素を構成する元情報となるか否かが決まっている、とする。例えば、住所情報のうち「番地」「号」はベクトルの要素となり、「建物名(例えば、マンション名)」や「室番号」はベクトルの要素とならない、と決まっている。また、例えば、コード外情報「721-1」のうち、数値である「721」「1」はベクトルの要素となり、文字「-」はベクトルの要素とならない、と決まっている。ただし、住所情報のうち、どの情報をベクトルの要素とするかは、置換情報処理部34が行う処理により異なることは好適である。
【0102】
(ステップS305)置換情報取得部33は、i番目のコード外情報からベクトルを構成する要素を取得する。なお、置換情報取得部33は、例えば、2つのコード外情報を含む「721-1」のうちの「721」または「1」を取得する。
【0103】
(ステップS306)置換情報取得部33は、カウンタiを1、インクリメントする。ステップS303に戻る。なお、ステップS303からステップS306のループにより、例えば、ベクトルの要素「721」「1」が取得された。
【0104】
(ステップS307)置換情報取得部33は、ステップS204におけるi番目の対象情報の中で、1以上の他情報が存在するか否かを判断する。1以上の他情報が存在する場合はステップS308に行き、1以上の他情報が存在しない場合はステップS313に行く。
【0105】
(ステップS308)置換情報取得部33は、カウンタjに1を代入する。
【0106】
(ステップS309)置換情報取得部33は、i番目の対象情報の中の1以上の他情報の中で、j番目の他情報が存在するか否かを判断する。j番目の他情報が存在する場合はステップS310に行き、j番目の他情報が存在しない場合はステップS313に行く。
【0107】
(ステップS310)置換情報取得部33は、j番目の他情報を用いて、ベクトルの要素を取得するか否かを判断する。ベクトルの要素を取得する場合はステップS311に行き、ベクトルの要素を取得しない場合はステップS312に行く。なお、他情報によって、ベクトルの要素の元の情報になるか否かが、予め決まっている、とする。
【0108】
(ステップS311)置換情報取得部33は、j番目の他情報を用いて、ベクトルの要素を取得する。なお、置換情報取得部33は、j番目の他情報を、そのままベクトルの要素としても良いし、j番目の他情報と対になる値を図示しないテーブルから取得する等しても良い。j番目の他情報を用いてベクトルの要素を取得する方法は問わない。
【0109】
(ステップS312)置換情報取得部33は、カウンタjを1、インクリメントする。ステップS309に戻る。
【0110】
(ステップS313)置換情報取得部33は、ステップS206で取得された地域コードを1または2以上の要素とするベクトルを構成する。なお、かかるベクトルは、ステップS305で取得された要素を有しても良い。また、かかるベクトルは、ステップS311で取得された要素を有しても良い。また、変換コードが取得されている場合、置換情報取得部33は、ステップS206で取得された地域コードに代えて、当該変換コードを1または2以上の要素とするベクトルを構成する。
【0111】
以下、本実施の形態における住所情報処理装置Aの具体的な動作例について説明する。以下、4つの具体例について説明する。ここでの具体例において、地域コードは郵便番号である、とする。
【0112】
(具体例1)
今、地域コード格納部11には、図4に示す郵便番号管理表が格納されている、とする。ここでの郵便番号管理表は、日本の各地域の郵便番号を管理する表である。郵便番号管理表は、「ID」「住所情報」「郵便番号」を有するレコードを、多数、管理している。なお、「ID」は、レコードを識別する情報である。
【0113】
また、変換コード格納部12には、図5に示す変換コード管理表が格納されている、とする。ここでの変換コード管理表は、「ID」「郵便番号」「変換コード」を有するレコードを、多数、管理している。なお、「ID」は、レコードを識別する情報である。また、ここで管理されている「郵便番号」は、飛び地の郵便番号である、とする。
【0114】
そして、具体例1において、図6を用いて、住所情報処理装置Aの処理例を説明する。具体例1において、住所情報処理装置Aは、2つの住所情報から2つの地点の距離を算出する処理を行う、とする。ここでの距離は、住所情報のみを用いて算出した距離であるので、上述した物理的距離である、と言える。
【0115】
なお、具体例1において、One-Hot Encodingのみを用いた従来手法と、住所情報処理装置Aの手法1(Proc1)と、手法2(Proc2)の3つの手法を説明する。
【0116】
そして、与えられる2つの住所情報は、住所1「京都府京都市下京区東塩小路町721-1」と住所2「京都府京都市下京区中堂寺命婦町1-10」であった、とする。?
[従来手法]
【0117】
従来手法は、住所情報を構成するすべての情報を、One-Hot Encodingによりベクトル化する方法である。つまり、従来手法において、住所1の「京都府京都市」の文字列から、One-Hot Encodingにより、ベクトル[1,1,0,・・・,0]が取得された、とする。また、住所1の「下京区東塩小路町」の文字列から、One-Hot Encodingにより、ベクトル[0,0,1,・・,1,・・,0,0]が取得された、とする。さらに、住所1の「721-1」から、ベクトル[0,1,・・1,・・1]が取得される。そして、取得したベクトルを結合し、置換情報1[1,1,0,・・・,0,0,0,1,・・,1,・・,0,0,1,・・1,・・1]が取得された、とする(601参照)。なお、ここで、610は、2つのベクトルとしているが、後述する距離の算出の際には、一つの結合したベクトルを使用する。
【0118】
また、従来手法において、住所2の「京都府京都市」の文字列から、One-Hot Encodingにより、ベクトル[1,1,0,・・・,0]が取得された、とする。また、住所2の「下京区中堂寺命婦町」の文字列から、One-Hot Encodingにより、ベクトル[0,0,1,・・,1,・・,1,0]が取得される。さらに、住所2の「1-10」から、ベクトル[0,1,・・1,・・1,・,・0]が取得された、とする。そして、取得したベクトルを結合し、置換情報2[1,1,0,・・・,0,0,0,1,・・,1,・・,0,1,・・1,・・1・・,0]が取得された、とする。
【0119】
次に、従来手法において、ベクトルである置換情報1と置換情報2とのユークリッド距離(X)が算出され、当該距離(X)が出力される。
[Proc1]
【0120】
Proc1は、住所情報に対応する郵便番号から得られる要素と、住所情報が含む区市町村の文字列からOne-Hot Encodingにより取得される多数の要素と、住所情報が含む番地情報(地番)および住居表示から取得される要素からなるベクトルを構成する方法である。
【0121】
Proc1により処理を行う住所情報処理装置Aの受付部2は、住所1「京都府京都市下京区東塩小路町721-1」と住所2「京都府京都市下京区中堂寺命婦町1-10」の2つの住所情報を受け付けた、とする。
【0122】
次に、対象情報取得部31は、受付部2が受け付けた住所1と住所2とを取得する。
【0123】
次に、地域コード取得部32は、住所1の「京都府京都市下京区東塩小路町」と対になる郵便番号「600-8216」を、図4の郵便番号管理表から取得する。
【0124】
次に、置換情報取得部33は、郵便番号「600-8216」からベクトル[600,8216]を取得する。また、置換情報取得部33は、住所1の「下京区東塩小路町」に対して、One-Hot Encodingにより、ベクトル[0,0,1,・・,1,・・,0,0]を取得した、とする。また、置換情報取得部33は、住所1の「721-1」からベクトル[0,1,・・1,・・1]を取得する。
【0125】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報1[600,8216,0,0,1,・・,0,0,0,1,・・,1,・・1]を取得した、とする(602参照)。
【0126】
同様に、地域コード取得部32は、住所2の「京都府京都市下京区中堂寺命婦町」と対になる郵便番号「600-8533」を、図4の郵便番号管理表から取得する。
【0127】
次に、置換情報取得部33は、郵便番号「600-8533」からベクトル[600,8533]を取得する。また、置換情報取得部33は、住所2の「下京区中堂寺命婦町」に対して、One-Hot Encodingにより、ベクトル[0,0,1,・・,1,・・,1,0]を取得した、とする。また、置換情報取得部33は、住所1の「1-10」からベクトル[0,1,・・1,・・1,・,・0]を取得する。
【0128】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報2[600,8533,0,0,1,・・・,1,0,1,・・1,・・1,・,・0]を取得する。
【0129】
次に、置換情報処理部34は、ベクトルである置換情報1と置換情報2とのユークリッド距離(X)を算出する。次に、処理結果出力部41は、当該距離(X)を出力する。
[Proc2]
【0130】
Proc2は、住所情報に対応する郵便番号から得られる要素と、郵便番号に対応する文字列(都道府県区市町村)を除いた住所情報(番地情報を含む情報)から取得される要素とを含むベクトルを構成する方法である。
【0131】
Proc2により処理を行う住所情報処理装置Aの受付部2は、住所1「京都府京都市下京区東塩小路町721-1」と住所2「京都府京都市下京区中堂寺命婦町1-10」の2つの住所情報を受け付けた、とする。
【0132】
次に、対象情報取得部31は、受付部2が受け付けた住所1と住所2とを取得する。
【0133】
次に、地域コード取得部32は、住所1の「京都府京都市下京区東塩小路町」と対になる郵便番号「600-8216」を、図4の郵便番号管理表から取得する。
【0134】
次に、置換情報取得部33は、郵便番号「600-8216」からベクトル[600,8216]を取得する。また、置換情報取得部33は、住所1の「721-1」からベクトル[721,1]を取得する。
【0135】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報1[600,8216,721,1]を取得する(603参照)。
【0136】
同様に、地域コード取得部32は、住所2の「京都府京都市下京区中堂寺命婦町」と対になる郵便番号「600-8533」を、図4の郵便番号管理表から取得する。
【0137】
次に、置換情報取得部33は、郵便番号「600-8533」からベクトル[600,8533]を取得する。また、置換情報取得部33は、住所1の「1-10」からベクトル[1,10]を取得する。
【0138】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報2[600,8533,1,10]を取得する。
【0139】
次に、置換情報処理部34は、ベクトルである置換情報1[600,8216,721,1]と置換情報2[600,8533,1,10]とのユークリッド距離(X)を算出する。次に、処理結果出力部41は、当該距離(X)を出力する。
【0140】
次に、処理結果出力部41は、置換情報処理部34が取得した評価値を出力する。
【0141】
以上の処理により、Proc1およびProc2において、住所情報の一部を地域コードに置き換えて、特に、Proc2では、非常に少ない次元のベクトルを構成し、当該ベクトルを用いて2地点間の距離を算出することにより、高速な距離算出処理が可能となる。
【0142】
(具体例2)
具体例2において、米国の2つの住所情報の間の距離を算出する処理について、図7を用いて説明する。具体例2において、具体例1と同様、One-Hot Encodingのみを用いた従来手法と、住所情報処理装置Aの手法1(Proc1)と、手法2(Proc2)の3つの手法を説明する。
[従来手法]
【0143】
与えられる住所1が「29 E 2nd Ave, New York」(図7の701)である場合、具体例1の従来手法の処理と同様に、One-Hot Encodingによりベクトル化すると、[0,・・,1,・・,1,1,1,0,0,・・・,0,1,1,0,・・・,0](702)となった、とする。
【0144】
また、与えられる住所2「205 E, Houston, St, New York, NY」(703)を、One-Hot Encodingによりベクトル化すると、[0,・・,1,・・,1,0,0,1,1,・・・,0,1,1,0,・・・,0](704)となった、とする。
【0145】
さらに、与えられる住所3「182 2nd, Ave, New York, NY」(705)を、One-Hot Encodingによりベクトル化すると、[0,・・,1,・・,0,1,1,0,0,・・・,0,1,1,0,・・・,0](706)となった、とする。
【0146】
そして、従来手法により、住所1の地点と住所2の地点との距離(Y)を、ベクトル702とベクトル704とのユークリッド距離として、算出し、当該距離(Y)を出力した、とする。
【0147】
また、従来手法により、住所1の地点と住所3の地点との距離(Y)を、ベクトル702とベクトル706とのユークリッド距離として、算出し、当該距離(Y)を出力した、とする。
[Proc1]
【0148】
Proc1により処理を行う住所情報処理装置Aの受付部2は、上記の住所1、住所2、住所3を受け付けた、とする。
【0149】
次に、対象情報取得部31は、受付部2が受け付けた住所1と住所2と住所3とを取得する。
【0150】
次に、地域コード取得部32は、住所1の「street,city,state」に対応する「E 2nd Ave, New York」と対になるzip code「10,0003」を、郵便番号管理表から取得する。なお、具体例2における郵便番号管理表は、図4と同じ構造である。
【0151】
次に、置換情報取得部33は、住所1の「#address」の「29」からベクトル[0,・・,1,・・,0]を取得する。また、置換情報取得部33は、住所1の「E 2nd Ave, New York」に対して、One-Hot Encodingにより、ベクトル[1,1,1,0,0,・・・,0]を取得した、とする。また、置換情報取得部33は、地域コード取得部32が取得したzip code「10,003」からベクトル[10,003]を取得する。
【0152】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報1[0,・・,1,・・,0,1,1,1,0,0,・・・,0,10,003]を取得する(707参照)。
【0153】
同様に、地域コード取得部32は、住所2の「E, Houston, St, New York, NY」と対になるzip code「10-002」を、郵便番号管理表から取得する。
【0154】
次に、置換情報取得部33は、住所2の「#address」の「205」からベクトル[0,・・,1,・・,0]を取得する。また、置換情報取得部33は、住所2の「E, Houston, St, New York, NY」に対して、One-Hot Encodingにより、ベクトル[1,0,0,1,1,・・・,0]を取得した、とする。また、置換情報取得部33は、zip code「10,002」からベクトル[10,002]を取得する。
【0155】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報2[0,・・,1,・・,0,1,0,0,1,1,・・・,0,10,002]を取得する(708参照)。
【0156】
同様に、地域コード取得部32は、住所3の「2nd, Ave, New York, NY」と対になるzip code「10-003」を、郵便番号管理表から取得する。
【0157】
次に、置換情報取得部33は、住所3の「#address」の「182」からベクトル[0,・・,1,・・,0]を取得する。また、置換情報取得部33は、住所3の「2nd, Ave, New York, NY」に対して、One-Hot Encodingにより、ベクトル[0,1,1,0,0,・・・,0]を取得した、とする。また、置換情報取得部33は、zip code「10,003」からベクトル[10,003]を取得する。
【0158】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報3[0,・・,1,・・,0,1,1,0,0,・・・,0,10,003]を取得する(709参照)。
【0159】
次に、置換情報処理部34は、ベクトルである置換情報1と置換情報2とのユークリッド距離(Y)を算出する。次に、処理結果出力部41は、当該距離(Y)を出力する。
【0160】
また、置換情報処理部34は、ベクトルである置換情報1と置換情報3とのユークリッド距離(Y)を算出する。次に、処理結果出力部41は、当該距離(Y)を出力する。
[Proc2]
【0161】
Proc2により処理を行う住所情報処理装置Aの受付部2は、上記の住所1、住所2、住所3を受け付けた、とする。
【0162】
次に、対象情報取得部31は、受付部2が受け付けた住所1と住所2と住所3とを取得する。
【0163】
次に、地域コード取得部32は、住所1の「street,city,state」に対応する「E 2nd Ave, New York」と対になるzip code「10,0003」を、郵便番号管理表から取得する。
【0164】
次に、置換情報取得部33は、住所1の「#address」の「29」からベクトル[029]を取得する。また、置換情報取得部33は、street番号「2nd」からベクトル[2]を取得する。また、置換情報取得部33は、zip code「10,003」からベクトル[10,003]を取得する。
【0165】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報1[029,2,10,003]を取得する(710参照)。
【0166】
同様に、地域コード取得部32は、住所2の「E, Houston, St, New York, NY」と対になるzip code「10-002」を、郵便番号管理表から取得する。
【0167】
次に、置換情報取得部33は、住所2の「#address」の「205」からベクトル[205]を取得する。また、置換情報取得部33は、住所2のstreet番号が存在しないので、存在しないことに対応するベクトル[0]を取得する。また、置換情報取得部33は、zip code「10,002」からベクトル[10,002]を取得する。
【0168】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報2[205,0,10,002]を取得する(711参照)。
【0169】
同様に、地域コード取得部32は、住所3の「2nd, Ave, New York, NY」と対になるzip code「10-003」を、郵便番号管理表から取得する。
【0170】
次に、置換情報取得部33は、住所3の「#address」の「182」からベクトル[182]を取得する。また、置換情報取得部33は、住所3のstreet番号「2nd」からベクトル[2]を取得する。また、置換情報取得部33は、zip code「10,003」からベクトル[10,003]を取得する。
【0171】
次に、置換情報取得部33は、取得したベクトルを結合し、置換情報3[182,2,10,003]を取得する(712参照)。
【0172】
次に、置換情報処理部34は、ベクトルである置換情報1と置換情報2とのユークリッド距離(Y)を算出する。次に、処理結果出力部41は、当該距離(Y)を出力する。
【0173】
また、置換情報処理部34は、ベクトルである置換情報1と置換情報3とのユークリッド距離(Y)を算出する。次に、処理結果出力部41は、当該距離(Y)を出力する。
【0174】
以上の処理により、Proc1およびProc2において、住所情報の一部を地域コードに置き換えて、特に、Proc2では、非常に少ない次元のベクトルを構成し、当該ベクトルを用いて2地点間の距離を算出することにより、高速な距離算出処理が可能となる。
[実験結果]
【0175】
以下、具体例2における実験結果について述べる。本実験において、アメリカの6都市(ニューヨーク,ワシントン,ボストン,サンフランシスコ,ロサンゼルス,シアトル)から6720件のPOIデータを利用した。アメリカの各都市のデータを、図8に示す。図8において、各都市の州の地域コード(State Code)、街のコードの範囲(City Code)、およびPOIデータの数(#POIs)が記載されている。
【0176】
かかる条件で、以下の3つの実験について説明する。
[実験1]
【0177】
実験1では、上述した従来手法、Proc1の手法、およびProc2の手法の各々の距離の算出の精度を測定した。
【0178】
距離の精度を評価するために、第一に、各POIの緯度経度の情報を用いて各POI間の実距離を算出した。そして、実距離と従来手法との誤差(ユークリッド距離)、実距離とProc1の手法との誤差(ユークリッド距離)、および実距離とProc2との誤差(ユークリッド距離)を算出し、当該各誤差に対して、Min-Max正規化を行い、MSEの値で比較を行った。
【0179】
また、距離の精度を評価するために、第二に、各POI間の従来手法と提案手法のそれぞれのコサイン類似度による距離を算出し、それぞれに対してさらにMin-Max正規化を行い、MSEの値で比較を行った。
【0180】
かかる実験1の結果を図9に示す。図9の(a)は従来手法、(b)はProc1、(c)はProc2である。図9の都市ごとおよび手法ごとの値は、手法ごとに実距離とのユークリッド距離、およびコサイン類似度による距離の平均値である。
【0181】
図9によれば、One-Hot encodingを用いずに、住所情報をベクトル化して、次元数が最も少ないProc2(c)の全都市間の距離の誤差の平均値が「0.1131」であり、最も精度が良かったことが分かる。
[実験2]
【0182】
実験2では、従来手法、Proc1の手法、およびProc2の手法の各々の距離算出の処理速度を測定した。
【0183】
具体的には、上述した米国の6都市のそれぞれについて、100件ずつデータ数(POI数)を増やしながら、ユークリッド距離を算出した場合の各手法の処理速度を測定した。なお、本実験では、pythonのtimeライブラリを用いてMin-Max正規化による距離の算出に要する時間を測定した。
【0184】
かかる測定の結果を図10に示す。図10の6のグラフ((a)~(f))は、各都市のPOI数ごとの処理時間を示すグラフであり、横軸がPOI数、縦軸が処理時間のグラフである。
【0185】
図10によれば、従来手法の結果のグラフ(1001,1004,1007,1010,1013,1016)と、Proc1の結果のグラフ(1002,1005,1008,1011,1014,1017)とは、大きな差異がなく、処理速度は、概ね同様であることが分かる。一方、図10において、Proc2の結果のグラフ(1003,1006,1009,1012,1015,1018)は、他の2つの手法と比較して、Proc2の手法は、非常に高速に処理ができていることを示す。
【0186】
これは、住所やストリート名などのテキストデータをOne-Hot Encodingによりベクトル化して、次元数の多いベクトルを構成し、処理することの負荷が大きいことを示す。
[実験3]
【0187】
実験3では、従来手法、Proc1の手法、およびProc2の手法の各々のメモリ使用効率を測定した。本実験において、memory profilerと呼ばれるpythonモジュールを用いてプログラムのメモリ消費量の行単位の分析を行い、各手法の距離算出のメモリ使用効率を測定した。
【0188】
かかる測定の結果を図11に示す。図11のグラフの縦軸はメモリ使用量(MiB)、横軸は時間(秒)である。図11の1101は、従来手法のグラフ、1102はProc1のグラフ、1103はProc2のグラフである。
【0189】
図11では、従来手法、Proc1では、約23000MiBのメモリを約230秒間使用し続けた(図11の1101、1102参照)のに対し、Proc2では、同じメモリ使用量で約1/10の25秒ほどで処理を完了させていることが分かる。
【0190】
以上の結果から、Proc2は、従来手法、Proc1よりもメモリ使用効率90%ほど高く、最も良い結果を示したことを確認できた。
【0191】
以上の3つの実験により、特に、Proc2の手法の良さが示せた。
【0192】
(具体例3)
具体例3は、置換情報処理部34が機械学習の学習処理を行う場合である。なお、具体例3において、One-Hot Encodingを用いないProc2の手法により、住所情報を用いてベクトルを構成する処理を採用する。
【0193】
今、格納部1には、図12のレストラン管理表が格納されている。レストラン管理表は、レストランの種類に対応する値を管理する表である。レストラン管理表は、「ID」「種類」「値」を有する2以上のレコードを管理している。なお、「種類」はレストランの種類であり、「値」はレストランの種類に置き換えられる数値である。
【0194】
また、地域コード格納部11には、図4に示す郵便番号管理表が格納されている、とする。また、変換コード格納部12には、図5に示す変換コード管理表が格納されている、とする。
【0195】
さらに、格納部1には、図13に示すユーザ訪問レストラン管理表が格納されている、とする。ユーザ訪問レストラン管理表は、ユーザが今までに行ったレストランの情報を管理する表である。なお、ユーザは、特定の一のユーザでも良いし、複数のユーザでも良い。ユーザ訪問レストラン管理表は、「ID」「住所情報」「店舗属性」「評価値」を有する多数のレコードを有する。「店舗属性」は、ここでは「種類」「平均単価」「メニュー数」「規模」を有する。「種類」はレストランの種類である。「平均単価」は、一人の客あたりの平均単価である。「メニュー数」は、レストランで提供され得る料理(コースを含む)の数である。なお、ユーザ訪問レストラン管理表のレコードは、機械学習の対象の対象情報である、とする。また、ユーザ訪問レストラン管理表の各レコードが格納される経緯や方法等は問わない。ユーザ訪問レストラン管理表の各レコードは、例えば、ユーザが予約し、実際に訪問し、訪問後に評価値を入力した情報である。
【0196】
また、格納部1には、「規模」の各情報に対応する値を管理する規模値管理表が格納されている。「規模」は、レストランの規模であり、規模値管理表において、情報「大」は値「3」、情報「中」は値「2」、情報「小」は値「1」に対応付けられている、とする。
【0197】
かかる状況において、住所情報処理装置Aの使用者は、住所情報処理装置Aに対して、機械学習の学習処理の開始指示を入力した、とする。
【0198】
すると、住所情報処理装置Aの受付部2は、開始指示を受け付ける。
【0199】
次に、対象情報取得部31は、図13のすべてのレコードの「住所情報」「店舗属性」「評価値」を取得する。なお、「住所情報」「店舗属性」「評価値」を有する情報は、対応情報である。
【0200】
次に、地域コード取得部32は、対象情報取得部31が取得した各対象情報から住所情報を取得する。そして、地域コード取得部32は、取得した各住所情報の一部(ここでは、値道府県区市町村であり、郵便番号に対応する住所情報の一部)と対になる郵便番号を、図4の郵便番号管理表から取得する。
【0201】
次に、置換情報取得部33は、対象情報ごとに、取得した郵便番号(例えば、600-8216)からベクトルの2つ要素(例えば、[600,8216])を取得する。
【0202】
次に、置換情報取得部33は、対象情報ごとに、取得されている住所情報の中に、1以上のコード外情報(例えば、番地、号)が存在するか否かを判断する。コード外情報が存在する場合(例えば、「10番1号」の番地を有する場合)、置換情報取得部33は、当該コード外情報を用いて、ベクトルの1以上の要素(ここでは、[10,1])を取得する。
【0203】
次に、置換情報取得部33は、各対応情報が有する「種類」の情報と対になる「値」を、
図12のレストラン管理表から取得し、当該「値」をベクトルの一要素とする。
【0204】
次に、置換情報取得部33は、各対応情報が有する「平均単価」を、各対応情報に対応するベクトルの一要素として取得する。
【0205】
次に、置換情報取得部33は、各対応情報が有する「メニュー数」を、各対応情報に対応するベクトルの一要素として取得する。
【0206】
また、置換情報取得部33は、各対応情報が有する「規模」と対になる「値」を、格納部1から取得し、当該「値」をベクトルの一要素とする。
【0207】
次に、置換情報取得部33は、各対応情報が有する店舗属性の情報に対応する値を、ベクトルの一要素とする。
【0208】
さらに、置換情報取得部33は、各対応情報が有する「評価値」を、ベクトルの一要素とする。
【0209】
以上により、置換情報取得部33は、対象情報ごとに、(郵便番号から取得した2つの要素,住所情報のコード外情報から取得した1以上の要素,「種類」の情報と対になる「値」,平均単価,メニュー数,「規模」と対になる「値」,・・・,評価値)の構造を有するベクトルを構成する。なお、各ベクトルは、(郵便番号から取得した2つの要素,「種類」の情報と対になる「値」,平均単価,メニュー数,「規模」と対になる「値」,・・・)を説明変数とし、「評価値」を目的変数とする教師データである。また、ここで、教師データは、図13のレコードの数だけ構成される。
【0210】
次に、置換情報処理部34は、置換情報取得部33が取得したすべての教師データに対して、機械学習の学習処理を行い、学習モデルを取得する。なお、学習モデルは、置換情報処理部34が取得する処理結果の一例である。
【0211】
次に、処理結果出力部41は、取得された学習モデルを、例えば、格納部1に蓄積する。
【0212】
以上の処理により、店舗の住所情報と店舗属性の情報とを入力とし、評価値を推定するための学習モデルが構築できた。また、以上の処理により、住所情報の一部を地域コードに置き換えて、非常に少ない次元のベクトルを構成し、当該ベクトルを用いて機械学習の学習処理を行うことにより、高速な学習処理が可能となる。
【0213】
(具体例4)
具体例4は、置換情報処理部34が機械学習の予測処理を行う場合である。なお、具体例4において、One-Hot Encodingを用いないProc2の手法により、住所情報を用いてベクトルを構成する処理を採用する。
【0214】
今、住所情報処理装置Aの格納部1に、具体例3の処理により構築された学習モデルが格納されている、とする。
【0215】
かかる状況において、ユーザが、利用したいと考えた店舗の「住所情報」「種類」「平均単価」「メニュー数」「規模」等を入力した、とする。
【0216】
すると、住所情報処理装置Aの受付部2は、入力された「住所情報」「種類」「平均単価」「メニュー数」「規模」等からなる対象情報を受け付ける。
【0217】
次に、対象情報取得部31は、かかる対象情報を取得する。
【0218】
次に、地域コード取得部32は、対象情報が有する「住所情報」を取得する。次に、地域コード取得部32は、取得した住所情報の一部と対になる郵便番号を、図4の郵便番号管理表から取得する。
【0219】
次に、置換情報取得部33は、地域コード取得部32が取得した郵便番号(例えば、603-8555)からベクトルの2つ要素(例えば、[603,8555])を取得する。
【0220】
次に、置換情報取得部33は、対象情報ごとに、取得されている住所情報の中に、1以上のコード外情報(例えば、番地、号)が存在するか否かを判断する。コード外情報が存在する場合(例えば、「3番8号」の番地を有する場合)、置換情報取得部33は、当該コード外情報を用いて、ベクトルの1以上の要素(ここでは、[3,8])を取得する。
【0221】
次に、置換情報取得部33は、取得された一の対応情報が有する「種類」の情報と対になる「値」を、図12のレストラン管理表から取得し、当該「値」をベクトルの一要素とする。
【0222】
次に、置換情報取得部33は、当該一の対応情報が有する「平均単価」を、各対応情報に対応するベクトルの一要素として取得する。
【0223】
次に、置換情報取得部33は、当該一の対応情報が有する「メニュー数」を、各対応情報に対応するベクトルの一要素として取得する。
【0224】
また、置換情報取得部33は、当該一の対応情報が有する「規模」と対になる「値」を、格納部1から取得し、当該「値」をベクトルの一要素とする。
【0225】
さらに、置換情報取得部33は、当該一の対応情報が有する店舗属性の情報に対応する値を、ベクトルの一要素とする。
【0226】
以上により、置換情報取得部33は、(郵便番号から取得した2つの要素,住所情報のコード外情報から取得した1以上の要素,「種類」の情報と対になる「値」,平均単価,メニュー数,「規模」と対になる「値」,・・・)の構造を有する一のベクトルを構成する。ここでは、置換情報取得部33は、例えば、ベクトル[603,8555,3,8,1,5000,10,3,・・・]を構成する。
【0227】
次に、置換情報処理部34は、格納部1の学習モデルを取得する。そして、置換情報処理部34は、置換情報取得部33が取得した(郵便番号から取得した2つの要素,「種類」の情報と対になる「値」,平均単価,メニュー数,「規模」と対になる「値」,・・・)の構造を有する一のベクトルと、学習モデルとを、機械学習の予測処理を行うモジュールに与え、当該モジュールを実行し、予測された評価値を取得する。
【0228】
次に、処理結果出力部41は、置換情報処理部34が取得した評価値を出力する。
【0229】
以上の処理により、店舗の住所情報と店舗属性の情報とを用いて、当該店舗の評価値を推定できた。また、以上の処理により、住所情報の一部を地域コードに置き換えて、非常に少ない次元のベクトルを構成し、当該ベクトルを用いて機械学習の予測処理を行うことにより、高速な予測処理が可能となる。
【0230】
以上、本実施の形態によれば、住所情報を含む情報に対する処理において、処理コストを小さくできる。
【0231】
また、本実施の形態によれば、住所情報を含む情報を用いた2点間の距離を算出する処理において、処理コストを小さくできる。
【0232】
また、本実施の形態によれば、住所情報を含む情報に対する機械学習の学習処理において、処理コストを小さくできる。
【0233】
また、本実施の形態によれば、住所情報を含む情報に対する機械学習の予測処理において、処理コストを小さくできる。
【0234】
さらに、本実施の形態によれば、例えば、住所情報が示す領域が飛び地等の特異な場合でも、制度の高い住所情報の処理が可能となる。
【0235】
なお、本実施の形態における住所情報処理装置Aは、住所情報を含む対象情報を高速に処理できることから、リアルタイム処理に適している。また、住所情報処理装置Aは、住所情報を含む対象情報を対象にした機械学習の処理に好適であり、例えば、スマートフォンが協調して共有予測モデルの学習を行えるようにするフェデレーションラーニング(インターネットホームページURL:”https://developers-jp.googleblog.com/2017/05/federated-learning-collaborative.html ”参照)等にも有用である。
【0236】
また、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における住所情報処理装置Aを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、地域コードと住所情報の少なくとも一部との対応を示す1以上の対応情報が格納される地域コード格納部にアクセス可能なコンピュータを、住所情報を有する対象情報を取得する対象情報取得部と、前記住所情報の少なくとも一部に対応する地域コードを、前記地域コード格納部から取得する地域コード取得部と、前記地域コード取得部が取得した地域コードを要素して含むベクトルである置換情報を取得する置換情報取得部と、前記置換情報に対して、予め決められた処理を行い、処理結果を取得する置換情報処理部と、
前記処理結果を出力する処理結果出力部として機能させるためのプログラムである。
【0237】
また、図14は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の住所情報処理装置Aを実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図14は、このコンピュータシステム300の概観図であり、図15は、コンピュータシステム300のブロック図である。
【0238】
図14において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
【0239】
図15において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
【0240】
コンピュータシステム300に、上述した実施の形態の住所情報処理装置Aの機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
【0241】
プログラムは、コンピュータ301に、上述した実施の形態の住所情報処理装置Aの機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
【0242】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【0243】
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【0244】
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【0245】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0246】
以上のように、本発明にかかる住所情報処理装置は、住所情報を含む情報に対する処理において、処理コストを小さくできるという効果を有し、住所情報処理装置等として有用である。
【符号の説明】
【0247】
A 住所情報処理装置
1 格納部
2 受付部
3 処理部
4 出力部
11 地域コード格納部
12 変換コード格納部
31 対象情報取得部
32 地域コード取得部
33 置換情報取得部
33 置換情取得部
34 置換情報処理部
41 処理結果出力部
321 地域コード取得手段
322 変換コード取得手段
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15