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

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

▶ LINE Pay株式会社の特許一覧

特許7573957端末のデータの分類方法、端末、プログラム
<>
  • 特許-端末のデータの分類方法、端末、プログラム 図1
  • 特許-端末のデータの分類方法、端末、プログラム 図2
  • 特許-端末のデータの分類方法、端末、プログラム 図3
  • 特許-端末のデータの分類方法、端末、プログラム 図4
  • 特許-端末のデータの分類方法、端末、プログラム 図5
  • 特許-端末のデータの分類方法、端末、プログラム 図6
  • 特許-端末のデータの分類方法、端末、プログラム 図7
  • 特許-端末のデータの分類方法、端末、プログラム 図8
  • 特許-端末のデータの分類方法、端末、プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-18
(45)【発行日】2024-10-28
(54)【発明の名称】端末のデータの分類方法、端末、プログラム
(51)【国際特許分類】
   G06Q 10/00 20230101AFI20241021BHJP
   G06Q 40/12 20230101ALI20241021BHJP
【FI】
G06Q10/00
G06Q40/12
【請求項の数】 9
(21)【出願番号】P 2019138687
(22)【出願日】2019-07-29
(65)【公開番号】P2021022199
(43)【公開日】2021-02-18
【審査請求日】2022-05-26
【審判番号】
【審判請求日】2024-01-24
(73)【特許権者】
【識別番号】518179254
【氏名又は名称】LINE Pay株式会社
(74)【代理人】
【識別番号】110001759
【氏名又は名称】弁理士法人よつ葉国際特許事務所
(74)【代理人】
【識別番号】100093687
【弁理士】
【氏名又は名称】富崎 元成
(74)【代理人】
【識別番号】100168468
【弁理士】
【氏名又は名称】富崎 曜
(74)【代理人】
【識別番号】100166176
【弁理士】
【氏名又は名称】加美山 豊
(72)【発明者】
【氏名】齋藤 祐樹
(72)【発明者】
【氏名】菊地 悠
(72)【発明者】
【氏名】大幸 祐貴
【合議体】
【審判長】佐藤 智康
【審判官】安井 雅史
【審判官】月野 洋一郎
(56)【参考文献】
【文献】特開2012-146159(JP,A)
【文献】国際公開第2018/179411(WO,A1)
【文献】特開2014-56341(JP,A)
【文献】国際公開第2013/180121(WO,A1)
【文献】特開2019-020980(JP,A)
【文献】塔娜 他,レシート情報システムのためのデータベース設計と入力データ処理アルゴリズム ,電子情報通信学会技術研究報告 LOIS2012-47-LOIS2012-68ライフインテリジェンスとオフィス情報システム,第112巻,第379号,日本,一般社団法人電子情報通信学会,2013年01月10日,第85~90頁
【文献】森 信介 他,予測単位の変更によるn-gramモデルの改善,電子情報通信学会技術研究報告 NLC97-43~54 言語理解とコミュニケーション,第97巻,第440号,日本,社団法人電子情報通信学会,1997年12月12日,第35~42頁
(58)【調査した分野】(Int.Cl.,DB名)
G06Q10/00-99/00
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
象ユーザの新たなデータを取得する取得機能と、
前記新たなデータを、収支データベースを参照して、分類済みの収支データから、カテゴリーに分類可能であるか否かの第1の判断を下す第1判断機能と、
前記第1の判断により前記新たなデータがカテゴリーに分類可能であると判断された場合に、前記新たなデータを前記対象ユーザが既に分類しているカテゴリーのいずれかに分類する第1の分類を実行する第1分類機能と、
前記第1の判断により前記新たなデータがカテゴリーに分類不可能であると判断された場合に、前記新たなデータのエントロピーを算出する算出機能と、
記新たなデータの曖昧さの度合いを示す前記エントロピーが特定の値以上であるか否かの第2の判断を下す第2判断機能と、
前記第2の判断により前記エントロピーが前記特定の値以上であると判断された場合に、前記新たなデータを、第1のモデルに従ってカテゴリーに分類し、前記第2の判断により前記エントロピーが前記特定の値未満であると判断された場合に、前記新たなデータを、前記第1のモデルとは異なる第2のモデルに従ってカテゴリーに分類する第2の分類を実行する第2分類機能と、
を実現させる分類プログラム。
【請求項2】
請求項1に記載のデータの分類プログラムであって、
前記データは、収支に係るデータであり、少なくとも、物品又はサービスを購入した金額、収支が発生した日時、及び、購入した物品またはサービスの名称又は購入した場所を含む情報のいずれかを含み、
前記分類プログラムは、前記コンピュータに、
前記データから、前記金額、前記日時、前記購入した物品または前記サービスの名称又は前記購入した場所を含む情報各々を抽出する抽出機能を実現させる。
【請求項3】
請求項2に記載のデータの分類プログラムであって、
前記第1のモデルは、複数のユーザが、データと、当該データを分類したカテゴリーとの関係を学習したモデルであり、
前記第2分類機能は、前記第1のモデルを用いた深層学習に係る推定処理により、前記新たなデータをカテゴリーに分類する。
【請求項4】
請求項2又は3に記載のデータの分類プログラムであって、
前記コンピュータに、前記購入した物品または前記サービスの名称または前記購入した場所の情報を単語単位に分割する分割機能を実現させ、
前記第2のモデルは、単語と、当該単語を含むデータを分類したカテゴリーとの関係を 学習したモデルであり、
前記第2分類機能は、前記分割により得られた各単語各々を前記第2のモデルを用いてカテゴリーを割り当てるとともに、各単語に割り当てられたカテゴリーに基づいて、前記新たなデータを分類する。
【請求項5】
請求項1~4のいずれか一項に記載の分類プログラムであって、
前記コンピュータに、前記第1分類機能または前記第2分類機能により分類された前記新たなデータが分類されたカテゴリーを、前記新たなデータとともに出力する出力機能を実現させる。
【請求項6】
請求項5に記載の分類プログラムであって、
前記コンピュータに、前記第1分類機能または前記第2分類機能により分類された前記新たなデータのカテゴリーに対して、前記対象ユーザの端末のユーザからカテゴリーの修正を受け付ける修正機能を実現させる。
【請求項7】
請求項6に記載の分類プログラムであって、
前記コンピュータに、前記新たなデータと、前記受け付けた修正後のカテゴリーとを対応付けて記憶する記憶機能を実現させる。
【請求項8】
象ユーザの新たなデータを取得する取得部と、
前記新たなデータを、収支データベースを参照して、分類済みの収支データから、カテゴリーに分類可能であるか否かの第1の判断を下す第1判断部と、
前記第1の判断により前記新たなデータがカテゴリーに分類可能であると判断された場合に、前記新たなデータを前記対象ユーザが既に分類しているカテゴリーのいずれかに分類する第1の分類を実行する第1分類部と、
前記第1の判断により前記新たなデータがカテゴリーに分類不可能であると判断された場合に、前記新たなデータのエントロピーを算出する算出部と、
記新たなデータの曖昧さの度合いを示す前記エントロピーが特定の値以上であるか否かの第2の判断を下す第2判断部と、
前記第2の判断により前記エントロピーが前記特定の値以上であると判断された場合に、前記新たなデータを、第1のモデルに従ってカテゴリーに分類し、前記第2の判断により前記エントロピーが前記特定の値未満であると判断された場合に、前記新たなデータを、前記第1のモデルとは異なる第2のモデルに従ってカテゴリーに分類する第2の分類を実行する第2分類部と、
を備える端末。
【請求項9】
コンピュータが、
象ユーザの新たなデータを取得することと、
前記新たなデータを、収支データベースを参照して、分類済みの収支データから、カテゴリーに分類可能であるか否かの第1の判断を下すことと、
前記第1の判断により前記新たなデータがカテゴリーに分類可能であると判断された場合に、前記新たなデータを前記対象ユーザが既に分類しているカテゴリーのいずれかに分類する第1の分類を実行することと、
前記第1の判断により前記新たなデータがカテゴリーに分類不可能であると判断された場合に、前記新たなデータのエントロピーを算出することと、
記新たなデータの曖昧さの度合いを示す前記エントロピーが特定の値以上であるか否かの第2の判断を下すことと、
前記第2の判断により前記エントロピーが前記特定の値以上であると判断された場合に、前記新たなデータを、第1のモデルに従ってカテゴリーに分類し、前記第2の判断により前記エントロピーが前記特定の値未満であると判断された場合に、前記新たなデータを、前記第1のモデルとは異なる第2のモデルに従ってカテゴリーに分類する第2の分類を実行することと、
を含む情報処理装置によるデータの分類方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、端末のデータの分類方法、端末、プログラムに関する。
【背景技術】
【0002】
近年、家計簿をつけることができるアプリケーションで家計の管理をすることが行われている。特許文献1はグループで家計簿を管理することの他に、食費や雑費などの費目をつけて各費目に対する予算、各費目に対応する残金などを管理する技術を開示している。
【先行技術文献】
【特許文献】
【0003】
再公表特許WO2012/169075
【発明の概要】
【0004】
本発明によると、情報処理装置によるデータの分類方法は、対象ユーザが分類したデータと、そのデータを分類したカテゴリーとを取得することと、対象ユーザの新たなデータを取得することと、新たなデータが、分類したデータとそのデータを分類したカテゴリーに基づいて、カテゴリーに分類可能であるか否かの第1の判断を下すことと、第1の判断により新たなデータがカテゴリーに分類可能であると判断された場合に、新たなデータを対象ユーザが既に分類しているカテゴリーのいずれかに分類する第1の分類を実行することと、第1の判断により新たなデータがカテゴリーに分類不可能であると判断された場合に、新たなデータのエントロピーを算出することと、エントロピーが特定の値以上であるか否かの第2の判断を下すことと、第2の判断によりエントロピーが特定の値以上であると判断された場合に、新たなデータを、第1のモデルに従ってカテゴリーに分類し、第2の判断によりエントロピーが特定の値未満であると判断された場合に、新たなデータを、第1のモデルとは異なる第2のモデルに従ってカテゴリーに分類する第2の分類を実行することと、を含む。
【図面の簡単な説明】
【0005】
図1】通信システムの構成例を示し、端末及びサーバの構成例を示すブロック図である。
図2】(a)、(b)は、端末の表示例を示す図である。
図3】(a)は、収支データベースのデータ構成例を示すデータ概念図である。(b)は、収支データの構成例を示すデータ概念図である。
図4】サーバと端末との間のやり取りの一例を示すシーケンス図である。
図5】サーバの動作例を示すフローチャートである。
図6】端末の動作例を示すフローチャートである。
図7】分類されたカテゴリーを修正する際のサーバと端末との間のやり取りの一例を示すシーケンス図である。
図8】カテゴリーの修正に係るサーバの動作例を示すフローチャートである。
図9】端末及びサーバの他の構成例を示すブロック図である。
【発明を実施するための形態】
【0006】
<法的事項の遵守>
本明細書に記載の開示は、通信の秘密など、本開示の実施に必要な実施国の法的事項遵守を前提とすることに留意されたい。
【0007】
本開示に係る端末による送信または受信に係る状況を確認できる表示方法等を実施するための実施形態について、図面を参照して説明する。
【0008】
<システム構成>
【0009】
図1は、本開示の一実施形態に係る通信システム1の構成を示す。図1に開示されるように、通信システム1では、ネットワーク30を介してサーバ10と、端末20(端末20A,端末20B,端末20C)とが接続される。サーバ10は、ネットワーク30を介してユーザが所有する端末20に、端末20間でのメッセージの送受信を実現するサービスを提供する。なお、ネットワーク30に接続される端末20の数は限定されない。
【0010】
ネットワーク30は、1以上の端末20と、1以上のサーバ10とを接続する役割を担う。すなわち、ネットワーク30は、端末20がサーバ10に接続した後、データを送受信することができるように接続経路を提供する通信網を意味する。
【0011】
ネットワーク30のうちの1つまたは複数の部分は、有線ネットワークや無線ネットワークであってもよいし、そうでなくてもよい。ネットワーク30は、限定でなく例として、アドホック・ネットワーク(ad hoc network)、イントラネット、エクストラネット、仮想プライベート・ネットワーク(virtual private network:VPN)、ローカル・エリア・ネットワーク(local area network:LAN)、ワイヤレスLAN(wireless LAN:WLAN)、広域ネットワーク(wide area network:WAN)、ワイヤレスWAN(wireless WAN:WWAN)、大都市圏ネットワーク(metropolitan area network:MAN)、インターネットの一部、公衆交換電話網(Public Switched Telephone Network:PSTN)の一部、携帯電話網、ISDN(integrated service digital networks)、無線LAN、LTE(long term evolution)、CDMA(code division multiple access)、ブルートゥース(Bluetooth(登録商標))、衛星通信など、または、これらの2つ以上の組合せを含むことができる。ネットワーク30は、1つまたは複数のネットワーク30を含むことができる。
【0012】
端末20(端末20A,端末20B,端末20C)は、各実施形態において記載する機能を実現できる情報処理端末であればどのような端末であってもよい。端末20は、限定ではなく例として、スマートフォン、携帯電話(フィーチャーフォン)、コンピュータ(限定でなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定でなく例として、PDA・(personal digital assistant)、電子メールクライアントなど)、ウェアラブル端末(メガネ型デバイス、時計型デバイスなど)、または他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、端末20は情報処理端末と表現されてもよい。
【0013】
端末20A、端末20Bおよび端末20Cの構成は基本的には同一であるため、以下の説明においては、端末20について説明する。また、必要に応じて、ユーザXが利用する端末を端末20Xと表現し、ユーザXまたは端末20Xに対応づけられた、所定のサービスにおけるユーザ情報をユーザ情報Xと表現する。なお、ユーザ情報とは、所定のサービスにおいてユーザが利用するアカウントに対応付けられたユーザの情報である。ユーザ情報は、限定でなく例として、ユーザにより入力される、または、所定のサービスにより付与される、ユーザの名前、ユーザのアイコン画像、ユーザの年齢、ユーザの性別、ユーザの住所、ユーザの趣味趣向、ユーザの識別子などのユーザに対応づけられた情報を含み、これらのいずれか一つまたは、組み合わせであってもよいし、そうでなくてもよい。
【0014】
サーバ10は、端末20に対して、所定のサービスを提供する機能を備える。サーバ10は、各実施形態において記載する機能を実現できる情報処理装置であればどのような装置であってもよい。サーバ10は、限定でなく例として、サーバ装置、コンピュータ(限定でなく例として、デスクトップ、ラップトップ、タブレットなど)、メディアコンピュータプラットホーム(限定でなく例として、ケーブル、衛星セットトップボックス、デジタルビデオレコーダ)、ハンドヘルドコンピュータデバイス(限定でなく例として、PDA、電子メールクライアントなど)、あるいは他種のコンピュータ、またはコミュニケーションプラットホームを含む。また、サーバ10は情報処理装置と表現されてもよい。サーバ10と端末20とを区別する必要がない場合は、サーバ10と端末20とは、それぞれ情報処理装置と表現されてもよいし、されなくてもよい。
【0015】
<ハードウェア(HW)構成>
【0016】
図1を用いて、通信システム1に含まれる各装置のHW構成について説明する。
【0017】
(1)端末のHW構成
【0018】
端末20は、制御部21(CPU:central processing unit(中央処理装置))、記憶部28、通信I/F22(インタフェース)、入出力部23、表示部24、位置情報取得部25を備える。端末20のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。なお、端末20のHW構成として、すべての構成要素を含むことは必須ではない。限定ではなく例として、端末20は、マイク232、カメラ234、位置情報取得部25等、個々の構成要素、または複数の構成要素を取り外すような構成であってもよいし、そうでなくてもよい。
【0019】
通信I/F22は、ネットワーク30を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F22は、ネットワーク30を介して、サーバ10との通信を実行する機能を有する。通信I/F22は、各種データを制御部21からの指示に従って、サーバ10に送信する。また、通信I/F22は、サーバ10から送信された各種データを受信し、制御部21に伝達する。また、通信I/F22を単に通信部と表現する場合もある。また、通信I/F22が物理的に構造化された回路で構成される場合には、通信回路と表現する場合もある。
【0020】
入出力部23は、端末20に対する各種操作を入力する装置、および、端末20で処理された処理結果を出力する装置を含む。入出力部23は、入力部と出力部が一体化していてもよいし、入力部と出力部に分離していてもよいし、そうでなくてもよい。
【0021】
入力部は、ユーザからの入力を受け付けて、当該入力に係る情報を制御部21に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入力部は、限定でなく例として、タッチパネル231、タッチディスプレイ、キーボード等のハードウェアキーや、マウス等のポインティングデバイス、カメラ234(動画像を介した操作入力)、マイク232(音声による操作入力)を含む。
【0022】
出力部は、制御部21で処理された処理結果を出力することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。出力部は、限定でなく例として、 タッチパネル、タッチディスプレイ、スピーカ233(音声出力)、レンズ(限定でなく例として3D(three dimensions)出力や、ホログラム出力)、プリンターなどを含む。
【0023】
表示部24は、フレームバッファに書き込まれた表示データに従って、表示することができる全ての種類の装置のいずれかまたはその組み合わせにより実現される。表示部24は、限定でなく例として、タッチパネル、タッチディスプレイ、モニタ(限定でなく例として、液晶ディスプレイやOELD(organic electroluminescence display))、ヘッドマウントディスプレイ(HDM:Head Mounted Display)、プロジェクションマッピング、ホログラム、空気中など(真空であってもよいし、そうでなくてもよい)に画像やテキスト情報等を表示可能な装置を含む。なお、これらの表示部24は、3Dで表示データを表示可能であってもよいし、そうでなくてもよい。
【0024】
入出力部23がタッチパネルの場合、入出力部23と表示部24とは、略同一の大きさおよび形状で対向して配置されていてもよい。
【0025】
制御部21は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。そのため、制御部21は、制御回路と表現されてもよいし、されなくてもよい。
【0026】
制御部21は、限定でなく例として、中央処理装置(CPU)、マイクロプロセッサ(microprocessor)、プロセッサコア(processor core)、マルチプロセッサ(multiprocessor)、ASIC(application-specific integrated circuit)、FPGA(field programmable gate array)を含む。
【0027】
記憶部28は、端末20が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶部28は、限定でなく例として、HDD(hard disk drive)、SSD(solid state drive)、フラッシュメモリ、RAM(random access memory)、ROM(read only memory)など各種の記憶媒体を含む。また、記憶部28は、メモリ(memory)と表現されてもよいし、されなくてもよい。
【0028】
端末20は、プログラムPを記憶部28に記憶し、このプログラムPを実行することで、制御部21が、制御部21に含まれる各部としての処理を実行する。つまり、記憶部28に記憶されるプログラムPは、端末20に、制御部21が実行する各機能を実現させる。また、このプログラムPは、プログラムモジュールと表現されてもよいし、されなくてもよい。
【0029】
マイク232は、音声データの入力に利用される。スピーカ233は、音声データの出力に利用される。カメラ234は、動画像データの取得に利用される。
【0030】
(2)サーバのHW構成
【0031】
サーバ10は、制御部11(CPU)、記憶部15、通信I/F14(インタフェース)、入出力部12、表示部13を備える。サーバ10のHWの各構成要素は、限定でなく例として、バスBを介して相互に接続される。なお、サーバ10のHWは、サーバ10のHWの構成として、全ての構成要素を含むことは必須ではない。限定ではなく例として、サーバ10のHWは、表示部13を取り外すような構成であってもよいし、そうでなくてもよい。
【0032】
制御部11は、プログラム内に含まれたコードまたは命令によって実現する機能を実行するために物理的に構造化された回路を有し、限定でなく例として、ハードウェアに内蔵されたデータ処理装置により実現される。
【0033】
制御部11は、代表的には中央処理装置(CPU)、であり、その他にマイクロプロセッサ、プロセッサコア、マルチプロセッサ、ASIC、FPGAであってもよいし、そうでなくてもよい。本開示において、制御部11は、これらに限定されない。
【0034】
記憶部15は、サーバ10が動作するうえで必要とする各種プログラムや各種データを記憶する機能を有する。記憶部15は、HDD、SSD、フラッシュメモリなど各種の記憶媒体により実現される。ただし、本開示において、記憶部15は、これらに限定されない。また、記憶部15は、メモリ(memory)と表現されてもよいし、されなくてもよい。
【0035】
通信I/F14は、ネットワーク30を介して各種データの送受信を行う。当該通信は、有線、無線のいずれで実行されてもよく、互いの通信が実行できるのであれば、どのような通信プロトコルを用いてもよい。通信I/F14は、ネットワーク30を介して、端末20との通信を実行する機能を有する。通信I/F14は、各種データを制御部11からの指示に従って、端末20に送信する。また、通信I/F14は、端末20から送信された各種データを受信し、制御部11に伝達する。また、通信I/F14を単に通信部と表現する場合もある。また、通信I/F14が物理的に構造化された回路で構成される場合には、通信回路と表現する場合もある。
【0036】
入出力部12は、サーバ10に対する各種操作を入力する装置により実現される。入出力部12は、ユーザからの入力を受け付けて、当該入力に係る情報を制御部11に伝達できる全ての種類の装置のいずれかまたはその組み合わせにより実現される。入出力部12は、代表的にはキーボード等に代表されるハードウェアキーや、マウス等のポインティングデバイスで実現される。なお、入出力部12、限定でなく例として、タッチパネルやカメラ(動画像を介した操作入力)、マイク(音声による操作入力)を含んでいてもよいし、そうでなくてもよい。ただし、本開示において、入出力部12は、これらに限定されない。
【0037】
表示部13は、代表的にはモニタ(限定でなく例として、液晶ディスプレイやOELD(organic electroluminescence display))で実現される。なお、表示部13は、ヘッドマウントディスプレイ(HDM)などであってもよいし、そうでなくてもよい。なお、これらの表示部13は、3Dで表示データを表示可能であってもよいし、そうでなくてもよい。ただし、本開示において、表示部13は、これらに限定されない。
【0038】
サーバ10は、プログラムPを記憶部15に記憶し、このプログラムPを実行することで、制御部11が、制御部11に含まれる各部としての処理を実行する。つまり、記憶部15に記憶されるプログラムPは、サーバ10に、制御部11が実行する各機能を実現させる。このプログラムPは、プログラムモジュールと表現されてもよいし、されなくてもよい。
【0039】
本開示の各実施形態においては、端末20および/または、サーバ10のCPUがプログラムPを実行することにより、実現するものとして説明する。
【0040】
なお、端末20の制御部21、および/または、サーバ10の制御部11は、制御回路を有するCPUだけでなく、集積回路(IC(Integrated Circuit)チップ、LSI(Large Scale Integration))等に形成された論理回路(ハードウェア)や専用回路によって各処理を実現してもよいし、そうでなくてもよい。また、これらの回路は、1または複数の集積回路により実現されてよく、各実施形態に示す複数の処理を1つの集積回路により実現されることとしてもよいし、そうでなくてもよい。また、LSIは、集積度の違いにより、VLSI、スーパーLSI、ウルトラLSIなどと呼称されることもある。そのため、制御部21は、制御回路と表現されてもよいし、されなくてもよい。
【0041】
また、本開示の各実施形態のプログラムP(限定ではなく、例として、ソフトウェアプログラム、コンピュータプログラム、またはプログラムモジュール)は、コンピュータに読み取り可能な記憶媒体に記憶された状態で提供されてもよいし、されなくてもよい。 記憶媒体は、「一時的でない有形の媒体」に、プログラムPを記憶可能である。また、プログラムPは、本開示の各実施形態の機能の一部を実現するためのものであってもよいし、そうでなくてもよい。さらに、本開示の各実施形態の機能を記憶媒体にすでに記録されているプログラムPとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよいし、そうでなくてもよい。
【0042】
記憶媒体は、1つまたは複数の半導体ベースの、または他の集積回路(IC)(限定でなく例として、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピィ・ディスケット、フロッピィ・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カード、またはドライブ、任意の他の適切な記憶媒体、またはこれらの2つ以上の適切な組合せを含むことができる。記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せでよい。なお、記憶媒体はこれらの例に限られず、プログラムPを記憶可能であれば、どのようなデバイスまたは媒体であってもよい。また、記憶媒体をメモリ(memory)と表現されてもよいし、されなくてもよい。
【0043】
サーバ10および/または端末20は、記憶媒体に記憶されたプログラムPを読み出し、読み出したプログラムPを実行することによって、各実施形態に示す複数の機能部の機能を実現することができる。
【0044】
また、本開示のプログラムPDDは、当該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して、サーバ10および/または端末20に提供されてもよいし、されなくてもよい。サーバ10および/または端末20は、限定でなく例として、インターネット等を介してダウンロードしたプログラムPを実行することにより、各実施形態に示す複数の機能部の機能を実現する。
【0045】
また、本開示の各実施形態は、プログラムPが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【0046】
サーバ10および/または端末20における処理の少なくとも一部は、1以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよいし、そうでなくてもよい。
【0047】
端末20における処理の少なくとも一部を、サーバ10により行う構成としてもよいし、そうでなくてもよい。この場合、端末20の制御部21の各機能部の処理のうち少なくとも一部の処理を、サーバ10で行う構成としてもよいし、そうでなくてもよい。
【0048】
サーバ10における処理の少なくとも一部を、端末20により行う構成としてもよいし、そうでなくてもよい。この場合、サーバ10の制御部11の各機能部の処理のうち少なくとも一部の処理を、端末20で行う構成としてもよいし、そうでなくてもよい。
【0049】
明示的な言及のない限り、本開示の実施形態における判定の構成は必須でなく、判定条件を満たした場合に所定の処理が動作されたり、判定条件を満たさない場合に所定の処理がされたりしてもよいし、そうでなくてもよい。
【0050】
なお、本開示のプログラムは、限定でなく例として、ActionScript、JavaScript(登録商標)などのスクリプト言語、Objective-C、Java(登録商標)などのオブジェクト指向プログラミング言語、HTML5などのマークアップ言語などを用いて実装される。
【0051】
<実施形態>
<概要>
本実施形態に係る通信システム1においては、端末20が実行する端末20を保持するユーザの収支に係る処理を行うアプリケーション(以下、家計簿アプリと称す)を実行し、家計簿アプリに対して、新しい収支データが入力された場合に、その収支データを、カテゴリーに分類する。ここで、収支に係る処理とは、ユーザが使用した金銭を、いつ、どこで、どういう目的で使用したのかを整理しデータベースに登録する処理のことをいう。なお、家計簿アプリが実行する処理には、上述のようなユーザの支出に係る処理以外に、ユーザの収入に係る情報の登録なども含まれてもよい。更には、家計簿アプリが実行する処理には、それらの収支から資産運用の解析データの提示、運用に係る提案等の処理も含まれてもよいが、含まなくてもよい。また、収支データとは、ユーザがあるタイミングで物品あるいはサービス等に対して、金銭を支払った、あるいは、何らかの手段でユーザが収入を得たことを示す情報のことをいう。また、ここで、カテゴリーとは、収支データ各々を、登録する際に、その収支データを分類する分類項目のことをいい、例えば、食費、遊興費、交通費などが含まれてよい。
【0052】
また、通信システム1においては、サーバ10を介して、端末20同士でメッセージングアプリケーションを介して、トークルーム上でメッセージのやり取りを行うことができる。トークルームとは、サーバ10が提供するメッセージングサービスにおいて、メッセージングサービスを利用するユーザ同士がコンテンツのやり取りをする場所のことをいう。また、トークルーム上でやり取りされるコンテンツは、ユーザが自身の端末20を利用して入力した文字情報(収支内容に係る情報のテキストデータ)、写真やスタンプなどを含む画像情報(例えば、レシートの写真)、音声ファイル、動画ファイル、データファイルなど各種のファイル情報を含むが、これらに限定するものではない。ここで、トークルームは、サーバ10が提供するサービスを利用するユーザ同士のやり取りを行う場に限るものではなく、ユーザと、サーバ10のオペレータあるいは自動応答システム(いわゆるボット)とのやり取りの場としても使用できる。
【0053】
通信システム1においては、そのトークルームを介して、ユーザが収支データを登録することとしてもよく、サーバ10は、そのトークルームにメッセージとして登録された収支データを分類する。以下、一例を用いて説明する。図2(a)は、ユーザが保持する端末20の表示画面の一例を示しており、端末20のユーザが、トークルームに対して、収支データの一例として、「A Cafeでランチ 1200円」というメッセージ201を入力した状態を示している。図2(a)に示すトークルームに属しているのが、端末20の他、サーバ10のボットである場合に、サーバ10は入力されたデータが収支データであることを検出すると、その収支データを分類する。このとき、サーバ10は、複数の分類手法を用いて収支データを分類する。そして、サーバ10は、トークルームに対して、収支データをその分類したカテゴリーを示す情報を送信し、図2(b)に示すように、端末20は、収支データとその分類したカテゴリーを示すメッセージ240を表示する。このメッセージ240には、収支データで示される使用した金額241、カテゴリー242、使用した時間243と、が含まれてよく、さらには、その内容、即ち、カテゴリーや時間の内容についてユーザが納得できなかった場合に修正するための修正メニュー244が表示されてよい。修正メニュー244は、タッチすることで、カテゴリーの修正内容を受け付けるトリガとなる。
【0054】
このトークルーム上でやり取りされた収支データとその分類は、端末20にインストールされている家計簿アプリと連動してよく、サーバ10から返信されたメッセージの内容を示すカテゴリーと収支データが家計簿アプリに登録されてよい。
【0055】
上述したように、従来からある家計簿アプリにおいても、収支内容の分類をするものは存在するが、基本的にそれらは、パターンマッチング(予め定めたルールに従っての分類)によるものであり、ユーザによっては、その分類精度に満足できないことがあった。そこで、本実施形態に係る分類方法では、複数の手法を用いて分類することにより、収支データの分類精度を向上させることに、発明者らは想到した。以下、詳細に説明する。
【0056】
(1)端末の機能構成
図1に示すように、端末20は、制御部21により実現される機能として、メッセージ処理部211と、表示処理部212とを備える。
【0057】
メッセージ処理部211は、サーバ10が提供するメッセージングサービスから提供されるメッセージングアプリケーションに従って、ユーザからの入力および/または通信I/F12が受信したメッセージを含むコンテンツの入力を受け付けて、表示処理部212に表示するように指示する。なお、ユーザからの入力を受け付けた場合には、その受け付けた入力内容を通信I/F22にサーバ10に宛てて送信するように指示する。また、ここでメッセージ処理部211が処理する対象として、トークルームに対してユーザが入力したテキストメッセージに限らず、写真やスタンプなどを含む画像情報、音声ファイル、動画ファイル、データファイルなどを含んでよい。更には、トークルームのユーザが入力したコンテンツ(収支データ)を、サーバ10に宛てて、その入力内容を示す情報を送信するよう通信I/F22に対して指示する。
【0058】
表示処理部212は、サーバ10が提供するメッセージングサービスから提供されるメッセージングアプリケーションに従って、ユーザからの入力および/または通信I/F12が受信したメッセージを含むコンテンツの入力を受け付けて、表示処理部212に表示するように指示する。なお、ユーザからの入力を受け付けた場合には、その受け付けた入力内容を通信I/F22にサーバ10に宛てて送信するように指示する。表示処理部212は、例えば、ユーザと他のユーザとの間のトークルームを表示し、そのトークルームに対するユーザの入力にしたがって、収支に関連する情報を表示する。
【0059】
家計簿アプリ実行部213は、サーバ10が提供するユーザの収支を管理するための家計簿アプリを実行する機能を有する。ここでいう家計簿アプリは、従前のアプリケーションが保持する機能の他、ユーザが入力した収支データを、サーバ10に送信し、サーバ10から受信したその収支データを指定されたカテゴリーに分類する。
【0060】
(2)サーバの機能構成
図1に示すように、サーバ10は、制御部11により実現される機能として、メッセージ処理部111と、取得部114と、第1判断部115と、第1分類部116と、算出部117と、第2判断部118と、第2分類部119と、を備える。
【0061】
メッセージ処理部111は、各ユーザ間のやり取りを行うためのトークルームを管理する機能を備える。メッセージ処理部111は、サーバ10が提供するメッセージングサービスの提供を受ける端末間のコンテンツを含むコンテンツのやり取りを中継する。即ち、あるユーザからトークルームへのコンテンツが送信された場合に、そのトークルームを特定し、トークルームに属する他のユーザにコンテンツを送信する。
【0062】
取得部114は、ユーザから収支データを受け付ける機能を有する。ここで、収支データは、ユーザを特定可能な情報(ユーザID)と、収支が発生した日時を特定可能な情報(日時)と、費用と、その収支データを分類するための情報とを含む。取得部114は、ユーザの端末20から、家計簿アプリに対して入力された収支データを取得することとしてもよいし、ユーザの端末20のトークルームに対して送信された収支データを取得することとしてもよいし、ユーザに対応するECサイト等での利用明細を収支データとして取得することとしてもよいし、収支内容を示すレシート等の画像データを収支データとして取得することとしてもよい。取得部114は、取得した収支データを、第1判断部115に送信する。
【0063】
第1判断部115は、取得部114から送信された新たな収支データが、分類済みのデータと、その分類したデータのカテゴリーに基づいて、いずれかのカテゴリーに分類可能かどうかを判断する。第1判断部115は、後述する収支データベース151を参照し、新たな収支データで示される内容が、収支データベース151に記録されている収支データのいずれかに一致する場合に、カテゴリーに分類可能と判断する。第1判断部115は、カテゴリーに分類可能と判断した場合に、取得部114から送信された新たな収支データを、第1分類部116に送信し、カテゴリーに分類不可能と判断した場合に、取得部114から送信された新たな収支データを、算出部117に送信する。なお、収支データベース151の詳細については後述する。
【0064】
第1分類部116は、第1判断部115から、新たな収支データを受信すると、受信した新たな収支データの内容が、収支データベース151に記録されている収支データのいずれかに一致する収支データに対応付けられているカテゴリーに分類する。ここで、カテゴリーに分類するとは、カテゴリーの内容を示す情報を対応付けることをいい、ここでは、新たな収支データと、そのカテゴリーとを対応付けて収支データベース151に登録することをいう。
【0065】
算出部117は、第1判断部115から、新たな収支データを受信すると、その収支データのエントロピーを算出する。ここでいう、エントロピーは、情報理論における情報量を意味する。換言すれば、その内容がどれだけ曖昧であるかを意味する。ここで、エントロピーは、選択情報量であってもよいし、平均情報量(シャノン情報量)であってもよく、それぞれを算出する数式を用いて算出することができる。情報量を算出する数式については、公知の数式を用いることとして、詳細については省略する。ここで、収支データのエントロピーが高いとは、収支データの内容の曖昧さが高いことを意味する。例えば、収支データの内容に、「アップル」とあった場合に、果物としての林檎を意味するのか、アップル社の製品を意味するのか、曖昧さの度合が高いので、こういう場合は、エントロピーが高いことになる。算出部117は、収支データ全体に対して算出することとしてもよいし、収支データに含まれるユーザIDや日時、使用した費用を除く他の情報に対してのみ算出することとしてよい。算出部117は、新たな収支データのエントロピーを算出すると、第2判断部118に送信する。
【0066】
第2判断部118は、算出部117から新たな収支データのエントロピーを受信すると、そのエントロピーが高いか低いかを判断する。具体的には、第2判断部118は、エントロピーと予め定めた閾値とを比較して、エントロピーが高いか、低いかを、判定する。第2判断部118は、エントロピーが高いか低いかの判断結果を、新たな収支データとともに、第2分類部119に送信する。
【0067】
第2分類部119は、第2判断部118から、判断結果と、収支データを受信すると、新たな収支データをカテゴリーに分類する。具体的には、第2分類部119は、第2判断部118から受信した判断結果が、新たな収支データのエントロピーが、所定の閾値以上である場合、即ち、曖昧の度合が強い場合には、第1のモデルに従って、新たな収支データをカテゴリーに分類する。一方で、新たな収支データのエントロピーが、所定の閾値未満である場合、即ち、曖昧の度合が低い場合には、第2のモデルに従って、新たな収支データをカテゴリーに分類する。
【0068】
ここで、第1のモデルは、収支データをカテゴリーに分類するためのモデルである。第1のモデルは、収支データのエントロピーが高い場合、即ち、情報として曖昧の度合が高い情報を分類するためのモデルであり、機械学習、深層学習を利用して、入力データとその入力データを分類するカテゴリーとの関係を学習したモデルである。一例として、第1のモデルは、決定木モデルを利用することができる。決定木モデルは、データマイニングにおいてよく用いられるモデルであり、機械学習の分野における予測モデルであって、ある事象に対する観測結果からその事象の目標値に関する結論を導出するモデルである。ここでいう、結論は、カテゴリーに該当する。なお、第1のモデルは、決定木モデルに限定するものではなく、収支データをカテゴリーに分類できるのであれば、他のモデルであってよく、限定ではなく一例として線形モデルを用いることとしてもよい。この第1のモデルである、決定木モデルは、サーバ10を利用するユーザ全ての収支データを利用して生成することとしてもよいし、サーバ10を利用する一部のユーザの収支データを利用して生成することとしてもよいし、収支データに対応するユーザ個人の過去の収支データを利用して生成することとしてもよい。第1のモデルは、言い換えれば、1以上のユーザが分類した収支データの分類の多数決に基づいて、新たな収支データのカテゴリーを決定するモデルであるともいえる。第1のモデルである決定木モデルは、限定ではなく一例として、金額と、時間と、単語による分類を行うものであってよく、例えば、金額に対して1以上の閾値を設けてその閾値に対する高低によってカテゴリーが決定されるような態様で作成されたモデルであってよい。
【0069】
一方で、第2のモデルも、収支データをカテゴリーに分類するためのモデルであるが、第1のモデルとは異なる手法によりカテゴリーに分類するモデルである。一例として、第2のモデルは、単語カテゴリーを利用した分類を行うこととする。収支データのエントロピーが低いということは、その収支データを構成する単語群それぞれの曖昧の度合が低いことを意味するものであり、言い換えれば、それぞれの単語を含む収支データは、ある程度決まったカテゴリーに分類されていることが予測し得る。そのため、新たな収支データに含まれる単語を有する他の収支データが割り当てられているカテゴリーを、新たな収支データのカテゴリーとして割り当てられる可能性が高いと言える。具体的には、第2分類部119は、収支データに含まれる文字列を単語単位に分割し、分割した各単語を用いている収支データがどのカテゴリーに分類されているかを特定する。そして、第2分類部119は、各単語について、割り当てられているカテゴリーと、その単語の収支データベース151上での登場頻度に基づくスコアを算出する。登場頻度に基づくスコアとは、限定ではなく一例として、収支データに含まれる単語が、家計データベース151に登場する回数であってもよいし、その登場回数に対して予め定められた重み付け値を乗じた値を用いてもよい。そして、収支データに含まれる1以上の単語について、同じカテゴリーがある場合に、そのカテゴリー同士のスコアを合算し、各カテゴリーのうち、スコアの最も高いカテゴリーを、新たな収支データのカテゴリーとして割り当てる。つまり、仮に、一例として、収支データにA、B、Cという3つの単語が含まれ、それぞれ、C1、C2、C1というカテゴリーに割り当てられていたとする。このとき、Aという単語の登場頻度が30、Bという単語の登場頻度が40、Cという単語の登場頻度が20であったとすると、この収支データのカテゴリーC1のスコアが50(30+20)、カテゴリーC2のスコアが40となるので、収支データには、C1のカテゴリーを割り当てることになる。また、Aという単語を用いているカテゴリーが、C1とC2など複数ある場合には、C1として用いられている頻度と、C2として用いられている頻度とを個別に算出して用いるとよい。例えば、Aという単語がカテゴリーC1としての登場頻度が10、C2としての登場頻度が20となった場合に、単語BのカテゴリーC2の登場頻度40、単語CのカテゴリーC1の登場頻度20とを用いると、この場合の収支データのカテゴリーは、C1のスコア30(10+20)<C2のスコア40(20+20)であるため、C2となる。なお、第2分類部119は、収支データのスコアとして、カテゴリー同士のスコアの合算ではなく、スコアの平均をとるようにしてもよい。即ち、上述の例で説明すると、カテゴリーC1のスコアが25(30+20/2)、カテゴリーC2のスコアが40となるので、平均をとった場合には、収支データのカテゴリーは、C2となる。なお、カテゴリーのスコアの算出方法は、ここに記載した例に限定するものではなく、適宜、適切に変更することとしてよい。
【0070】
第2分類部119は、新たな収支データのカテゴリーを、その収支データに対応付けて収支データベース151に登録する。
【0071】
このように、本実施形態に係る通信システム1においては、収支データのエントロピーの多寡によって、使用する分類のモデルを異ならせることで、分類の精度を向上させることができる。
以上がサーバ10の構成である。
【0072】
<データ>
次に、図3(a)を用いて、収支データベース151について説明する。収支データベース151は、1以上のユーザの収支データと、その分類結果であるカテゴリーとを対応付けて統合したデータベースである。図3(a)は、収支データベース151のデータ構成例を示す図である。図3(a)に示すように、収支データベース151は、ユーザID301と、収支ID302と、日時303と、費用304と、大カテゴリ305と、小カテゴリ306と、抽出情報307と、修正履歴308とが対応付けられた情報である。
【0073】
ユーザID301は、通信システム1上で、各ユーザを一意に特定可能なユーザの識別情報である。
【0074】
収支ID302は、通信システム1上で、各ユーザの一つの収支データ各々を一意に特定可能な収支データの識別情報である。
【0075】
日時303は、対応する収支データによる収支が発生した日時、即ち、ユーザが金銭を支払った日時、あるいは、収入を得た日時を示す情報である。なお、図3(a)においては、図面の紙面のスペースの都合上、日付までを示している。なお、日時303は、図3(a)に示す通り、時刻の情報を含まない日付までの情報であってもよい。
【0076】
費用304は、対応する収支データに示す収支において、対応するユーザが支払った金銭の額面または得た収入の額面を示す情報である。
【0077】
大カテゴリ305は、対応する収支データの大きな分類の内容を示す情報である。
【0078】
小カテゴリ306は、対応する収支データの分類であって、大カテゴリ305の下で、対応する大カテゴリ305を細分化した分類項目(カテゴリー)を示す情報である。なお、収支データのカテゴリーとしては、大カテゴリ305、小カテゴリ306の二つある必要はなく、一つだけであってもよいし、逆に三つ以上あってもよい。また、ここでは、小カテゴリ306は、大カテゴリ305を細分化した分類項目であるとしたが、小カテゴリ306は、大カテゴリ305に並列する大カテゴリ305とは別のカテゴリーであってもよい。
【0079】
抽出情報307は、対応する収支データに含まれていた、日時や費用以外の情報のことである。抽出情報307は、限定ではなく一例として、商品やサービスを購入した場所としての店名やサービス提供場所であってもよいし、購入した商品名やサービス名であってもよいし、商品の販売場所あるいはサービスの提供場所の住所であってもよいし、購入時、サービス受領時のユーザの端末の位置情報であってもよいし、同伴者の名称であってもよいし、店舗を往訪するのに利用した交通手段であってもよいし、商品やサービスの購入が何らかのイベント(限定ではなく一例として、誕生日や記念日など)に関連する場合には、イベントの名称などであってもよい。即ち、抽出情報307は、収支データのカテゴリーを特定できる一因となる情報であればよい。
【0080】
修正履歴308は、過去に、ユーザからサーバ10が分類したカテゴリーを修正されたことがあるか否かの履歴を示す。修正履歴308が「有」となっている収支データは、対応するユーザの新たな収支データの最初のパターンマッチングを利用した分類に用いられることを示す。
【0081】
収支データベース151があることにより、サーバ10は、新たな収支データの分類を実行することができる。
【0082】
次に、図3(b)を用いて、取得部114が取得する収支データの一例を示す。
【0083】
図3(b)に示すように、収支データ310は、ユーザID311、日時312、収支内容313とが対応付けられた情報である。
【0084】
ユーザID311は、収支データ310が誰の収支であるかを特定可能であって、通信システム1上で、各ユーザを一意に特定可能なユーザの識別情報である。図3(b)のユーザID311と、図3(a)のユーザID301とは、同じ情報である。なお、収支データ310は、対応するユーザが特定できれば、ユーザIDとは異なる情報を用いてもよい。例えば、ユーザがトークルームを介して収支データを送信する場合には、そのトークルームの情報を用いてもよい。サーバ10は、トークルームの情報を保持することから、どのトークルームに対して収支データが送信されたのかを特定できれば、対応するユーザを導出することができる。
【0085】
日時312は、収支データ310の収支が発生した日時を示す情報である。
【0086】
収支内容313は、収支データ310で示される収支の詳細を示す情報であり、支出あるいは収入の額面を示す金額や、支出が発生した場所、収支内容の詳細として購入した物品またはサービスの名称などが含まれてよい。即ち、修正内容313は、収支データベース151の費用304や抽出情報307に相当する情報である。収支内容313は、主として、収支データの分類に用いられる。
【0087】
<動作>
ここから、本実施形態に係る通信システム1、サーバ10、端末20の動作について説明する。
【0088】
図4は、通信システム1におけるサーバ10と端末20とのやり取りの一例を示すシーケンス図である。図4は、端末20において、新たな収支データのカテゴリーを表示する際のやり取りを示す図である。
【0089】
図4に示すように、端末20は、収支データの入力を受け付ける(ステップS401)。端末20は、収支データの入力を受け付けると、その収支データを、サーバ10に送信する(ステップS402)。
【0090】
サーバ10は、端末20から収支データを受信すると、その収支データを分類する(ステップS403)。即ち、サーバ10は、受信した収支データに対して、カテゴリーを付与する。サーバ10は、収支データに対してカテゴリーを付与すると、収支データと、対応付けられたカテゴリーとを、収支データを送信してきた端末20に送信する(ステップS404)。
【0091】
端末20は、サーバ10から、カテゴリーが対応付けられた収支データを受信すると、受信した収支データとそのカテゴリーを、表示部24に表示する(ステップS405)。このように、端末20は、サーバ10と連動することで、収支データをカテゴリーに分類することができる。
【0092】
図5は、図4に示すやり取りの中でステップS403の処理を実現するためのサーバ10の動作を示すフローチャートである。図5は、サーバ10が、ユーザから、収支データを受信した際の、収支データの分類処理を示すフローチャートである。
【0093】
図5に示すように、サーバ10の通信I/F14は、ネットワーク30を介して、ユーザから新たなデータとしての収支データを受信する。サーバ10の制御部11の取得部114は、通信I/F14が受信した収支データを取得する(ステップS501)。ここで、取得部114が取得する収支データは、前述の通り、端末20から送信されたデータであってもよいし、ECサイト等からの明細書データを収支データとして取得するものであってもよい。また、端末20から取得する場合であっても取得する収支データは、ユーザが入力したテキストデータであってもよいし、収支に係る明細書のデータであってもよいし、レシートを撮像した画像データであってもよい。取得部114は、新たな収支データを取得すると、第1判断部115に取得した新たな収支データを送信する。
【0094】
第1判断部115は、取得部114から新たな収支データを受信すると、収支データベース(DB)151を参照して、分類済みの収支データから、新たな収支データを分類できるか、即ち、カテゴリーに分類できるか(カテゴリーを付与できるか)を判断する(ステップS502)。即ち、第1判断部115は、新たな収支データで示されるユーザID311と一致する収支データがあるか否かを、収支データベース151のユーザID301を参照して特定する。第1判断部115は、特定された収支データの中に、修正履歴308が「有」となっている収支データを抽出する。そして、第1判断部115抽出された収支データの抽出情報307と、新たな収支データの収支内容313と一致するものがあるか否かを判断する。その結果、第1判断部115は、抽出された収支データの抽出情報307と、新たな収支データの収支内容313と一致するものがあった場合に、カテゴリーに分類可能と判断し、一致するものがなかった場合に、カテゴリーに分類不可能と判断する。
【0095】
第1判断部115が、新たな収支データが分類可能と判断した場合には(ステップS502のYES)、第1判断部115は、その旨と、新たな収支データとを、第1分類部116に送信する。第1分類部116は、新たな収支データを第1判断部115から受信すると、新たな収支データの収支内容313と、修正履歴308が「有」となっており、かつ、抽出情報307が一致する収支データに対して割り当てられている収支データの大カテゴリ305と、小カテゴリ306とを、新たな収支データのカテゴリーとして分類する(ステップS503)。第1分類部116は、新たな収支データと、そのカテゴリーを対応付けて、収支データベース151に登録して、処理を終了する。なお、新たな収支データの収支内容313と、抽出情報307が一致する収支データが複数ある場合であって、対応するカテゴリーが一致しない場合には、日時が最も新しい収支データのカテゴリーを用いることとしてよい。ユーザが過去にカテゴリーを修正したことがある収支データのカテゴリーは、そのユーザにとって、確定した分類ということになるので、新たな収支データが同様の内容である場合に、そのユーザが割り当てたことがあるカテゴリーを用いることで、収支データの分類の精度を向上させ、ユーザ各々にとって満足のいく分類を実行することができる。
【0096】
第1判断部115が、新たな収支データが分類不可能と判断した場合には(ステップS502のNO)、第1判断部115は、新たな収支データを、算出部117に送信する。
【0097】
算出部117は、新たな収支データを受信すると、そのエントロピーを算出する(ステップS504)。算出部117は、算出したエントロピーと、対応する新たな収支データとを、第2判断部118に送信する。
【0098】
第2判断部118は、算出部117から、エントロピーを受信すると、そのエントロピーが示す値が、特定の値以上であるか否かを判断する(ステップS505)。換言すれば、第2判断部118は、新たな収支データの内容が、曖昧であるか否かを判断する。
【0099】
第2判断部118は、エントロピーが、特定の値以上であると判断した場合には(ステップS505のYES)、第2分類部119に、エントロピーが特定の値以上である旨と、新たな収支データとを、送信する。一方で、第2判断部118は、エントロピーが、特定の値未満であると判断した場合には(ステップS505のNO)、第2分類部119に、エントロピーが特定の値未満である旨と、新たな収支データとを、送信する。
【0100】
第2分類部119は、第2判断部118から、エントロピーの判断結果と、新たな収支データを受信すると、新たな収支データをカテゴリーに分類する。
【0101】
第2分類部119は、第2判断部118から、エントロピーが特定の値以上であるという情報を受信していると(ステップS505のYES)、第1モデル152を用いて、新たな収支データを分類する(ステップS506)。即ち、新たな収支データの日時132、収支内容313を入力として、第1モデル152(限定ではなく一例として決定木モデル)を用いた推定処理を行って、付与するカテゴリーを特定する。第2分類部119は、新たな収支データに特定したカテゴリーを対応付けて収支データベース151に登録することで、新たな収支データをカテゴリーに分類する。
【0102】
一方で、第2分類部119は、第2判断部118から、エントロピーが特定の値未満であるという情報を受信していると(ステップS505のNO)、第2分類部119は、第1モデル152とは異なるモデルである第2モデル153を用いて、新たな収支データを分類する(ステップS507)。即ち、新たな収支データの収支内容313を、単語単位に分割し、各単語のカテゴリーを第2モデル153を用いて特定し、特定した各単語のカテゴリーから、新たな収支データのカテゴリーを特定する。そして、第2分類部119は、新たな収支データに特定したカテゴリーを対応付けて収支データベース151に登録することで、新たな収支データをカテゴリーに分類する。このように、第2分類部119が、分類対象のデータ、即ち、収支データを、そのエントロピーに基づいて、分類の手法を変えることで、分類精度を向上させることができ、ユーザにとって満足度の高い分類を実行できる分類プログラム(家計簿アプリ)を提供することができる。
【0103】
その後に、サーバ10の制御部11は、通信I/F14を介して、端末20に新たな収支データを特定可能な情報(新たな収支データそのものであってもよい)と、特定したカテゴリーとを、送信する。これによって、端末20は、カテゴリーと収支データとを対応付けて表示することができ、ユーザに新たな収支データのカテゴリーを認識させることができる。
【0104】
図6は、図4のやり取りを実現するための、端末20の動作例を示すフローチャートである。
【0105】
図6に示すように、端末20の入出力部23は、ユーザから収支データの入力を受け付ける(ステップS601)。この入力は、トークルームあるいは家計簿アプリに対するテキスト入力であってもよいし、明細書データのインプットであってもよいし、レシートなどの撮像であってもよい。
【0106】
端末20の入出力部23は、収支データの入力を受け付けると、通信I/F22を介して、サーバ10に送信する(ステップS602)。これにより、サーバ10では、新たな収支データの分類処理が実行される。
【0107】
端末20の通信I/F22は、収支データと対応付けられたカテゴリーとの情報を受信する(ステップS603)。ステップS601において、収支データをトークルームに入力していた場合には、通信I/F22はメッセージ処理部211に収支データとカテゴリーの情報を送信し、ステップS601において、収支データを家計簿アプリに入力していた場合には、通信I/F22は家計簿アプリ実行部213に送信する。
【0108】
表示処理部212は、メッセージ処理部211又は家計簿アプリ実行部213からの指示に従って、新たな収支データと、対応付けられたカテゴリーとを表示する(ステップS604)。
【0109】
入出力部23は、ユーザから、新たな収支データのカテゴリーについての訂正入力を受け付けたか否かを判定する(ステップS605)。カテゴリーの訂正入力は、予め定められている複数のカテゴリーの中から選択するものであってもよいし、ユーザによる直接入力であってもよい。カテゴリーの訂正入力を受け付けていた場合には(ステップS605のYES)、通信I/F14は、制御部21からの指示にしたがって、新たな収支データを特定可能な情報(新たな収支データそのものであってもよい)と、訂正後のカテゴリーとを、送信し(ステップS606)、処理を終了する。なお、入出力部23が訂正入力を受け付けていない場合には(ステップS605のNO)、そのまま処理を終了する。
以上が、端末20の動作である。
【0110】
次に、新たな収支データに対して付与されたカテゴリーにユーザが満足できなかった場合の処理について説明する。図7は、新たな収支データのカテゴリーを訂正する際の、サーバ10と端末20との間のやり取りを示すシーケンス図であり、図4のステップS405の処理以降のやり取りを示している。
【0111】
端末20の入出力部23は、ユーザから、表示されたカテゴリーの訂正の入力を受け付ける(ステップS701)。
【0112】
端末20は、受け付けた訂正後のカテゴリーと、対応する収支データとを、サーバ10に送信する(ステップS702)。
【0113】
サーバ10は、端末20から、訂正後のカテゴリーと、対応する収支データと受信すると、その収支データが、収支データベース151において対応付けられているカテゴリーを、訂正後のカテゴリーに修正して、収支データベース151を更新し、記憶する(ステップS703)。
【0114】
収支データベース151を更新すると、サーバ10は、修正後のカテゴリーと収支データとを、端末20に送信する(ステップS704)。
【0115】
修正後のカテゴリーと収支データとを受信すると、端末20は、その収支データに、修正後のカテゴリーを対応付けて表示部24に表示する(ステップS705)。
【0116】
なお、端末20では、ユーザからカテゴリーの訂正を受け付けた時点で、訂正後のカテゴリーと収支データが表示されてよく、その場合には、ステップS704、S705の処理は省略することとしてもよい。
【0117】
図8は、図7に示すやり取りを実現するためのサーバ10の動作例を示すフローチャートである。なお、端末20の動作は、図6のステップS605、S606の処理が該当する。
【0118】
図8に示すようにサーバ10の制御部11は、ユーザの端末から、収支データと、カテゴリーの情報の組み合わせを受信する(ステップS801)。
【0119】
制御部11は、受信した収支データが、収支データベース141に登録されているか否かを判定する(ステップS802)。
【0120】
受信した収支データが、収支データベース141に登録されている場合には(ステップS802のYES)、制御部11は、登録されている収支データベース141の収支データに対応付けられているカテゴリーを、受信したカテゴリーの情報が示すカテゴリーに更新して(ステップS803)、処理を終了する。この後、制御部11は、修正後のカテゴリーと、収支データを、端末20に送信する。
【0121】
受信した収支データが、収支データベース141に登録されていない場合には(ステップS802のNO)、制御部11は、収支データベース141に新たに登録して(ステップS804)、終了する。なお、ステップS804の処理は、ユーザ側で最初からカテゴリーを指定する場合における処理である。
【0122】
図7図8に示すように、通信システム1においては、ユーザ側で、サーバ10が収支データに付与したカテゴリーを訂正することができる。
【0123】
<実施形態変形例>
上記実施形態においては、サーバ10が、分類処理を実行しているが、端末20が、分類処理を行ってもよく、図9に示すように、サーバ10が保持していた機能を端末20が備える構成としてもよい。
【0124】
即ち、記憶部28が、収支データベース251、第1モデル252、第2モデル253を記憶し、制御部21が、取得部214、第1判断部215、第1分類部216、算出部217、第2判断部218、第2分類部219を記憶していることとしてもよい。収支データベース251は、収支データベース151に相当し、第1モデル252は、第1モデル152に相当し、第2モデル253は、第2モデル153に相当する。同様に、取得部214は取得部114に、第1判断部215は第1判断部115に、第1分類部216は第1分類部116に、算出部217は算出部117に、第2判断部218は第2判断部118に、第2分類部219は第2分類部119に、それぞれ相当する。
【0125】
このとき、第1モデル252、第2モデル253については、プリインストールあるいは、家計簿アプリをインストールするタイミングで、サーバ10から提供されて記憶部28に記憶されることとしてよい。また、第1モデル252、第2モデル253を更新する場合には、サーバ10から取得することとしてよい。また、収支データベース151は、複数のユーザの収支データが含まれるものであったが、収支データベース151は、端末20のユーザ個人に特化したデータベースとなる。
【0126】
このように、サーバ10が保持していた機能は、記憶部28の記憶容量と、制御部21の処理性能が許す限り、端末20によっても実現可能である。
【0127】
また、上記実施形態においては、分類対象として支出である収支データを分類する例を示しているが、支出に限らず収入に関するものであってもよく、その場合のカテゴリーとしては、例えば、月給、ボーナス、アルバイト収入などであってもよい。また、上記実施形態においては、分類する対象として、ユーザの収支に関連する収支データを一例として示したが、分類対象は収支に関連する収支データに限定するものではなく、他の分野での分類に用いてもよい。該当するカテゴリーが複数あるデータの分類において、エントロピーを算出して、その高低によって分類に用いるモデルを異ならせれば、他の種別のデータの分類に用いてもよく、限定ではなく一例として、画像データを画像データの内容やメタデータを利用して分類する際に、画像データあるいは画像データのメタデータのエントロピーを算出して、その高低によって分類するモデルを異ならせてカテゴリーを割り当ててもよい。
【0128】
また、サーバ10(又は端末20)は、第1モデルを用いた分類、あるいは、第2モデルを用いた分類の結果、仮に、分類すべきカテゴリーがない場合には、最も近しいカテゴリーに分類してもよいし、分類できなかったことを示すエラー情報を、出力するように構成されてもよい。
【0129】
また、第1モデル(152、252)及び第2モデル(153、253)は、その推定の精度を向上させるために適宜更新されてよく、限定ではなく一例として、1ヶ月単位あるいは半年単位など、適切なタイミングで更新されてよい。
【0130】
<実施形態の効果>
上記実施形態に示すように、サーバ10(又は端末20)は、収支データベース151を用いた過去にユーザが修正したことがある収支データのカテゴリーに基づく分類ができなかった場合に、収支データのエントロピーを算出し、その高低、即ち、曖昧さの度合によって分類手法を変更する。即ち、収支データのエントロピーが高い場合に、サーバ10(又は端末20)は、第1モデル152(限定ではなく、一例として、決定木モデル)を用いた分類を実行し、収支データのエントロピーが低い場合に、第2モデル153を用いた分類を実行する。
【0131】
これにより、サーバ10(又は端末20)は、単なる形態素解析からでは得られなかった精度の高さで、収支データを分類することができる。したがって、ユーザにとって分類の信頼度の高い分類方法、及び、そのプログラムを提供することができる。
【0132】
また、収支データは、物品又はサービスを購入した金額、収支が発生した日時、及び、購入した物品又はサービスの名称又は購入した日時を含む情報であってよい。
【0133】
収支データがこれらの情報を含むことで、サーバ10(又は端末20)は、収支データを精度よく分類することができる。
【0134】
また、サーバ10(又は端末20)は、ユーザが過去にカテゴリーを修正したことがある収支データを用いて、新たな収支データを分類することとしてもよい。
【0135】
過去の収支データの内容に一致する収支データであって、ユーザがカテゴリーを修正したことがある収支データが有る場合に、その収支データは、ユーザがカテゴリーを指定したことを示す。したがって、サーバ10(又は端末20)は、新たな収支データを確定的、即ち、確信をもって、分類することができる。
【0136】
また、サーバ10(又は端末20)は、複数のユーザによる収支データと対応付けられたカテゴリーとを学習した第1モデルを用いることで、新たな収支データを分類する。
【0137】
これにより、サーバ10(又は端末20)は、収支データの曖昧さの度合いが大きくても、新たな収支データを分類することができる。
【0138】
また、サーバ10(又は端末20)は、収支データに含まれる単語と、その単語を含む収支データに割り当てられたカテゴリーとを参照して、新たな収支データに含まれる単語それぞれのカテゴリーを特定することで、新たな収支データを分類する。
【0139】
これにより、サーバ10(又は端末20)は、収支データの曖昧さの度合いが小さい場合に、新たな収支データを適切に分類することができる。
【0140】
また、端末20は、新たな収支データのカテゴリーを、収支データとともに出力(表示)することとしてもよい。
【0141】
これにより、端末20のユーザは、新たな収支データのカテゴリーを一意に認識することができる。
【0142】
また、端末20の入出力部23は、ユーザから収支データに対して割り当てられたカテゴリーの訂正入力を受け付けることとしてもよい。
【0143】
これにより、ユーザは、サーバ10(又は端末20)が割り当てたカテゴリーが納得いかなかった場合に、その内容を修正することができる。
【0144】
また、サーバ10(又は端末20)は、ユーザからカテゴリーの訂正を受け付けた場合に、訂正後のカテゴリーを収支データに対応付けて記憶することとしてもよい。
【0145】
これにより、以降において、サーバ10(又は端末20)は、類似する新たな収支データを受け付けた場合に、その収支データを、適切に分類することができる。
【0146】
なお、エントロピーとモデルを用いて分類するデータは家計簿の収支データに限られない。例えば会計におけるデータのエントロピーを算出して、エントロピーによって勘定科目に分類するモデルを切り替えるように構成しても構わない。
【符号の説明】
【0147】
1 通信システム
10 サーバ
11 制御部
111 メッセージ処理部
114 取得部
115 第1判断部
116 第1分類部
117 算出部
118 第2判断部
119 第2分類部
12 入出力部
13 表示部
14 通信I/F(通信部)
20 端末
21 制御部
211 メッセージ処理部
212 表示処理部
213 家計簿アプリ実行部
214 取得部
215 第1判断部
216 第1分類部
217 算出部
218 第2判断部
219 第2分類部
22 通信I/F
23 入出力部
231 タッチパネル
232 マイク
233 スピーカ
234 カメラ
24 表示部(ディスプレイ)
28 記憶部
30 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9