説明

予測入力装置

【課題】属性情報に応じた予測入力をする技術を提供する。
【解決手段】情報処理装置から、未確定文字列と、前記未確定文字列の直前の確定単語と、前記未確定文字列及び前記確定単語に関する属性情報とを受信する受信手段と、前記確定単語と前記確定単語に続く前記未確定文字列とを含む1以上の単語系列を形成し、前記属性情報及び前記単語系列に含まれる連続する2単語についての二単語連続出現確率に基づいて、各単語系列の尤度を算出する予測手段と、前記情報処理装置に、前記1以上の単語系列から、前記尤度が高い所定の件数の単語系列を送信する送信手段と、を備える予測入力装置とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、予測入力装置に関する。
【背景技術】
【0002】
入力された文字列に基づいて、当該文字列に対する変換候補を予測する予測入力装置がある。予測入力とは、以前に入力した内容等に基づいて、これから入力される語句を予測する機能である。予測入力装置を利用することにより、文書の入力の際、より少ないキー操作で文章を入力できる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−112220号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
インターネット上のコニュニティが多様化し、一人の利用者が複数のコミュニティに参加することがある。投稿文書作成を素早く行うことで、更に多様なコミュニティに参加できる可能性がある。コミュニティの情報は、文書に関する属性情報に含まれる。
【0005】
コミュニティとは、例えば、マイクロブログ、ブログ等の、カテゴリー、ドメイン名、URL(Uniform Resource Locator)、特定の記号に文字列を付加したタグ(例えば、ハッシュタグ等)、電子掲示板のカテゴリー、スレッド、アプリケーション名、路線検索アプリケーションにおける駅名などである。
【0006】
情報処理装置の利用者が入力する文字列は、入力の対象となる、コミュニティによって、使う用語、単語等が、異なることがある。あるコミュニティで頻繁に使用する語が、他のコミュニティで同様に使用されるとは限らない。よって、あるコミュニティに限定の用語が予測入力装置の履歴に残ることで、このコミュニティとは関係のない他の文書作成時にも推薦されることがある。コミュニティの情報は、入力する文字列の属性情報に含まれる。
【0007】
また、携帯電話等のモバイル端末を使用したコミュニティへの参加も可能となっている。しかし、モバイル端末では、入力機器の制限から投稿文書の素早い作成が困難である。したがって、モバイル端末においては、より少ないキー操作で入力することが求められる。
【0008】
本発明は、属性情報に応じた予測入力をする技術を提供することを課題とする。
【課題を解決するための手段】
【0009】
上述の課題を解決するために、本発明の態様では、以下の構成を採用する。
【0010】
本発明の一態様は、
情報処理装置から、未確定文字列と、前記未確定文字列の直前の確定単語と、前記未確定文字列及び前記確定単語に関する属性情報とを受信する受信手段と、
前記確定単語と前記確定単語に続く前記未確定文字列とを含む1以上の単語系列を形成し、前記属性情報及び前記単語系列に含まれる連続する2単語についての二単語連続出現確率に基づいて、各単語系列の尤度を算出する予測手段と、
前記情報処理装置に、前記1以上の単語系列から、前記尤度が高い所定の件数の単語系列を送信する送信手段と、
を備える予測入力装置である。
【0011】
なお、本発明の他の態様として、以上のいずれかの構成を実現する方法、プログラム、当該プログラムを記録したコンピュータ読み取り可能記録媒体であってもよい。
【発明の効果】
【0012】
本発明の態様によれば、属性情報に応じた予測入力をする技術を提供することができる。
【図面の簡単な説明】
【0013】
【図1】図1は、情報処理システムの例を示す図である。
【図2】図2は、単語出現頻度テーブルの例を示す図である。
【図3】図3は、単語出現確率テーブルの例を示す図である。
【図4】図4は、二単語連続出現頻度テーブルの例を示す図である。
【図5】図5は、二単語連続出現確率テーブルの例を示す図である。
【図6】図6は、単語読みテーブルの例を示す図である。
【図7】図7は、確定履歴テーブルの例を示す図である。
【図8】図8は、情報処理装置のハードウェア構成例を示す図である。
【図9】図9は、情報処理システムの動作シーケンスの例(1)を示す図である。
【図10】図10は、情報処理システムの動作シーケンスの例(2)を示す図である。
【図11】図11は、収集部の動作フローの例を示す図である。
【図12】図12は、予測入力部の動作フローの例(1)を示す図である。
【図13】図13は、予測入力部の動作フローの例(2)を示す図である。
【図14】図14は、単語系列の例を示す図である。
【図15】図15は、単語系列の具体例を示す図である。
【図16】図16は、非単語を単語に置換した単語系列の例を示す図である。
【図17】図17は、ユーザ端末の動作フローの例(1)を示す図である。
【図18】図18は、ユーザ端末の動作フローの例(2)を示す図である。
【図19】図19は、予測入力部の動作フローの例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を参照して実施形態について説明する。実施形態の構成は例示であり、本発明は開示の実施形態の構成に限定されない。
【0015】
〔実施形態〕
(構成例)
図1は、本実施形態の情報処理システムの例を示す図である。図1の情報処理システム10は、サーバ装置100、記憶装置200、ユーザ端末300を含む。サーバ装置100は、記憶装置200及びユーザ端末300と、それぞれ、ネットワーク等を介して、接続される。サーバ装置100には、複数のユーザ端末300が接続されうる。サーバ装置100は、記憶装置200を含んでもよい。ネットワーク等は、インターネット等の公衆ネットワーク、LAN(Local Area Network)、WAN(Wide Area Network)等の内部
ネットワークであってもよい。
【0016】
サーバ装置100は、サービス部110、収集部120、予測入力部130を含む。サービス部110、収集部120、予測入力部130のうち、いずれかが、別のサーバ装置に含まれてもよい。例えば、サービス部110を含むサーバ装置と、収集部120を含む
サーバ装置と、予測入力部130を含むサーバ装置とが、ネットワーク等を介して接続されて、サーバ装置100として、動作してもよい。複数のサーバ装置によって、サービス部110、収集部120、予測入力部130が実現されることによって、各処理部による負荷が分散される。また、1つの処理部が複数の処理部として実現されてもよい。
【0017】
サービス部110は、ユーザ端末300等に対し、ブログ、マイクロブログ、電子掲示板等のサービスを提供する。サービスには、例えば、利用者が情報処理装置等を利用して文字等を入力して投稿するあらゆるサービスが含まれる。サービス部110は、マイクロブログ等のサービスにおいて、ユーザ端末300等から投稿された文書、当該文書が投稿された日時、当該文書が投稿されたコミュニティ等を保存する。サービス部110は、収集部120からの要求に応じて、当該文書等を提供する。提供する文書には、当該文書が投稿された日時の情報、当該文書が投稿されたコミュニティの情報が含まれる。当該コミュニティの情報は、当該文書に関する属性情報に含まれる。
【0018】
コミュニティとは、例えば、マイクロブログ、ブログ、SNS(Social Network Service)等の、カテゴリー、ドメイン名、URL、特定の記号に文字列を付加したタグ(例えば、ハッシュタグ等)、電子掲示板のカテゴリー、スレッド、アプリケーション名、路線検索アプリケーションにおける駅名などである。
【0019】
収集部120は、サービス部110に投稿された文書を要求し、サービス部110から文書(文書群)を受信する。収集部120は、所定時間毎に、サービス部110に投稿された文書を要求する。収集部120は、サービス部110から文書を受信する。
【0020】
収集部120は、全文書に対して形態素解析を実行する。収集部120は、形態素解析の実行結果として、各文書に含まれる単語情報を取得する。即ち、収集部120は、全文章を単語ごとに区切り、単語を抽出する。収集部120は、単語情報から、各単語の出現回数(単語出現頻度)をカウントする。収集部120は、特定の2単語が特定の順番で連続して出現する回数である二単語連続出現頻度をカウントする。二単語連続出現頻度は、任意の単語と任意の単語とが隣り合って(連続して)出現する回数である。ここで、二単語連続出現頻度のカウントにおいて、単語「A」と単語「B」とが、単語「A」、単語「B」の順に連続して出現した場合と、単語「B」、単語「A」の順に連続して出現した場合を別のものとしてカウントする。
【0021】
収集部120は、これらの、単語出現頻度データ、二単語連続出現頻度データを、単語出現頻度テーブル211、二単語連続出現頻度テーブル213として、単語DB210に格納する。単語出現頻度テーブル211、二単語連続出現頻度テーブル213には、各単語を含む文書が投稿されたコミュニティが、各単語と共に格納される。
【0022】
収集部120は、抽出された各単語の読み(読み方)を、既存のデータベース等から抽出する。収集部120は、各単語と各単語の読みとの組み合わせである単語読みデータを、単語読みテーブル215として、単語DB210に格納する。
【0023】
収集部120は、単語出現頻度データから、単語出現確率を算出する。コミュニティcにおける単語wの単語出現確率p1c(w)は、次のように算出される。
【0024】
【数1】

【0025】
収集部120は、二単語連続出現頻度データから、二単語連続出現確率を算出する。コミュニティcにおいて単語wp(前単語wp)に続いて単語ws(後単語ws)が出現する確率である二単語連続出現確率p2c(wp,ws)は、次のように算出される。
【0026】
【数2】

【0027】
収集部120は、これらの、単語出現確率データ、二単語連続出現確率データを、それぞれ、単語出現確率テーブル212、二単語連続出現確率テーブル214として、単語DB210に格納する。単語出現頻度テーブル212、二単語連続出現頻度テーブル214には、各単語を含む文書が投稿されたコミュニティが、各単語と共に格納される。
【0028】
予測入力部130は、ユーザ端末300から、文書の投稿先のコミュニティの情報の通知を受ける。予測入力部130は、ユーザ端末300から、当該コミュニティに投稿する予定の文書の未確定文字列と、この文字列の直前の1単語(直前単語)とを受信する。
【0029】
予測入力部130は、単語DB210、確定履歴DB220の情報等を使用して、未確定文字列と直前単語とから予測される単語系列を算出する。
【0030】
予測入力部130は、算出した単語系列をユーザ端末300に送信する。予測入力部130は、ユーザ端末300から確定文字列を受信する。予測入力部130は、受信した確定文字列を、確定履歴データとして、確定履歴DB220の確定履歴テーブル221に格納する。
【0031】
記憶装置200は、単語DB(Data Base: データベース)210、確定履歴DB22
0を含む。単語DB210、確定履歴DB220は、それぞれ、別々の記憶装置に含まれてもよい。
【0032】
単語DB210は、単語出現頻度テーブル211、単語出現確率テーブル212、二単語連続出現頻度テーブル213、二単語連続出現確率テーブル214、単語読みテーブル215を含む。
【0033】
図2は、単語出現頻度テーブルの例を示す図である。単語出現頻度テーブル211は、コミュニティ毎に、コミュニティに投稿された文書に出現した単語とその単語の出現回数とを対応付けた単語出現頻度データを格納する。テーブルにおける、情報(例えば、コミュニティと単語とこの単語の出現回数等)の1つの組み合わせを1つのレコードともいう。
【0034】
図3は、単語出現確率テーブルの例を示す図である。単語出現確率テーブル212は、コミュニティ毎に、コミュニティに投稿された文書に出現した単語とその単語の出現確率とを対応付けた単語出現確率データを格納する。
【0035】
図4は、二単語連続出現頻度テーブルの例を示す図である。二単語連続出現頻度テーブル213は、コミュニティ毎に、コミュニティに投稿された文書に出現した単語(前単語)とその単語に続いて出現した単語(後単語)とその出現頻度とを対応付けた二単語連続出現頻度データを格納する。
【0036】
図5は、二単語連続出現確率テーブルの例を示す図である。二単語連続出現確率テーブ
ル214は、コミュニティ毎に、コミュニティに投稿された文書に出現した単語(前単語)とその単語に続いて出現した単語(後単語)とその出現確率とを対応付けた二単語連続出現確率データを格納する。
【0037】
図6は、単語読みテーブルの例を示す図である。単語読みテーブル215は、各単語と各単語の読みとの組み合わせである単語読みデータを格納する。単語の読みは、平仮名表記であっても、片仮名表記であっても、ローマ字表記であっても、その他の表記であっても、これらのすべてでも、これらの一部でもよい。また、単語の読みに、アラビア数字(0、1、2など)が含まれてもよい。また、1つの単語に対して、複数のよみが格納されてもよい。未確定文字列として、ローマ字入力途中のものを含むことを許容する場合、単語の読みをローマ字表記にしてもよい。また、ローマ字表記の場合、例えば、「つ」に対して、「tu」、「tsu」等の複数の表記を網羅してもよい。
【0038】
確定履歴DB220は、確定履歴テーブル221を含む。
【0039】
図7は、確定履歴テーブルの例を示す図である。確定履歴テーブル221は、コミュニティ毎に、利用日時と、前要素と、後要素とを対応付けた確定履歴データを格納する。単語(要素)が先頭である場合、当該単語(要素)の前要素は、「Start」であるとして、
当該単語(要素)が先頭の要素であることを示す。また、単語(要素)が末尾である場合、当該単語(要素)の後要素は、「End」であるとして、当該単語(要素)が末尾の要素
であることを示す。
【0040】
ここで、例えば、単語(要素)が先頭である場合とは、テキスト全体のうちの最初の単語(要素)である場合を指す。このとき、単語(要素)が末尾である場合とは、テキスト全体のうちの最後の単語(要素)である場合を指す。
【0041】
また、例えば、単語(要素)が先頭である場合とは、句点などの文の区切りからなる形態素に基づいて文単位に区切られたものの最初の単語(要素)である場合を指してもよい。このとき、単語(要素)が末尾である場合とは、句点などの文の区切りからなる形態素に基づいて文単位に区切られたものの末尾の単語(要素)である場合を指してもよい。
【0042】
ユーザ端末300は、利用者がサービス部110等が提供するサービスのコミュニティに文章等を投稿する際の入力装置である。ユーザ端末300は、かな漢字変換機能を備える。
【0043】
ユーザ端末300は、利用者が投稿する予定のコミュニティの情報と、利用者によって入力された未確定文字列と、この文字列の直前の1単語(直前単語)とを、予測入力部130に送信する。ユーザ端末300は、予測入力部130に送信した未確定文字列等に対しての予測結果を、予測入力部130から受信する。ユーザ端末300は、利用者に、予測入力部130から受信した予測結果を提示し、未確定文字を確定させるか否かを選択させる。ユーザ端末300は、利用者によって未確定文字が確定されると、当該確定文字を、予測入力部130に送信する。
【0044】
ユーザ端末300は、利用者が文書を入力する際の、利用しているサイトのドメイン名、URL等により、投稿先のコミュニティ(投稿しようとしているコミュニティ)を判別してもよい。また、当該ドメイン名や、URL等自体を、そのまま、投稿先のコミュニティの情報としてもよい。
【0045】
サーバ装置100は、パーソナルコンピュータ(PC、Personal Computer)のような
汎用のコンピュータまたはサーバマシンのような専用のコンピュータを使用して実現可能
である。
【0046】
ユーザ端末300は、PC、PDA(Personal Digital Assistant)のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。また、ユーザ端末300は、スマートフォン、携帯電話、カーナビゲーション装置のような専用または汎用のコンピュータ、あるいは、コンピュータを搭載した電子機器を使用して実現可能である。
【0047】
図8は、情報処理装置のハードウェア構成例を示す図である。サーバ装置100及びユーザ端末300は、例えば、図8に示すような情報処理装置1000によって、実現される。
【0048】
コンピュータ、即ち、情報処理装置1000は、CPU(Central Processing Unit)
1002、メモリ1004、記憶部1006、入力部1008、出力部1010、通信部1012を含む。
【0049】
情報処理装置1000は、CPU1002が記録部1006に記憶されたプログラムをメモリ1004の作業領域にロードして実行し、プログラムの実行を通じて周辺機器が制御されることによって、所定の目的に合致した機能を実現することができる。
【0050】
CPU1002は、記憶部1006に格納されるプログラムに従って処理を行う。
【0051】
メモリ1004は、CPU1002がプログラムやデータをキャッシュしたり作業領域を展開したりする。メモリ1004は、例えば、例えば、RAM(Random Access Memory)やROM(Read Only Memory)を含む。
【0052】
記憶部1006は、各種のプログラム及び各種のデータを読み書き自在に記録媒体に格納する。記憶部1006は、例えば、EPROM(Erasable Programmable ROM)、ソリ
ッドステートドライブ(SSD、Solid State Drive)装置、ハードディスクドライブ(
HDD、Hard Disk Drive)装置である。記憶部1006としては、例えば、CD(Compact Disc)ドライブ装置、DVD(Digital Versatile Disk)ドライブ装置、+R/+R
Wドライブ装置、HD DVD(High-Definition Digital Versatile Disk)ドライブ装置、または、BD(Blu-ray Disk)ドライブ装置がある。また、記録媒体としては、例えば、不揮発性半導体メモリ(フラッシュメモリ)を含むシリコンディスク、ハードディスク、CD、DVD、+R/+RW、HD DVD、または、BDがある。CDとしては、CD−R(Recordable)、CD−RW(Rewritable)、CD−ROMがある。DVDとしては、DVD−R、DVD−RAM(Random Access Memory)がある。BDとしては、BD−R、BD−RE(Rewritable)、BD−ROMがある。また、記憶部1006は、リムーバブルメディア、即ち可搬記録媒体を含むことができる。リムーバブルメディアは、例えば、USB(Universal Serial Bus)メモリ、あるいは、CDやDVDのようなディスク記録媒体である。
【0053】
メモリ1004及び記憶部1006は、コンピュータ読み取り可能な記録媒体である。
【0054】
入力部1008は、ユーザ等からの操作指示等を受け付ける。入力部1008は、キーボード、ポインティングデバイス、ワイヤレスリモコン、マイクロフォン、カメラ等の入力デバイスである。入力部1008から入力された情報は、CPU1002に通知される。
【0055】
出力部1010は、CPU1002で処理されるデータやメモリ1004に記憶される
データを出力する。出力部1010は、CRT(Cathode Ray Tube)ディスプレイ、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)パネル、プリンタ、スピーカ等の出力デバイスである。
【0056】
通信部1012は、外部装置とデータの送受信を行う。通信部1012は、例えば、信号線を介して、外部装置と接続される。外部装置は、例えば、他の情報処理装置、記憶装置である。通信部1012は、例えば、LAN(Local Area Network)インタフェースボードや、無線通信のための無線通信回路である。
【0057】
情報処理装置1000は、記憶部1006に、オペレーティングシステム、各種プログラム、各種テーブル等を記憶している。
【0058】
オペレーティングシステムは、ソフトウェアとハードウェアとの仲介、メモリ空間の管理、ファイル管理、プロセスやタスクの管理等を行うソフトウェアである。オペレーティングシステムは、通信インタフェースを含む。通信インタフェースは、通信部1012を介して接続される他の外部装置等とデータのやり取りを行うプログラムである。
【0059】
サーバ装置100を実現できる情報処理装置1000は、CPU1002が記憶部1006に記憶されているプログラムをメモリ1004にロードして実行することによって、サービス部110、収集部120、予測入力部130としての機能を実現する。
【0060】
記憶装置200としては、例えば、ソリッドステートドライブ装置、ハードディスクドライブ装置、CDドライブ装置、DVDドライブ装置、+R/+RWドライブ装置、HD
DVDドライブ装置、または、BDドライブ装置がある。また、記憶装置200は、リムーバブルメディア、即ち可搬記録媒体を含むことができる。
【0061】
(動作例)
〈全体〉
本実施形態の情報処理システム10の動作例について説明する。
【0062】
情報処理システム10では、収集部120が、サービス部110から文書を収集し、コミュニティ毎に、文書に出現する単語の出現頻度等を求めて、記憶装置200に格納する。また、情報処理システム10では、ユーザ端末300が予測入力部130に通知したコミュニティ及び未確定文字に基づいて、予測入力部130がユーザ端末300の利用者が入力しようとしている文字列を予測し、ユーザ端末300に送信する。
【0063】
図9及び図10は、情報処理システムの動作シーケンスの例を示す図である。図9の「A」、「B」、「C」、「D」、「E」、「F」は、それぞれ、図10の「A」、「B」、「C」、「D」、「E」、「F」と接続する。
【0064】
収集部120は、所定の周期で、サービス部110に投稿された文書を要求し、サービス部110から、サービス部110に蓄積される文書(文書群)を収集する(SQ1002)。収集部120は、他のサーバ装置から、蓄積される文書を収集してもよい。
【0065】
収集部120は、コミュニティ毎に、各文書に含まれる単語を抽出する。収集部120は、抽出した単語等から、単語出現頻度データ、二単語連続出現頻度データ、単語出現確率データ、二単語連続出現確率データを生成する(SQ1004)。
【0066】
収集部120は、生成した、単語出現頻度データ、二単語連続出現頻度データ、単語出現確率データ、二単語連続出現確率データを、単語DB210に、それぞれ、単語出現頻
度テーブル211、二単語連続出現頻度テーブル213、単語出現確率テーブル212、二単語連続出現確率テーブル214として格納する(SQ1006)。
【0067】
ここまでの動作により、ユーザ端末300における未確定文字列から入力しようとしている文字列を予測するためのデータが生成される。
【0068】
ユーザ端末300は、予測入力部130に、利用者が文章を投稿しようとする投稿先のコミュニティ(投稿先のコミュニティの情報)を、通知する(SQ1008)。投稿先のコミュニティは、例えば、利用者が文章を入力している領域の属性(コミュニティ等)によって、判断される。予測入力部130は、ユーザ端末300から、利用者が文章を投稿しようとする投稿先のコミュニティの情報を受信する。
【0069】
ユーザ端末300は、予測入力部130に、利用者が入力している未確定文字列、及び、当該文字列の直前の1単語(直前単語)を通知する(SQ1010)。未確定文字列が先頭の文字列である場合、直前単語は送信されない。予測入力部130は、ユーザ端末300から、未確定文字列、及び、直前単語を受信する。ユーザ端末300は、予測入力部130が当該直前単語を認識している場合、予測入力部130に、当該直前単語を通知しなくてもよい。
【0070】
予測入力部130は、単語DB210から、通知されたコミュニティについての各種データを読み出す(SQ1012)。予測入力部130は、確定履歴DB220から、通知されたコミュニティについての確定履歴データを読み出す(SQ1014)。
【0071】
予測入力部130は、ユーザ端末300から通知されたコミュニティ、未確定文字列、直前単語、単語DB210から読み出した各種データ、確定履歴DB220から読み出した確定履歴データ等に基づいて、ユーザ端末300の利用者が入力しようとしている文字列を予測する(SQ1016)。予測入力部130は、予測した文字列を、尤度が高い順にソートする。
【0072】
予測入力部130が、ユーザ端末300に、予測した文字列のうち、尤度が高い上位N件を送信する(SQ1018)。
【0073】
ユーザ端末300は、予測入力部130に対して送信した未確定文字列等に対して予測される文字列を、予測入力部130から受信する。ユーザ端末300は、利用者に、予測入力部130から受信したN件の文字列を提示する。ユーザ端末300は、利用者に対し、受信した文字列の中から適切なものを選択させる(SQ1020)。また、ユーザ端末300は、適切なものが選択されない場合、利用者からの指示により、受信した文字列の次に尤度が高い予測した別の文字列を、予測入力部130に送信させてもよい。
【0074】
ユーザ端末300は、予測入力部130に、利用者によって選択された文字列(選択結果)を送信する(SQ1022)。予測入力部130は、ユーザ端末から送信された文字列(選択結果)に基づいて、確定履歴データを更新する(SQ1024)。
【0075】
このようにして、情報処理システム10では、収集部120が、サービス部110からコミュニティ毎に単語を収集し、予測入力部130が、ユーザ端末300から送信された、コミュニティ、未確定文字列等から利用者が入力しようとしている文字列を予測する。
【0076】
〈収集部〉
図11は、収集部の動作フローの例を示す図である。図11の動作フローは、例えば、所定時間毎に動作する。
【0077】
収集部120は、サービス部110に投稿された文書を要求し、サービス部110から文書(文書群)を受信する(S101)。収集部120は、他のサーバ装置に対し、投稿された文書を要求し、文書(文書群)を収集してもよい。収集される文書は、例えば、ブログサービス、マイクロブログサービス、電子掲示板サービス、SNS(Social Network
Service)等で投稿された文書である。収集される文書には、当該文書が投稿された日時の情報、当該文書が投稿されたコミュニティの情報を含む。
【0078】
収集部120は、抽出された全文書に対して形態素解析を実行する。収集部120は、形態素解析の実行結果として、各文書に含まれる単語情報を取得する(S102)。収集部120は、取得された各単語の読み(読み方)を、既存のデータベース等から抽出する。収集部120は、各単語と各単語の読みとの組み合わせである単語読みデータを、単語読みテーブル215として、単語DB210に格納する。
【0079】
収集部120は、単語情報から、各単語の出現回数(単語出現頻度)をカウントする。出現回数は、文書単位の出現回数としてもよい。文書単位の出現回数とは、1文書に同一単語が複数含まれている場合でも、その単語の出現回数を1回とカウントすることを意味する。さらに、収集部120は、特定の2単語が特定の順番で連続して出現する回数である二単語連続出現頻度をカウントする。収集部120は、これらの、単語出現頻度データ、二単語連続出現頻度データ、タグ単語共起頻度データを、それぞれ、単語出現頻度テーブル211、二単語連続出現頻度テーブル213として、単語DB210に格納する(S103)。
【0080】
収集部120は、単語出現頻度データから、単語出現確率を算出する。収集部120は、二単語連続出現頻度データから、二単語連続出現確率を算出する。収集部120は、これらの、単語出現確率データ、二単語連続出現確率データを、それぞれ、単語出現確率テーブル212、二単語連続出現確率テーブル214として、単語DB210に格納する。単語出現頻度テーブル212、二単語連続出現頻度テーブル214には、各単語を含む文書が投稿されたコミュニティが、各単語と共に格納される(S104)。
【0081】
収集部120は、文書の収集の終了を指示された確認する(S105)。終了が指示された場合(S105;YES)、収集部120は、処理を終了する。終了が指示されていない場合(S105;NO)、処理がステップS101に戻る。
【0082】
収集部120は、各種データを、コミュニティ毎に、カウント、算出し、それぞれのテーブルに格納する。収集部120は、コミュニティとこのコミュニティに属する文書から、このコミュニティで多用される用語を得ることができる。
【0083】
〈予測入力部:予測〉
図12及び図13は、予測入力部の動作フローの例を示す図である。図12の「A」は、図13の「A」と接続する。図12及び図13の動作フローでは、予測入力部130は、ユーザ端末300から未確定文字列等を受信し、ユーザ端末300の利用者が入力しようとしている文字列を予測し、予測した文字列をユーザ端末300に送信する。
【0084】
予測入力部130は、ユーザ端末300から、コミュニティの情報を受信する(S201)。当該コミュニティの情報は、ユーザ端末300の利用者が、文章等を投稿しようとしているコミュニティの情報である。ユーザ端末300の利用者は、例えば、ユーザ端末300に対し、文書等を投稿しようとしているコミュニティを入力することによりユーザ端末300にコミュニティの情報を認識させることができる。
【0085】
予測入力部130は、ユーザ端末300から、前単語、未確定文字を受信する(S202)。予測入力部130は、未確定文字のみを受信してもよい。また、未確定文字が先頭の文字列である場合、予測入力部130は、未確定文字列のみを受信する。
【0086】
予測入力部130は、単語DB210の単語読みテーブル215から、未確定文字の一部又は全部を完全に含む単語群を読み出す(S203)。即ち、予測入力部130は、例えば、未確定文字が「あいう」である場合、読みが「あいう」である単語、読みが「あい」である単語、読みが「いう」である単語、読みが「あ」である単語、読みが「い」である単語、読みが「う」である単語を読み出す。
【0087】
予測変換部130は、前単語と、読み出した単語群とを用いて、すべての単語系列を構築する(S204)。単語系列とは、前単語とこれに続く未確定文字列とによって、形成される単語の並びである。ここでは、未確定文字列の末尾の要素は、非単語でもよい。
【0088】
図14は、単語系列の例を示す図である。図14の例では、未確定文字列が「あいう」である場合を示す。図14の例では、読みが「あいう」である単語による単語系列、読みが「あい」である単語と読みが「う」である単語とによる単語系列、読みが「あ」である単語と読みが「い」である単語と読みが「う」である単語とによる単語系列、読みが「あ」である単語と読みが「いう」である単語とによる単語系列とが形成される。読みが同じ単語が複数存在する場合、複数の単語系列が形成される。また、末尾の要素に該当する、読みが「あいう」である単語、読みが「いう」である単語、読みが「う」である単語は、非単語であってもよい。ここでは、前単語も含めて単語系列という。
【0089】
図15は、単語系列の具体例を示す図である。図15の例では、既に確定している前単語が「二羽」であり、未確定文字列が「にわと」である。ここでは、読みが「に」である単語として、「に」、「二」、「荷」が挙げられている。これらは、読み「に」に基づいて、単語読みテーブル215から、読み出されたものである。また、同様に、読みが「にわ」である単語、読みが「わ」である単語等が単語読みテーブル215から読み出され、挙げられている。一方、末尾の要素に該当する「にわと」、「わと」、「と」は、非単語であってもよい。
【0090】
図12に戻って、予測入力部130は、構築した単語系列の末尾の非単語をプリフィックスに持つ単語を単語読みデータから読み出す(S205)。例えば、未確定文字が「あいう」である場合、予測入力部130は、プリフィックスに読み「あいう」を持つ単語、プリフィックスに読み「いう」を持つ単語、プリフィックスに読み「う」を持つ単語を、読み出す。予測入力部130は、読み出した単語をステップS204で構築した単語系列の非単語と置き換えた新たな単語系列を構築する。
【0091】
図16は、非単語を単語に置換した単語系列の例を示す図である。図16の例は、前単語が「二羽」であり、未確定文字列が「にわと」である例を示している。図16の例では、例えば、非単語「にわと」が、読み「にわと」をプリフィックスに持つ単語である「にわとり」や「鶏」に置換されている。非単語を単語に置換することにより、「二羽−鶏」や「二羽−二話−鳥居」や「二話−庭−と」等の単語系列が形成される。
【0092】
図13に戻って、予測入力部130は、単語系列中の隣り合う二要素(前単語及び後単語)間のつながりのスコアとして、二単語連続出現確率を与える(S206)。即ち、予測入力部130は、単語系列のすべての二要素間のつながりに対して、二単語連続出現確率テーブル214により、当該つながりの前単語と後単語とに対応する二単語連続出現確率を与える。例えば、「二羽−二話−鳥居」において、「二羽」と「二話」との間のつながりに、「二羽」を前単語とし「二話」を後単語とする二単語連続出現確率を与える。さ
らに、「二話」と「鳥」との間に、「二話」を前単語とし「鳥」を後単語とする二単語連続出現確率を与える。対応する二単語連続出現確率が二単語連続出現確率テーブル214にない場合、二単語連続出現確率を0とする。
【0093】
予測入力部130は、コミュニティ、確定履歴テーブル221の確定履歴データに基づいて、ステップS206で二要素間のつながり毎に与えた値に、重み付けの値を乗算し、新たな二要素間のつながりの値(スコア)を算出する(S207)。重み付けの値は、例えば、当該二要素の前単語及び後単語が一致する確定履歴テーブル221のレコードの利用日時と現在日時の差分(単位は、例えば、月、週、日、時、分、秒等)の逆数と1との和とすることができる。また、当該二要素の前単語及び後単語が一致する確定履歴テーブル221のレコードがない場合、重み付けの値を1とすることができる。これにより、最近使用された二要素(前単語及び後単語)間のつながりの値(スコア)を大きくできる。
【0094】
予測入力部130は、各単語系列の各二要素間のスコアに基づいて、系列確率計算アルゴリズム等を用いて、各単語系列の尤度を算出する(S208)。各単語系列の尤度は、例えば、ビタビアルゴリズムを用いることにより算出される。また、各単語系列の尤度は、例えば、1つの単語系列におけるすべてのスコア(二要素間のつながりの値)の積により算出される。尤度の値が高い場合に、もっともらしいと見なす。予測入力部130は、すべての単語系列について尤度を算出する。予測入力部130は、単語系列(予測した文字列)を、尤度が高い順にソートする。尤度は、利用者が入力しようとしている文字列の確率の度合いを示す。即ち、尤度が高いほど、利用者が入力しようとしている確率が高いと、予測入力部130が判断している。
【0095】
予測入力部130は、尤度が高い上位N件(Nは所定の自然数)の単語系列をユーザ端末300に送信する(S209)。また、予測入力部130は、ユーザ端末300からの要求に応じて、尤度が高い上位N+1件以降の単語系列を、ユーザ端末300に送信してもよい。単語系列が送信される際、単語系列から直前単語が除外されてもよい。直前単語は、未確定文字列ではないため、ユーザ端末300に送信されなくてもよい。
【0096】
図12及び図13の動作フローにより、予測入力部130は、ユーザ端末300から未確定文字列等を受信し、ユーザ端末300の利用者が入力しようとしている文字列を予測し、予測した文字列をユーザ端末300に送信する。
【0097】
〈ユーザ端末〉
図17及び図18は、ユーザ端末の動作フローの例を示す図である。図17の「A」は、図18の「A」と接続する。図17及び図18の動作フローでは、ユーザ端末300は、予測入力部130に、コミュニティの情報、及び、直前単語(確定文字列)、未確定文字列を送信すると、予測入力部130から、ユーザが入力しようとしている尤度が高い上位N件の単語系列を受信する。さらに、ユーザ端末300は、利用者による単語系列の選択結果を、予測入力部130に送信する。
【0098】
ユーザ端末300は、コミュニティの情報、及び、直前単語(確定文字列)、未確定文字列を、予測入力部130に送信すると、予測入力部130から、尤度が高い上位N件の単語系列とこの尤度とを受信する(S301)。当該コミュニティの情報は、ユーザ端末300の利用者が利用しているサービス部110等のサービスにおける、利用者が文章等を投稿しようとしているコミュニティの情報である。
【0099】
ユーザ端末300は、受信したN件の単語系列をモニタ等に表示し、利用者に提示する(S302)。当該単語系列は、予測入力部130が、利用者が入力しようとしていると予測する単語系列である。提示する単語系列から、直前単語は除外される。ユーザ端末3
00は、利用者が入力しようとしている単語系列を、利用者に、選択させる。
【0100】
ユーザ端末300は、利用者に、提示したN件の単語系列から、1つの単語系列が選択されたか否かを判定する(S303)。利用者によって、1つの単語系列が選択された場合(S303;YES)、ユーザ端末300は、選択された単語系列を確定文字列として、確定する(S304)。処理が、ステップS307に進む。
【0101】
また、利用者によって、1つの単語系列が選択されない場合(S303;NO)、ユーザ端末300は、かな漢字変換機能により、未確定文字列に対する変換候補を提示する。ユーザ端末300は、利用者に、提示した変換候補から、1つの候補が選択されたか否かを判定する(S305)。
【0102】
利用者によって、1つの候補が選択された場合(S305;YES)、ユーザ端末300は、選択された候補を確定文字列として、確定する(S306)。処理が、ステップS307に進む。
【0103】
ステップS307では、ユーザ端末300は、確定した確定文字列を、予測入力部130に送信する(S307)。
【0104】
利用者によって、1つの候補が選択されない場合(S305;NO)、ユーザ端末300は、利用者に対し、さらなる予測入力部130によって予測された単語系列を要求するか否かを選択させる(S308)。利用者によって、さらなる単語系列を要求された場合(S308;YES)、ユーザ端末300は、予測入力部130に対して、尤度が高いN+1件目以降の単語系列を要求する。この後、ユーザ端末300は、ステップS301以降と同様の動作をする。
【0105】
利用者によって、さらなる単語系列を要求されない場合(S308;NO)、ユーザ端末300は、利用者によるさらなる文字入力を待機する(S310)。ユーザ端末300に対し利用者によって文字入力がされた場合、ユーザ端末300は、入力された文字を未確定文字列として、予測入力部130に送信する。このとき、ユーザ端末300は、コミュニティの情報、直前単語、及び、すべての未確定文字列を、予測入力部130に送信してもよい。この後、ユーザ端末300は、ステップS301以降と同様の動作をする。
【0106】
〈予測入力部:格納〉
図19は、予測入力部の動作フローの例を示す図である。図19の動作フローでは、予測入力部130は、ユーザ端末300から確定文字列を受信し、単語に分解して、利用履歴データを、利用履歴テーブル221に記録する。
【0107】
予測入力部130は、ユーザ端末300から確定文字列を受信する(S401)。予測入力部130は、確定文字列とともにコミュニティの情報を受信してもよい。予測入力部130は、受信した確定文字列に対して、形態素解析を実行する。予測入力部130は、形態素解析により、確定文字列を単語に分解し、一連の単語系列に変換する(S402)。予測入力部130は、当該単語系列から連続した2単語ずつを取り出して、コミュニティの情報、現在日時(確定文字列を受信した日時でもよい)とともに、利用履歴データとして、図7のように、利用履歴テーブル221に記録する(S403)。コミュニティの情報は、未確定文字に対する予測の際に、未確定文字列とともにユーザ端末300から送信されるコミュニティの情報である。
【0108】
(実施形態の作用効果)
サーバ装置100の収集部120は、サービス部110等から、マイクロブログ等のサ
ービスに対して投稿された文書、当該文書が投稿された日時等を収集する。収集部120は、収集した文書等から、単語情報、コミュニティの情報を抽出する。収集部120は、コミュニティ毎に、単語情報に基づいて、各単語の出現頻度、隣接する単語の二単語連続出現頻度を求める。収集部120は、各単語の単語出現確率、二単語連続出現頻度から、単語出現確率、二単語連続出現頻度を求める。予測入力部130は、ユーザ端末300から投稿予定のコミュニティ、未確定文字列、直前単語を受信し、未確定文字列に含まれる単語を抽出する。予測入力部130は、未確定文字列等に基づいて、複数の単語系列を形成し、各単語系列の隣接する二単語間のつながり毎に、二単語連続出現確率を与える。予測入力部130は、過去に確定した確定文字列をコミュニティ毎に収集した確定履歴データを用いて、二単語間のつながりに与えた値に乗算する重み付けの値を算出する。これにより、最近使用された二単語間のつながりの値(スコア)を大きくすることができる。予測入力部130は、各単語系列の各二要素間のスコアに基づいて、系列確率計算アルゴリズム等を用いて、各単語系列の尤度を算出する。
【0109】
本実施形態の構成によれば、ブログ等のサービスにおいて、文書等を投稿する際に、コミュニティに応じた予測入力が可能となる。また、予測入力部130が、コミュニティ毎に収集された確定履歴データを用いることで、投稿する際に、他のコミュニティにおける確定履歴に影響されることなくなる。また、収集部120により、投稿された文書等を定期的に収集することで、新しいコミュニティへの対応や予測精度の向上が可能となる。
【0110】
〔コンピュータ読み取り可能な記録媒体〕
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【0111】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような媒体内には、CPU、メモリ等のコンピュータを構成する要素を設け、そのCPUにプログラムを実行させてもよい。
【0112】
また、このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えば、フレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、DAT、8mmテープ、メモリカード等がある。
【0113】
また、コンピュータ等に固定された記録媒体としてハードディスクドライブやROM等がある。
【符号の説明】
【0114】
10 情報処理システム
100 サーバ装置
110 サービス部
120 収集部
130 予測入力部
200 記憶装置
210 単語DB
211 単語出現頻度テーブル
212 単語出現確率テーブル
213 二単語連続出現頻度テーブル
214 二単語連続出現確率テーブル
215 単語読みテーブル
220 確定履歴DB
221 確定履歴テーブル
300 ユーザ端末
1000 情報処理装置
1002 CPU
1004 メモリ
1006 記憶部
1008 入力部
1010 出力部
1012 通信部

【特許請求の範囲】
【請求項1】
情報処理装置から、未確定文字列と、前記未確定文字列の直前の確定単語と、前記未確定文字列及び前記確定単語に関する属性情報とを受信する受信手段と、
前記確定単語と前記確定単語に続く前記未確定文字列とを含む1以上の単語系列を形成し、前記属性情報及び前記単語系列に含まれる連続する2単語についての二単語連続出現確率に基づいて、各単語系列の尤度を算出する予測手段と、
前記情報処理装置に、前記1以上の単語系列から、前記尤度が高い所定の件数の単語系列を送信する送信手段と、
を備える予測入力装置。
【請求項2】
前記受信手段は、前記情報処理装置から確定文字列を受信し、
前記予測手段は、さらに、前記確定文字列と前記確定文字列を受信した日時に基づいて、各単語系列の尤度を算出する
請求項1に記載の予測入力装置。
【請求項3】
文書と、前記文書に関する前記属性情報とを収集し、前記属性情報毎に、前記文書に含まれる連続する2単語についての前記二単語連続出現確率を算出する収集手段を備える請求項1または2に記載の予測入力装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2012−208893(P2012−208893A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−75901(P2011−75901)
【出願日】平成23年3月30日(2011.3.30)
【出願人】(591117192)ニフティ株式会社 (144)
【Fターム(参考)】