以下に、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は、以下の順序で行う。
1.情報処理システムの構成について
2.情報処理システムを構成する各装置の構成について
3.入力支援に係わる処理について
4.入力支援に係わる処理を行う際に参照されるデータベースの更新について
5.データベースの作成について
[情報処理システムの構成について]
図1は、本技術が適用される情報処理システム1の一実施の形態としての構成例を示す図である。
図1の情報処理システム1は、入力支援サーバ11、クライアント12−1乃至12−N(Nは自然数)、検索サーバ13、およびインターネット14を有している。
なお、クライアント12−1乃至12−Nを個々に区別する必要がない場合、以下単に、クライアント12と記述する。他の構成要素についても同様とする。
入力支援サーバ11、クライアント12、および検索サーバ13は、インターネット14を介して接続される。インターネット14は、種々の有線および/または無線のネットワークと併用または代用可能である。
なお、入力支援サーバ11とクライアント12との間の通信路は、SSL(Secure Socket Layer)などの既存の暗号技術を用いて保護されるのが好ましい。
[情報処理システムを構成する各装置の構成について]
図2は、情報処理装置である入力支援サーバ11の構成例を示すブロック図である。入力支援サーバ11は、CPU(Central Processing Unit)21、単語辞書データベース22、および送受信器23を有している。
CPU21は、取得部41、認証部42、検索部43、通信部44、判断部45、生成部46、更新部47、算出部48、および作成部49の機能ブロックを有している。なおCPU21の各ブロックは、必要に応じて相互に信号、データを授受することが可能とされている。
取得部41は、各種の情報を取得する。認証部42は、クライアント12を認証する。検索部43は、各種の情報を検索する。通信部44は、各種の情報を通信する。判断部45は、各種の情報を判断する。生成部46は、編集したコンテンツを生成する。更新部47は、各種の情報を更新する。算出部48は、抽象度を算出する。作成部49は、単語辞書データベース22を作成する。
単語辞書データベース22は、後述するように、1つの単語に複数の単語が関連付けられたデータから構成されるデータベースである。送受信器23は、インターネット14を介して、クライアント12および検索サーバ13と各種の情報を送受信する。
[クライアント12の構成]
図3は、情報処理装置であるクライアント12の構成例を示すブロック図である。クライアント12は、CPU(Central Processing Unit)61、入力装置62、出力装置63、および送受信器64を有している。
CPU61は、取得部81、通信部82、判断部83、および出力部84の機能ブロックを有している。なおCPU61の各ブロックは、必要に応じて相互に信号、データを授受することが可能とされている。
取得部81は、各種の情報を取得する。通信部82は、各種の情報を通信する。判断部83は、各種の情報を判断する。出力部84は、各種の情報を出力する。
入力装置62は、カメラ、キーボード、マウスなどのユーザインタフェースにより構成され、所定の情報を入力するときユーザにより操作される。出力装置63は、例えば、画像や音楽を出力するディスプレイ、スピーカなどにより構成される。送受信器64は、インターネット14を介して、入力支援サーバ11と各種の情報を送受信する。
[入力支援について]
次に、情報処理システム1において実行される入力支援に係わる処理について説明する。入力支援とは、クライアント12側で入力されたテキストなどのコンテンツに、プライバシに係わるような情報が含まれていたような場合、入力支援サーバ11により、プライバシに係わるような情報が含まれていることをユーザに知らせ、代替表現の単語などを提示することである。
以下の説明においては、テキストが入力され、そのテキスト(文章)内の単語が、プライバシに係わるような単語であった場合、抽象的な単語に置き換えられる場合を例にあげて説明する。しかしながら、本技術が、テキストのみに適用されるのではなく、他のコンテンツ、例えば、画像などに対しても、そのデータに適した処理を行うことで、適用することができる。
ここで、入力支援について、図4を参照して説明する。ユーザは、クライアント12の入力装置62を操作して、図4の文章Aとして示した文章を入力しているとする。文章Aは、出力装置63としてのディスプレイに表示されている。
文章Aは、“最近出たゲームを買おうと思って、昨日、ソニー”とまで入力された状態である。なお、ソニーは、登録商標であるが、このような単語を、抽象的な単語に置き換えるのが、本技術の1つのポイントとなるため、“ソニー”といった名称を使って説明を続ける。
このような文章Aが入力されているとき、“ソニー”という単語が入力された時点で、図4に示したように、吹き出し101が表示される。吹き出し101内には、“プライバシ?”といった文言の下側に、“そのまま”、“メーカー”、“某メーカー”、“電器メーカー”、“会社”、“勤め先”、“勤務先”、“某企業”、“投資先”、“日本会社”、“新規入力”といった単語が表示されている。
また、図4Aに示したように、吹き出し101の吹き出し口は、“ソニー”という処理対象とされている単語の上側に位置するように表示される。なお、吹き出し101の吹き出し口は、処理対象の単語の上側に限らず、下側などに表示され、吹き出し101自体が、単語の下側に表示されることもある。すなわち、吹き出し101の吹き出し口は、処理対象の単語の近傍に表示され、ユーザにその単語の吹き出しであることを容易に認識させることができる表示とされていればよい。
なお、図4を含め、以下の説明においては、吹き出し101が表示されるとして説明するが、吹き出しの形状以外の形状で表示されても良いし、吹き出しとしてではなく、プルダウンメニューのようなメニュー形式や、専用の領域が設けられ、その領域内に単語が表示されるなどのなど出も良い。
吹き出し101内に表示されている単語は、“ソニー”という単語を、他の単語に置き換えたときの候補となる単語である。また、吹き出し101内に表示される単語は、“ソニー”という会社名を特定できないような単語である。例えば、“メーカー”という単語から、一意に“ソニー”と導き出すのは困難である。このように、吹き出し101に表示される単語は、置き換え対象となっている単語を一意に特定できないような単語とされる。
このように、入力支援としては、入力された単語を他の抽象的な単語に置き換えるための支援を行う。
図4Aに示したような吹き出し101が表示されたとき、ユーザが“そのまま”という単語を選択すると、図4Bに示す文章Bで、その時点までに入力されていた文章が確定される。すなわち、文章Bは、“ソニー”という単語を他の単語に置き換えることなく、“ソニー”という単語で確定された文章である。
図4Aに示したような吹き出し101が表示されたとき、ユーザが“某メーカー”という単語を選択すると、図4Cに示す文章Cで、その時点までに入力されていた文章が確定される。すなわち、文章Cは、“ソニー”という単語を“某メーカー”という単語に置き換えた文章として確定された文章である。
図4Aに示したような吹き出し101が表示されたとき、ユーザが“新規入力”という単語を選択すると、図4Dに示すように、新たな吹き出し131が表示される。“新規入力”は、ユーザにより他の単語が入力されるときに選択される項目である。よって、ユーザが他の単語を入力できるような吹き出し131が表示される。吹き出し131内には、他の単語を入力するための欄が表示され、その欄に、ユーザは、所望の単語を入力できるように構成されている。
図4Dに示した例では、吹き出し131内の欄にユーザが“某所”との単語を入力した。このような場合、文章Bは、“ソニー”という単語を“某所”という単語に置き換えた文章として確定された文章である。
このように、“ソニー”といった、一企業を特定する単語が、ユーザの意図により、“某メーカー”や“某所”といった単語に置き換えることができるような支援が、入力支援である。
なお、図4を参照して説明したように、吹き出し101内の“そのまま”という単語は、ユーザが入力した単語をそのまま用いる場合に選択される項目であり、“ソニー”という単語を“そのまま”という単語に置き換えるのではない。また同様に、吹き出し101内の“新規入力”という単語は、ユーザが入力した単語や、吹き出し101内に表示されている単語を用いるのではない場合に選択される項目であり、“ソニー”という単語を“新規入力”という単語に置き換えるのではない。
“そのまま”、“新規入力”という項目に対し、“メーカー”や“某メーカ−”といった単語は、その単語に置き換える候補として表示されているのであり、選択された場合、その選択された単語に、置き換え対象とされた単語が置き換えられる。
このように、吹き出し101には、入力した単語をそのまま用いるときに操作される項目と、その他の単語を入力するときに操作される項目との間に、置き換えの候補となる単語が表示される。また置き換えの候補となる単語は、抽象度が高いと判断された順に並べられている。抽象度については後述する。
また、図4に示した吹き出し101や吹き出し131の表示のタイミングは、一例であり、入力支援処理に係わる入力支援サーバ11とクライアント12の処理により、表示のタイミングは異なる。ここで、表示のタイミングについてさらに説明を加える。
[入力支援を行うタイミングについて]
次に、入力支援を行うタイミングについて説明する。入力支援を行うタイミングとは、図4を再度参照するに、吹き出し101を出すタイミングである。この吹き出し101を出すタイミングは、後述するクライアント12の処理において、ステップS5乃至S8の処理が実行されるタイミングであり、入力支援サーバ11において、ステップS32,S33の処理が実行されるタイミングである。特に、クライアント12において、ステップS6において実行されるコンテンツを送信するという処理が、どのタイミングで行われるかについて、以下に説明を加える。
図5は、第1の表示のタイミングを説明するための図である。ユーザは、クライアント12の入力装置62を操作して、図5Aに示した文章Aとして示した文章を入力しているとする。文章Aは、出力装置63としてのディスプレイに表示されている。
図5Aに示した文章Aは、“最近出たゲームを買おうと思って、昨日、ソニー”とまで入力された状態である。このような文章Aが入力され、“ソニー”との単語が、ユーザにより選択されたとき、その選択を受けて、“ソニー”との単語が、入力支援サーバ11に送信される。このときの選択とは、ユーザが入力支援を受ける単語を直接選択したことを意味する。
このような送信が行われた結果、入力支援サーバ11において、吹き出し101に表示させる単語が、単語辞書データベース22内が参照されることで検索される。ここでは、単語辞書データベース22から、“メーカー”、“某メーカー”、“電器メーカー”、“会社”、“勤め先”、“勤務先”、“某企業”、“投資先”、“日本の会社”といった単語列が読み出される。
詳細は後述するが、入力支援サーバ11においては、読み出された単語列を含む提示情報が、生成される。すなわちこの場合、“そのまま”といった項目と、“新規入力”という項目が単語列に追加され、
“そのまま”、“メーカー”、“某メーカー”、“電器メーカー”、“会社”、“勤め先”、“勤務先”、“某企業”、“投資先”、“日本の会社”、“新規入力”
といった提示情報が生成される。
生成された提示情報は、入力支援サーバ11からクライアント12に対して送信される。その結果、クライアント12においては、入力支援サーバ11からの提示情報を取得し、ディスプレイなどの出力装置に提示情報が出力される。
図5Bは、出力された提示情報を示す。すなわち、図4Aと同じく、吹き出し101が“ソニー”という単語から吹き出され、その吹き出し101内に、提示情報が表示されている。このように、ユーザによる直接選択をトリガーとして、置き換え対象の単語(コンテンツ)が送信され、その結果が、受信されることで、ユーザに置き換え対象となる単語が提示される。
次に、図6を参照し、第2の表示のタイミングについて説明する。なお、以下の説明において、図5を参照して説明した第1の表示のタイミングと重複する説明は適宜、簡略して説明する。
図6Aに示した文章Aは、“最近出たゲームを買おうと思って、昨日、そにー”とまで入力された状態であり、“そにー”との単語が“ソニー”との単語に変換される前の状態の文章である。通常、文章の入力においては、まず“そにー”と平仮名で入力された後、“ソニー”と変換される。文章Aは、変換される前の状態である。
なお、必ずしも平仮名で入力されるとは限らないが、平仮名などの文字列が入力された後に、所望の単語に変換されるのが一般的である。換言すれば、文字入力においては、変換という処理が含まれることが多い。
このような変換が指示されると、文章Aは、“最近出たゲームを買おうと思って、昨日、ソニー”との文章Bとされる。このとき、変換されたことをトリガーとし、変換された単語、すなわちこの場合、“ソニー”との単語が、クライアント12から入力支援サーバ11に対して送信される。
その結果、入力支援サーバ11から、提示情報が送信され、クライアント12で取得され、出力装置63に出力されることで、ユーザに提示される。すなわち、図6Cに示したように、吹き出し101に提示情報が提示された状態で、ユーザに置き換え候補となる単語が提示される。この図6Cに示した文章Cの状態は、図5Bに示した文章Bの状態と同じである。このように、変換をトリガーとして、置き換え対象となる単語が入力支援サーバ11側に送信されるようにしても良い。
次に、図7を参照し、第3の表示のタイミングについて説明する。図7Aに示した文章Aは、“最近出たゲームを買おうと思って、昨日、そ”とまで入力された状態であり、“そ”との単語に対して、吹き出し131が吹き出されている。予測入力、予測変換などと称される機能があり、ユーザが1文字入力すると、その文字が入力されたときに続く文字を予測し、単語を提示する機能がある。
図7Aに示した例では、“そ”との入力文字に対し、“ソニー”、“そらまめ”、“相対性理論”といった単語が吹き出し131内に表示され、ユーザに提示されている。このような吹き出し131内に表示されている単語群から、ユーザは、入力しようとしていた単語を選択する。ここでは、“ソニー”との単語が選択されたとする。
このような選択が行われると、文章Aは、“最近出たゲームを買おうと思って、昨日、ソニー”との文章Bとされる。このような予測機能を用い、例えば、吹き出し131の形状でユーザに単語群を提示することで、ユーザは、“そ”と入力しただけで、“ソニー”との単語を入力できる。
このような単語群からの選択が行われ、単語が確定されたことをトリガーとし、変換された単語、すなわちこの場合、“ソニー”との単語が、クライアント12から入力支援サーバ11に対して送信される。
その結果、入力支援サーバ11から、提示情報が送信され、クライアント12で取得され、出力装置63に出力されることで、ユーザに提示される。すなわち、図7Cに示したように、吹き出し101に提示情報が提示された状態で、ユーザに置き換え候補となる単語が提示される。この図7Cに示した文章Cの状態は、図5Bに示した文章Bの状態と同じである。このように、予測機能により提示された単語群から、単語が選択されたことをトリガーとして、置き換え対象となる単語が入力支援サーバ11側に送信されるようにしても良い。
ここで、図7Aに示した吹き出し131内に表示される単語と、図7Cに示した吹き出し101内に表示される単語を比較する。吹き出し131内に表示される単語は、少なくとも先頭の文字は、ユーザにより入力された文字であり、その文字から始まる単語である。換言すれば、吹き出し131内に表示される単語は、先頭の文字は同一であるという共通点がある。しかしながら、吹き出し131内に表示される単語同士に意味的な関わりはないことが多い。
これに対して、吹き出し101内に表示される単語は、ユーザにより入力された文字が先頭に来ない単語も提示される。よって、吹き出し101内に表示される単語は、先頭の文字は同一であるという共通点はない。しかしながら、吹き出し101内に表示される単語同士には意味的な関わりがある。この意味的な関わりは、対象となっている単語を言い換えるのに適した単語であるため、対象となっている単語の意味と同一、類似する意味を有する関わりである。
また、吹き出し131で提示する単語と、吹き出し101で提示する単語では、提示する意味合いも異なる。吹き出し131で提示する単語は、ユーザが入力する文字数を少なくすることで、入力にかかる負担を軽減することを1つの目的としている。
これに対して、吹き出し101で提示する単語は、ユーザが入力した単語を、他の単語に置き換えた方が良いと判断される場合、例えばプライバシに係わるかもしれない単語であり、ブログなどで不特定多数に公開するには不適切であると判断され、他の単語に置き換えた方が良いと判断される場合に、ユーザに提示される。また提示される単語は、置き換えに適した単語であり、置き換えの単語を考えたり、入力したりする処理にかかるユーザの負担を軽減することを1つの目的としている。
このように、吹き出し131で提示される単語と、吹き出し101で提示される単語は、共に、ユーザの入力を支援するという点では同じであるが、その内容や、支援の仕方は異なる。このようなことは、以下の説明においても同様である。
次に、図8を参照し、第4の表示のタイミングについて説明する。図8に示した文章Aは、“最近出たゲームを買おうと思って、昨日、そ”とまで入力された状態である。この状態は、図7Aに示した状態と同じである。図7では、吹き出し131が表示された後、吹き出し101が表示されるとして説明したが、図8では、吹き出し131と吹き出し101が同時に表示される。
すなわち図8に示した文章Aの状態は、“そ”との単語に対して、吹き出し131が吹き出され、その吹き出し131内に表示されている“ソニー”という単語に対して、吹き出し101が表示されている。このように、予測変換で提示される単語群に、置き換え対象となる単語が含まれていた場合、その置き換え対象となる単語に、さらに入力支援で提示される単語群が提示されるようにしても良い。また、このような提示が行われる場合、図8に示したように、吹き出しを2段で表示するようにすることができる。
図8に示したように、置き換え対象となる単語を提示する場合、文章Aにおいて、“そ”との文字が入力され、その入力された“そ”に対して予測変換機能による予測変換が行われ、その予測変換の結果が提示されることをトリガーとして、“ソニー”との単語が、クライアント12から入力支援サーバ11に対して送信される。
その結果、入力支援サーバ11から、提示情報が送信され、クライアント12で取得され、出力装置63に出力されることで、ユーザに提示される。すなわち、図8に示したように、吹き出し131内の“ソニー”との単語に対して、吹き出し101が表示され、その吹き出し101内に提示情報が提示された状態で、ユーザに置き換え候補となる単語が提示される。
このように、予測機能による単語群が提示されたことをトリガーとして、置き換え対象となる単語が入力支援サーバ11側に送信されるようにしても良い。
入力支援サーバ11に送信される単語であるが、予測機能により提示された単語群の上位に表示されている所定数の単語とされる。この場合、予測機能により単語群が提示されたときに、その単語群から、上位の、例えば3個の単語が選択され、入力支援サーバ11に送信される。その結果、3個の単語に対して、入力支援サーバ11により処理が施され、その3個の単語に対して、提示情報が生成され、クライアント12に送信されてくる。
図8に示した例では、吹き出し101が1個表示されている例を示したが、3個の提示情報が取得された場合、それら3個の提示情報がユーザに提示されるため、3個の吹き出し101が表示される。3個の吹き出し101が表示されるとき、それぞれの吹き出し101が重ならないように、1度に表示されるようにしても良い。または、吹き出し131内で、カーソル(不図示)が位置している単語の吹き出し101が、他の吹き出し101よりも上に、他の吹き出し101に重畳された状態で表示されるようにしても良い。
このように、吹き出し131と吹き出し101が同時に表示されるようにした場合、ユーザは、1度の操作で、入力したかった単語を他の単語に置き換えることが可能となる。
次に、図9を参照し、第5の表示のタイミングについて説明する。図9に示した文章Aは、“最近出たゲームを買おうと思って、昨日、そ”とまで入力された状態である。この状態は、図7Aに示した状態と同じである。図7では、吹き出し131が表示された後、吹き出し101が表示されるとして説明したが、図9でも同じく、吹き出し131が表示された後、吹き出し101が表示されるが、そのタイミングが異なる。
図9Aに示した例では、“そ”との入力文字に対し、“ソニー”、“そらまめ”、“相対性理論”といった予測による単語が吹き出し131内に表示され、ユーザに提示されている。このような吹き出し131内に表示されている単語群内の1つの単語上に、カーソル151が重ねられる。ここでは、“ソニー”との単語上に、カーソル151が重ねられたとする。
このようなカーソル151が重ねられたということをトリガーとし、そのカーソル151が重ねられている単語、この場合、“ソニー”との単語が、クライアント12から入力支援サーバ11に対して送信される。
その結果、入力支援サーバ11から、提示情報が送信され、クライアント12で取得され、出力装置63に出力されることで、ユーザに提示される。この提示は、図9Bに示すように、図8と同じように、2段で吹き出しを表示することで行うことができる。このように、予測機能により提示された単語群の所定の単語上に、カーソルが重ねられたことをトリガーとして、置き換え対象となる単語が入力支援サーバ11側に送信されるようにしても良い。
[入力支援に係わる処理について]
このような入力支援に係わる処理は、クライアント12と入力支援サーバ11とで行われる。まず、クライアント12において行われる処理を、図10のフローチャートを参照して説明し、入力支援サーバ11において行われる処理を,図11のフローチャートを参照して説明する。ここでは、クライアント12の処理に対応して入力支援サーバ11による処理が行われるため、図10と図11のフローチャートをそれぞれ参照しながら説明を続ける。
なお、ここでは、入力支援に係わる処理は、クライアント12と入力支援サーバ11とで行われるとして説明を続けるが、入力支援サーバ11が行う処理をクライアント12で行うことも可能であり、クライアント12のみで、入力支援に係わる処理が行われるように構成することも可能である。
例えば、クライアント12が、単語辞書データベース22を有し、単語辞書データベース22を参照して行う処理を実行できるように構成すれば、クライアント12のみでも、以下に説明する入力支援に係わる処理を実行することはできる。
図10のステップS1において、クライアント12の取得部81は、入力装置62を介してユーザ情報を取得する。すなわち、認証に必要なID、パスワード等に代表される、ユーザにより入力された情報が取得される。ステップS2において、クライアント12の通信部82は、送受信器64およびインターネット14を介して、入力支援サーバ11にユーザ情報を送信する。
図11のステップS31において、入力支援サーバ11は、クライアント認証処理を実行する。入力支援サーバ11の取得部41は、インターネット14および送受信器23を介して、ユーザ情報を取得する。すなわち図10のステップS2の処理で送信されたユーザ情報が取得される。その取得された情報が用いられ、認証部42においては、クライアント12が認証される。
そのユーザが入力支援サーバ11に予め登録したユーザであって、入力支援サーバ11が提供するプライバシ情報保護サービスを利用する権限を有していることが確認される。換言すれば、単語辞書データベース22を利用する権限を有するユーザ(クライアント12)であるか否かが確認される。
入力支援サーバ11の判断部45は、認証に成功したかを判断し、認証に成功したと判断した場合、入力支援サーバ11の通信部44は、クライアント12に認証成功を通知する。一方で、認証に成功しなかった、すなわち認証に失敗したと判断された場合、入力支援サーバ11の通信部44は、クライアント12に認証失敗を通知する。
このような認証処理には、クライアント12に対応する単語辞書データベース22が必要に応じ特定される処理が含まれる。“必要に応じ”とは、単語辞書データベース22が、ユーザ毎に用意されているデータベースであるか否かに依存する。また認証処理自体も、自己のブログなどにアクセスする際などに行われ、そのアクセスの正当性を確認するために行われる場合もあるが、単語辞書データベース22を特定するという観点での認証であれば、ユーザ毎に用意されているデータベースであるか否かに依存して、認証処理を省略することも可能である。
このことについて、図12を参照して説明する。まず、単語辞書データベース22は、辞書作成者が作成する。この辞書作成者が単語辞書データベース22を作成する際の処理、および単語辞書データベース22自体のデータ構造については後述する。
辞書作成者が作成した単語辞書データベース22は、ユーザが利用する毎、または所定の間隔毎に更新され、より適切な単語をユーザに提示できるようなデータベースにされる。この更新処理についても、後述する。図12Aに示した状態は、単語辞書データベース22が複数のユーザで共有される場合を示している。複数のユーザで単語辞書データベース22が共有される場合、単語辞書データベース22は、ユーザ1やユーザ2といった異なるユーザによる処理結果に依存して更新される。
単語辞書データベース22が複数のユーザで共有される場合、ユーザ(クライアント12)を識別する必要がないため、単語辞書データベース22を特定するために行う認証処理は必要なく、そのような認証処理を省略することは可能である。
このような単語辞書データベース22は、複数のユーザにより更新されることで、より一般的な辞書となる。単語辞書データベース22の詳細は後述するが、ラベル単語と、そのラベル単語を抽象的な単語に置き換えたときに適する複数の単語が関連付けられたデータベースである。このような単語辞書データベース22は、所定の単語に対して、一般的に抽象的であると判断される単語のデータベースとすることができる。
一方、図12Bに示した状態は、図12Aに示した状態と同じく、単語辞書データベース22は辞書作成者により作成されるが、作成された単語辞書データベース22は、コピーされ(複製が作られ)、単語辞書データベース22−1と単語辞書データベース22−2が生成される点が異なる。
この単語辞書データベース22−1は、ユーザ1用のデータベースとされ、単語辞書データベース22−2は、ユーザ2用のデータベースとされる。単語辞書データベース22−1は、ユーザ1の処理結果に依存して更新され、単語辞書データベース22−2は、ユーザ2の処理結果に依存して更新される。
このように、個々のユーザ用に単語辞書データベース22を用意した場合、アクセスしてきたユーザ(クライアント12)を識別する必要があるため、認証処理が行われる。
このような単語辞書データベース22は、個々のユーザにより更新されることで、個々のユーザに適した辞書となる。このような単語辞書データベース22は、個々のユーザの嗜好や、置かれている状況などに応じた単語のデータベースとすることができる。
このように、単語辞書データベース22を共用するか否かにより、認証処理を行うか否かが設定されるようにしても良い。勿論、単語辞書データベース22を利用する際には、単語辞書データベース22が共用のものとされているか否かに係わらず、認証処理を行うという設定にしておくことも可能である。ここでは、認証処理が行われた場合を例にあげた説明をした。
図10、図11に示したフローチャートの処理の説明に戻る。入力支援サーバ11のクライアント認証処理が終了され、その結果が、クライアント12側に送信されると、ステップS3(図10)において、クライアント12の取得部81は、認証結果を取得する。
ステップS4において、クライアント12の判断部83は、認証が成功したかを判断する。ステップS4において認証が成功しなかったと判断された場合、すなわち入力支援サーバ11から認証失敗が通知された場合、処理はステップS1に戻り、それ以降の処理が繰り返される。
ステップS4において認証が成功したと判断された場合、すなわち入力支援サーバ11から認証成功が通知された場合、処理はステップS5に進む。ステップS5において、クライアント12の取得部81は、ユーザが入力したコンテンツを取得する。ステップS6において、クライアント12の通信部82は、送受信器64およびインターネット14を介して、入力支援サーバ11にコンテンツを送信する。
このコンテンツを取得し、送信するタイミングについては、図5乃至図9を参照して説明した通りであり、例えば、ユーザが文章を入力しているときであり、単語が入力されたときに、その単語(単語を構成する所定数の文字数)が取得され、送信される。ここでは、コンテンツが取得され、送信されるとして説明を続けるが、コンテンツは文章であり、その文章の途中(書きかけの状態のとき)の単語を構成する数個の文字が、取得され、送信されることを意味する。
図11のステップS32において、入力支援サーバ11の取得部41は、インターネット14および送受信器23を介して、クライアント12から送信されてきたコンテンツを取得する。すなわち、図10のステップS6の処理により送信されたコンテンツが取得される。
図11のステップS33において、入力支援サーバ11は、単語辞書データベース検索処理を実行する。図13を参照して、単語辞書データベース検索処理について説明する。
[単語辞書データベース検索処理1について]
図13は、単語辞書データベース検索処理1を説明するフローチャートである。単語辞書データベース検索処理は、取得された単語の数などにより異なる処理が行わる。ここでは、まず単語辞書データベース検索処理1について説明を加える。
図13の例では、コンテンツとして文章に含まれる単語と一致する単語を単語辞書データベース22から検索する場合について説明する。
ステップS51において、検索部43は、取得された単語をラベル単語に設定する。ステップS52において、ラベル単語を含むデータが単語辞書データベース22から読み出される。ここで、ラベル単語とデータについて説明するために、単語辞書データベース22のデータ構造について説明する。
単語辞書データベース22は、複数のデータを有する。1つのデータをdataiと記述する。dataiは、ラベル単語と複数の単語が関連付けられたデータとされている。
datai=(ラベル単語i,(単語1,単語2,・・・,単語m)
さらに、ラベル単語に関連付けられている複数の単語のそれぞれには、重みも関連付けられる。ここで、単語をw、重みをrで表すと、dataiは、以下のように表される。また重みの初期値は1であるため、重みとして1を代入すると、以下のように表される。
datai=(wi0,(wi1,ri1),(wi2,ri2),・・・,(wim,rim))
=(ラベル単語i,(単語1,1),(単語2,1),・・・, (単語m,1))
このようなdataiが、複数、単語辞書データベース22に記憶されている。例えば、図14に示すようにデータが記憶されている。図14に示した例では、n個のdata1乃至datanが記憶されている。図14において、例えば、data1は以下のようなデータ構成とされている。
data1=(w10,(w11,r11),(w12,r12),・・・,(w1m,r1m))
w10は、data1のラベル単語である。添え字である“10”のうち、前の“1”は、data1のデータであることを示し、後ろの“0”は、ラベル単語であることを示す。
w11,w12,・・・,w1mは、それぞれdata1のラベル単語w10に関連付けられた単語である。添え字のうち前の数値は、data1のデータであることを示し、後ろの数値は、抽象度順に並べたときの順位を表す。
抽象度とは、後述する演算により算出される値であり、ラベル単語を一意に特定できず、かつ意味合いがラベル単語とあまりずれることがなく、仮にラベル単語と置き換えたとしても、文意がおかしくならないような単語である度合いである。
r11は、単語w11の重みであり、r12は、単語w12の重みであり、・・・、r1mは、単語w1mの重みである。添え字は、それぞれ関連付けられている単語と同一とされる。
他のdata2乃至datanも、同様な構成とされている。図15に、図14に示した単語辞書データベース22におけるデータ、ラベル単語、単語、重みを、それぞれ図示した。データは、data1,data2,・・・,datai,・・・,datamである。
ラベル単語は、w10,w20,・・・,wi0,・・・,wn0である。単語は、
w11,w21,・・・,wi1,・・・,wn1,
w12,w22,・・・,wi2,・・・,wn2,
w1m1,w2m2,・・・,wimi,・・・,wnmnである。
重みは、
r11,r21,・・・,ri1,・・・,rn1,
r12,r22,・・・,ri2,・・・,rn2,
r1m1,r2m2,・・・,rimi,・・・,rnmnである。
単語辞書データベース22は、このように、ラベル単語、単語、重みが関連付けられたデータが、複数記憶されているデータベースである。単語辞書データベース検索処理(図13)は、このような単語辞書データベース22内が検索されることで行われる。
図13のフローチャートの説明に戻る。ステップS51において、取得された単語がラベル単語に設定され、ステップS52において、設定されたラベル単語を含むデータが、単語辞書データベース22内が検索されることで読み出される。
取得された単語が単語Aである場合、この単語Aがラベル単語に設定される。この単語Aをラベル単語としているデータが、単語辞書データベース22から読み出される。仮に、ラベル単語w10が、単語Aであり、図14に示した単語辞書データベース22が検索される場合、data1が読み出される。
ステップS52において、ラベル単語を含むデータが、単語辞書データベース22内に存在せず、データが読み出せないときもある。このようなときには、これ以降の処理は行われず、次に単語が取得されるまで待機状態とされる。
単語辞書データベース22のラベル単語は、プライバシに係わる単語としておく。ステップS51における処理で取得され、ラベル単語に設定された単語が、プライバシに係わる単語であれば、その単語はラベル単語として、単語辞書データベース22に存在する。よってこのような場合、ステップS52において、単語辞書データベース22からデータが読み出される。
一方で、ステップS51における処理で取得され、ラベル単語に設定された単語が、プライバシに係わる単語でなければ、その単語はラベル単語として、単語辞書データベース22に存在しない。よってこのような場合、ステップS52において、単語辞書データベース22からデータは読み出されない。
このように、単語辞書データベース22に記憶するラベル単語をプライバシに係わる単語に限定することで、プライバシに係わる単語がラベル単語にされたときのみ、処理を行うことが可能となる。すなわち、単語辞書データベース22に記憶するラベル単語により、フィルタの機能を実現することが可能となる。
なお、図13のフローチャートに処理としては入れていないが、ステップS51とステップS52の間に、“設定されたラベル単語は、単語辞書データベース22に登録済みか”という判断を行うステップを入れても良い。また、このような判断を行うステップを設けた場合、“設定されたラベル単語は、単語辞書データベース22に登録済みであると判断されたとき、ステップS52に処理が進められ、設定されたラベル単語は、単語辞書データベース22に登録済みではないと判断されたとき、その時点で処理が終了されるように構成することが可能である。
ラベル単語が単語辞書データベース22内に存在し、データが読み出されると、ステップS53において、提示される情報が生成される。この提示される情報(以下、提示情報と記述する)は、例えば、図4を参照して説明した吹き出し101(図4A)内に表示される情報である。図4Aを参照して説明したように、“そのまま”という項目と、”新規入力“という項目の間に、置き換え単語の候補が表示される。この置き換え単語の候補は、データ内の単語である。
すなわちこの例の場合、data1というデータ内の単語である。data1は、
data1=(w10,(w11,r11),(w12,r12),・・・,(w1m,r1m))
であるため、単語は、w11,w12,・・・,w1mである。このw11,w12,・・・,w1mを単語列と表記する。この単語列を、“そのまま”という項目と、“新規入力”という項目で挟んだ並びとされた情報が、提示情報とされる。すなわちこのような場合、提示情報としては、
そのまま,w11,w12,・・・,w1m,新規入力
といった並びの情報となる。
ステップS54において、入力支援サーバ11の通信部44は、送受信器23およびインターネット14を介して、クライアント12に提示情報を送信する。
[単語辞書データベース検索処理2について]
図13を参照して説明した単語辞書データベース検索処理1は、1つの単語が送信されてきたときに対応する処理として説明した。単語毎に送信が行われるのではなく、例えば、1文章が入力された時点で、形態素解析などがその文章に対して施され、名詞が抽出され、その名詞が送信されてくるようにしても良い。このような場合、複数の単語が送信されてくる可能性がある。
また、図8を参照して説明したように、予測変換機能により複数の単語がユーザに提示され、その提示された複数の単語が、送信されてくる可能性もある。
図16に示したフローチャートに基づいて行われる単語辞書データベース検索処理2は、複数の単語が送信されてきたときの処理である。まず、ステップS71において、複数の単語が取得され、その取得された複数の単語のうちの1つの単語が、ラベル単語に設定される。このラベル単語に対して、ステップS72における処理が実行される。ステップS72において、ラベル単語を含むデータが単語辞書データベース22から読み出される。
ステップS73において、取得された全ての単語をラベル単語に設定したか否かが判断される。ステップS73において、取得された全ての単語をラベル単語に設定していないと判断された場合、ステップS71に処理が戻され、他の単語がラベル単語に設定され、その新たにラベル単語に設定されたラベル単語に対して、ステップS72以降の処理が繰り返される。
一方、ステップS73において、取得された全ての単語をラベル単語に設定したと判断された場合、ステップS74に処理が進められる。ステップS74において、提示情報が生成される。この場合、複数の単語毎に、提示情報が生成される。そして、ステップS75において、提示情報が、クライアント12に送信される。
[単語辞書データベース検索処理3について]
次に、図17を参照し、単語辞書データベース検索処理3について説明する。単語辞書データベース検索処理3も単語辞書データベース検索処理2と同じく、複数の単語が取得されたときの処理である。図17に示した単語辞書データベース検索処理3と、図16に示した単語辞書データベース検索処理2は、ステップS94における処理が追加された点が異なり、他の処理は同様である。
すなわち、ステップS91乃至S92の処理は、ステップS71乃至S73の処理と同じく、取得された複数の単語毎に、その単語を含むデータが読み出される。ステップS94において、抽出されたデータの単語列と、ユーザの入力単語と対応する単語列に対して、抽象度算出処理が行われる。この抽象度算出処理は、単語辞書データベース22の更新の際などにも行われるため、更新の処理の説明のところで説明する。
抽象度が算出されることで、対象とされた単語列の単語の中で、抽象度における順位が決定される。抽象度の高い順に並べ替えられることで、提示情報が生成される(ステップS95)。そして、ステップS96において、生成された提示情報は、クライアント12に送信される。
[単語辞書データベース検索処理4について]
次に、図18を参照し、単語辞書データベース検索処理4について説明する。単語辞書データベース検索処理4も単語辞書データベース検索処理2や単語辞書データベース検索処理3と同じく、複数の単語が取得されたときの処理であるが、取得される単語が単語辞書データベース検索処理2や単語辞書データベース検索処理3とは異なる。
単語辞書データベース検索処理4では、処理対象とされた単語と、その単語より前の時点で入力された単語が複数取得される。まずステップS111において、処理対象の単語よりも前に位置する複数の単語が取得される。取得される複数の単語の数は、いくつでも良い。また処理対象の単語よりも前に位置している単語が複数取得されるが、取得される複数の単語には、少なくとも、処理対象の単語の直前の単語が含まれるのが好ましい。
ステップS112において、取得された複数の単語のうちの1つの単語が、ラベル単語に設定される。このラベル単語に対して、ステップS113における処理が実行される。ステップS113において、ラベル単語を含むデータが単語辞書データベース22から読み出される。
ステップS114において、取得された全ての単語をラベル単語に設定したか否かが判断される。ステップS114において、取得された全ての単語をラベル単語に設定していないと判断された場合、ステップS112に処理が戻され、他の単語がラベル単語に設定され、その新たにラベル単語に設定されたラベル単語に対して、ステップS113以降の処理が繰り返される。
一方、ステップS114において、取得された全ての単語をラベル単語に設定したと判断された場合、ステップS115に処理が進められる。ステップS115において、抽出されたデータの単語列と、ユーザの入力単語と対応する単語列に対して、抽象度算出処理が行われる。この抽象度算出処理は、後述する。
抽象度が算出されることで、対象とされた単語列の単語の中で、抽象度における順位が決定される。抽象度の高い順に並べ替えられることで、提示情報が生成される(ステップS116)。そして、ステップS117において、生成された提示情報は、クライアント12に送信される。
このように、単語辞書データベース22内の検索に係わる処理は、取得される単語の数などに依存して、処理が異なるようにすることも可能である。これらの処理が、選択的に行われるようにしても良いし、いずれか1つの処理が常に実行されるようにしても良いし、組み合わされて実行されるようにしても良い。
図10のフローチャートの説明に戻る。図10のステップS7において、クライアント12の取得部81は、入力支援サーバ11から送信されてきた提示情報を取得する。すなわち図13のステップS54の処理により送信された提示情報が取得される。
ステップS8において、クライアント12の出力部84は、出力装置63に提示情報を出力する。すなわち、ユーザに対して提示情報が提示される。例えば、図5Bに示したように、提示情報は、吹き出し101内に表示されることで、ユーザに対して提示される。
クライアント12側で行われるステップS5乃至S8の処理と、入力支援サーバ11側で行われるステップS32、ステップS32(図13に示したフローチャートの処理)について、図5を再度参照して説明する。
図5Aに示した文章Aは、クライアント12側において、“最近出たゲームを買おうと思って、昨日、ソニー”とまで入力された状態である。このような文章Aが入力され、“ソニー”との単語が、ユーザにより選択されたとき、その選択を受けて、“ソニー”との単語が、入力支援サーバ11に送信される。すなわちこの場合、ステップS5(図10)においては、“ソニー”との単語が選択されたことをトリガーとして、“ソニー”という単語がコンテンツとして取得され、ステップS6における処理で、入力支援サーバ11に対して送信される。
このような送信が行われた結果、ステップS32において、“ソニー”との単語が入力支援サーバ11で取得される。そして、この“ソニー”という単語がラベル単語に設定され(図13のステップS51の処理)、“ソニー”という単語をラベル単語として有するデータが、単語辞書データベース22から読み出される(図13のステップS52の処理)。
図5を参照して説明したような場合、単語辞書データベース22から、
“メーカー”、“某メーカー”、“電器メーカー”、“会社”、“勤め先”、“勤務先”、“某企業”、“投資先”、“日本の会社”
といった単語列が読み出される。
このような単語列が読み出されると、この単語列を含む提示情報が、図13のステップS53の処理で生成される。すなわちこの場合、
“そのまま”、“メーカー”、“某メーカー”、“電器メーカー”、“会社”、“勤め先”、“勤務先”、“某企業”、“投資先”、“日本の会社”、“新規入力”
といった提示情報が生成される。
生成された提示情報は、図13のステップS54において、入力支援サーバ11からクライアント12に対して送信される。その結果、クライアント12においては、図10のステップS7の処理として、入力支援サーバ11からの提示情報を取得し、ステップS8の処理として、ディスプレイなどの出力装置に提示情報が出力される。
出力された提示情報は、図5Bに示したような画面でユーザに提示される。すなわち、吹き出し101が“ソニー”という単語から吹き出され、その吹き出し101内に、提示情報が表示されている。このように、ユーザによる直接選択をトリガーとして、置き換え対象の単語(コンテンツ)が送信され、その結果が、受信されることで、ユーザに置き換え対象となる単語が提示される。
このような処理は、図6乃至図9を参照して説明した吹き出しの表示のタイミングに係わる処理で、同様に行われるため、ここではその詳細な説明は省略する。すなわち、図6乃至図9を参照した説明において、トリガーとされたときに、例えば、変換が行われたというようなトリガーが発生したときに、クライアント12から入力支援サーバ11に単語が送信され、その返答としての提示情報が、入力支援サーバ11から来るという流れは同じである。
図10、図11に示したフローチャートの説明に戻り、図10のステップS8において、クライアント12により、提示情報がユーザに提示される。例えば、図5Bに示したような吹き出し101が表示されることで、提示情報の提示が行われる。
ユーザは、吹き出し101内に表示されている“そのまま”という項目、単語列内の1つの単語、または“新規入力”という項目のいずれか1つを選択する。ステップS9においては、このような選択結果を反映するための処理が実行される。
すなわち、図4を参照して説明したように、“そのまま”という項目が選択された場合、図4Bに示したように、置き換え対象とされていた単語(図4の例では“ソニー”)は、そのまま残された文章とされる。なお仮に選択が行われなかった場合も、“そのまま”という項目が選択されたとして処理は進められる。
また、単語列内の1つの単語が選択された場合、図4Cに示したように、置き換え対象とされていた単語が、選択された単語に置き換えられた文章に変更される。また、“新規入力”という項目が選択された場合、図4Dに示すように、ユーザが所望の単語を入力できる欄が設けられた吹き出し131が表示され、その欄に入力された単語に、置き換え対象とされていた単語が置き換えられた文章に変更される。
このような処理が、ステップS9において行われると、その処理結果(選択結果)が、ステップS10において、クライアント12から入力支援サーバ11に対して送信される。選択情報には、“そのまま”、“単語列内の単語”、“新規入力”のどれが選択されたかの情報が含まれる。また、“単語列内の単語”が選択されたときには、その選択された単語(単語を一意に識別できる識別子などでも良い)も含まれる。また、“新規入力”が選択されたときには、ユーザにより入力された単語も含まれる。
このような処理がクライアント12において、入力支援に関わる処理として実行される。
一方で、入力支援サーバ11においては、ステップS34(図11)において、クライアント12側で、提示情報が提示された結果、どのような選択がなされたかの選択情報が取得される。選択情報が取得されると、更新部47(図2)により更新処理が、ステップS35において開始される。
[更新処理について]
図19を参照し、ステップS35において実行される更新処理について説明する。更新処理は、単語辞書データベース22内のデータを、選択情報を用いて更新する処理である。
なおここでは、クライアント12側からの選択情報が受信されたときに行われるとしたが、選択情報が受信される毎に更新処理が実行されるのではなく、所定の回数、選択情報が受信されたときに、それまでの選択情報をまとめて反映する更新処理が行われるようにしても良い。
また、更新対象とされる単語辞書データベース22は、単語辞書データベース22が複数のユーザで共用されるデータベースとされていたときには、その単語辞書データベース22とされる。単語辞書データベース22が、ユーザ毎のデータベースとされていたときには、選択情報を送ってきたクライアント12のユーザに割り当てられている単語辞書データベース22が、更新対象とされる。
ステップS151において、選択情報が示す選択内容は、“そのまま”という項目が選択されたことを示しているか否かが判断される。ステップS151において、選択内容は、“そのまま”という項目が選択されたことを示していると判断された場合、更新処理は終了される。
一方、ステップS151において、選択内容は、“そのまま”という項目が選択されたことを示していないと判断された場合、ステップS152に処理が進められる。ステップS152において、選択内容は、“新規入力”という項目が選択されたことを示しているか否かが判断される。ステップS152において、選択内容は、“新規入力”という項目が選択されたことを示していると判断された場合、ステップS153に処理が進められる。
ステップS153において、新規入力としてユーザにより入力された単語は、ユーザ側に提示情報として提供した単語列内に含まれていなかったか否かが判断される。例えば、吹き出し101(図4など)に表示されていた単語であったが、ユーザは見落としてしまい、“新規入力”という項目を選択し、単語を入力した場合が想定される。
また、吹き出し101に表示しきれなかったために、ユーザに提示されなかった単語列の単語があり、結果としてユーザに提示されなかった単語がある可能性もある。その結果、ユーザは、“新規入力”という項目を選択し、単語を入力した場合が想定される。このような状況を考慮し、ステップS153において、新規入力としてユーザにより入力された単語は、ユーザ側に提示情報として提供した単語列内に含まれていなかったか否かが判断される。
ステップS153において、新規入力としてユーザにより入力された単語は、ユーザ側に提示情報として提供した単語列内に含まれていなかったと判断された場合、ステップS154に処理が進められる。この場合、ユーザが入力した単語は、単語列としてユーザ側には提示されていなかった単語である。よって、単語列の1つとして、ユーザが入力した単語が、ステップS154において単語辞書データベース22に追加登録される。
提示情報を提示する元となったラベル単語に対応付けられ、ユーザにより新規に入力された単語が、単語列として登録される。データ(data)は、図15などを参照して説明したように、1つのラベル単語に複数の単語が関連付けられたデータとされている。そして、関連付けられている単語は、抽象度順に並べられて管理されている。
新たに単語列に追加される単語の抽象度は、この時点ではまだ算出されていない状態なので、単語列内のどの位置に入れるべきか決定できない状態である。よってここでは、単語列のランダムな位置に、新たな単語が追加されるとして説明を続ける。ランダムな位置ではなく、中央、最後といった所定の位置に追加されるようにすることも可能である。
また、新たな単語がどのような位置に追加されるとしても、後述するように、抽象度が再計算され、単語列の並びを更新する処理が行われるため、適切な並びに変更することが可能である。よって、ステップS154における追加位置は、どのような位置であっても良いため、ここではランダムな位置に追加されるとして説明を続ける。
1つのラベル単語に関連付けられている単語列の単語のそれぞれには、重みが関連付けられている。新たに追加される単語の重みは、“1”として追加登録される。このように、ユーザにより新たに入力された単語は、単語列内の1つの単語として追加される。
一方、ステップS153において、新規入力としてユーザにより入力された単語は、ユーザ側に提示情報として提供した単語列内に含まれていたと判断された場合、ステップS155に処理が進められる。この場合、上記したように、ユーザに提示はされたがユーザが見落として新規入力を行ったなどの状況が考えられる。
このような場合には、ステップS155において、入力された単語に該当する単語列内の単語の重みを1だけ加算することで、単語辞書データベース22の更新が行われる。
一方、ステップS152において、選択内容は、“新規入力”という項目が選択されたことを示していないと判断された場合も、ステップS155に処理が進められる。この場合、選択内容は、“そのまま”ではなく、“新規入力”でもないため、提示情報に含まれていた単語列内の単語が選択されたことになる。
このような場合、その選択された単語の重みが1だけ加算された値に更新されることで、単語辞書データベース22の更新が行われる。
ステップS154において、新たな単語が単語列に追加された場合、またはステップS155において、新たな単語が単語列に追加された場合、ステップS156に処理が進められる。ステップS156において、抽象度算出処理が実行される。
すなわち、単語辞書データベース22内のデータに変更があった場合、抽象度算出処理が実行される。このような単語辞書データベース22の更新時に行われる抽象度算出処理を、適宜、更新時抽象度算出処理と記述する。
更新時抽象度算出処理は、新たな単語が単語列に追加された場合や、新たな単語が単語列に追加された場合に、必ず行われる処理としても良いが、このような状況が、所定の回数発生した時点で行われるようにしても良い。例えば、“新規入力”が選択された回数が、予め設定されている閾値を超えた時点で行われるように構成することも可能である。
抽象度算出処理は、更新時のみではなく、上記した単語辞書データベース検索処理3や単語辞書データベース検索処理4などにおいて、複数の単語列の単語を抽象度順に並べるときなどにも行われる。このような単語辞書データベース検索処理に行われる抽象度算出処理を、適宜、検索時抽象度算出処理と記述する。
また、抽象度算出処理は、単語辞書データベース22が作成された時点、換言すれば、上記したような入力支援に係わる処理が開始されるより前の時点でも行われる。このような,入力支援開始前に行われる抽象度算出処理を、適宜、事前抽象度算出処理と記述する。
なお本実施の形態によれば、事前抽象度算出処理が行われていなくても、ユーザの入力支援を行う毎に、更新時抽象度算出処理が実行され、単語辞書データベース22が更新されるため、時間経過とともに、単語辞書データベース22を、適切なデータベースとすることが可能である。
[抽象度算出処理について]
事前抽象度算出処理、更新時抽象度算出処理、および検索時抽象度算出処理は、処理対象とされるデータが異なる以外は同様に行われる。すなわち、事前抽象度算出処理は、単語辞書データベース22内の全てのデータが対象とされるのに対し、更新時抽象度算出処理と検索時抽象度算出処理は、処理対象とされたデータのみが対象とされる。このように処理対象とされる範囲が異なるだけで、基本的な処理は同じであるため、事前抽象度算出処理、更新時抽象度算出処理、および検索時抽象度算出処理を、抽象度算出処理として、以下にまとめて説明を加える。
図20は、抽象度算出処理について説明するためのフローチャートである。抽象度は、入力支援サーバ11の算出部48により算出される。ステップS201において、処理対象とする単語が、単語列から抽出される。
data1=(w10,(w11,r11),(w12,r12),・・・,(w1m,r1m))
例えば、data1は、このようなデータであるが、この中の単語列(w11,w12,・・・,w1m)から、処理対象とされる単語、例えば、単語w11が抽出される。
ステップS202において、検索対対象とする単語列が設定される。例えば、上記したdata1の単語列が、検索対象に設定される。ステップS203において、その検索対象として設定された単語列内に、処理対象とする単語が存在しているか否かが判断される。
例えば、処理対象とされている単語が、単語w11であり、検索対象とされた単語列が、data1の単語列(w11,w12,・・・,w1m)であった場合、ステップS203においては、検索対象として設定された単語列内に、処理対象とする単語が存在していると判断される。このように存在していると判断された場合、ステップS204に処理が進められ、総数が更新される。
総数とは、単語辞書データベース22に登録されている単語列内に、処理対象とされている単語が含まれる単語列は何個存在しているかを表す数値である。
ステップS204において、総数が更新された場合、または、ステップS203において、設定した単語列に、処理対象とした単語は含まれていなかったと判断された場合、ステップS205に処理が進められる。ステップS205において、全ての単語列が検索対象とされたか否かが判断される。
ステップS205において、全ての単語列を検索対象としていないと判断された場合、ステップS202に処理が戻され、それ以降の処理が繰り返される。例えば、data2の単語列やdata3の単語列などが順次、検索対象とされ、処理対象とされている単語が含まれているか否かが判断される。
このような処理が繰り返されることで、上記したように、単語辞書データベース22に登録されている単語列内の単語内に、処理対象とされている単語が含まれていた個数、すなわち総数が求められる。このような処理は、所定の単語を含むdataと含まないdataを分類する処理であり、ラベル単語に関する二値分類の処理とみなせる。
このようにして、1つの処理対象とされた単語の総数が算出されると、ステップS205において、全ての単語列が検索対象とされたと判断され、処理は、ステップS206に進められる。ステップS206において、所定の演算式に求められた総数などが代入され、抽象度が算出される。
式(1)において、Iijは、抽象度を表す。図21に示すように、式(1)におけるnは、全データ数を表す。nijは、単語列内に単語wijを含むデータ数であり、総数に該当する。rjjは、単語wijの重みである。
このような式(1)により抽象度が算出される。単語列内の全ての単語に関して、このような処理が施されることで、単語列内の全ての単語の抽象度が算出される。その後、抽象度の降順に並べられ、その並びが、data内の単語列の並びとされる。
式(1)に基づき抽象度が算出される場合、算出された値が1に近いほど、抽象度が高いことを意味する。よって、1に近い単語ほど、並び順の上位になるように並び替えが行われる。重みは、ユーザの使用頻度を反映している。
よって、重みの大きい単語ほど、ユーザに頻繁に使用されていることを表しており、そのようなユーザに頻繁に使用される単語ほど、式(1)において算出される抽象度の値は1に近づくように設定されている。
なお、ここでは式(1)により抽象度が算出されるとして説明を続けるが、次式(2)を変数とし、図22に示すような単調増加関数であれば、どのような関数でも良い。
具体的な単語辞書データベース22の一例を挙げ、抽象度算出処理について説明する。図23は、具体的な単語辞書データベース22の一例である。図22に示した単語辞書データベース22は、data1、data2、data3の3個のデータを含む。よってこの場合、全データ数は、“3”となり、n=3となる。
data1のラベル単語w10は、“ソニー”である。data1の単語列のうち、単語w11は、“総合電機メーカー”であり、この単語w11に関連付けられている重みr11は、“2”である。同じく、data1の単語列のうち、単語w12は“Sony”(登録商標)であり、この単語w12に関連付けられている重みr12は、“1”である。同じく、data1の単語列のうち、単語w13は、“メーカー”であり、この単語w13に関連付けられている重みr13は、“1”である。
同じくdata2のラベル単語w20は、“アップル”(登録商標)である。data2の単語列のうち、単語w21は、“りんご”であり、この単語w21に関連付けられている重みr21は、“1”である。同じく、data2の単語列のうち、単語w22は“会社”あり、この単語w22に関連付けられている重みr22は、“1”である。同じく、data2の単語列のうち、単語w23は、“メーカー”であり、この単語w23に関連付けられている重みr23は、“1”である。
同じくdata3のラベル単語w30は、“パナソニック”(登録商標)である。data3の単語列のうち、単語w31は、“総合電機メーカー”であり、この単語w31に関連付けられている重みr31は、“1”である。同じく、data3の単語列のうち、単語w32は“メーカー”であり、この単語w32に関連付けられている重みr32は、“1”である。同じく、data3の単語列のうち、単語w33は、“日本の会社”であり、この単語w33に関連付けられている重みr33は、“1”である。
このような単語辞書データベース22に対して、抽象度算出処理が実行されるとする。ステップS201において、処理対象とする単語が、単語列から抽出される。この抽出される単語を、ここでは単語w11とする。単語w11は、“総合電機メーカー”である。
図24において、この抽出される単語w11をまるで囲み、単語w11に対応する“総合電機メーカー”をまるで囲んで図示した。ステップS202において、検索対象とする単語列が設定されるが、ここではまず、data1の単語列が設定されるとする。data1には、“総合電機メーカー”との単語w11が含まれるため、ステップS203においては、YESと判断され、ステップS204において総数が更新される。この場合、総数は1となる。
ステップS205において、まだdata2とdata3の単語列が、検索対象とされていないため、NOと判断され、ステップS202に処理が戻される。ステップS202において、data2の単語列が検索対象の単語列に設定される。data2の単語列内には、“総合電機メーカー”との単語w11は含まれていないため、ステップS203においては、NOと判断され、ステップS205に処理が進められる。この場合、総数は更新されないため、1のままである。
ステップS205において、まだdata3の単語列が、検索対象とされていないため、NOと判断され、ステップS202に処理が戻される。ステップS202において、data3の単語列が検索対象の単語列に設定される。
data3の単語列内には、“総合電機メーカー”との単語w11と同じ“総合電機メーカー”との単語が、単語w31として含まれているため、ステップS203においては、YESと判断される。図24において、単語w31と、この単語w31に対応する“総合電機メーカー”との単語を、共に四角で囲んだ。ステップS204において総数が更新される。この場合、総数は2に更新される。
ステップS205において、全ての単語列が検索対象とされたと判断されるので、処理はステップS206に進められ、抽象度が、式(1)に基づいて算出される。この場合、式(1)における抽象度Iijは、抽象度I11である。nijは、n11となり、総数が2なので、n11=2となる。
単語w11の重みr11は、“2”であるため、式(1)におけるrijは、r11となり、r11=2となる。式(1)におけるnは、データ数であるが、図24に示した例では、data1乃至data3の3個のデータが存在するため、n=3となる。これらの値を式(1)に代入すると、以下のようになる。
I11=(2+2−1)/(3+2―1)=3/4
単語w11の抽象度I11は、3/4となる。
他の例を図25に示す。図25に示した例では、単語w13の“メーカー”という単語が処理対象の単語とされている。この処理対象とされている単語w13と、この単語w13に対応する“メーカー”という単語をまるで囲んで図示してある。
“メーカー”との単語は、data2の単語w23と、data3の単語w32にそれぞれ登録されている。よって、この場合、単語辞書データベース22に“メーカー”との単語は3個登録されていることになるため、n13=3となる。
単語w32の抽象度I32は、以下のような値が代入され、算出される。
I32=(3+1−1)/(3+1−1)=1
このようにして、単語辞書データベース22内の全ての単語列内の単語毎に抽象度を算出した場合の算出結果を以下に列記する。
I11=3/4 I12=1/3 I13=1
I23=1/3 I22=1/3 I23=1
I31=2/3 I32=1 I33=1/3
このような抽象度に基づき、各データ内の単語列内の単語の並び替えが実行される。まず、data1の単語列内の単語w11,w12,w13について考える。単語w11の抽象度I11は“3/4”、単語w12の抽象度I11は“1/3”、単語w13の抽象度I13は“1”である。抽象度を降順に並べると、1,3/4,1/3となる。この抽象度順に、単語を並べると、
単語w13、単語w11、単語w12
の順になる。これを単語そのものに置き換えると、
“メーカー”、“総合電機メーカー”、“Sony”
の順になる。
このような並び替えをdata2,data3に対して行った例を、図26に示す。data1は、上記したように、抽象度に基づき並び替えが行われた結果、“メーカー”、“総合電機メーカー”、“Sony”の順に更新される。
同様に、data2は、“メーカー”、“りんご”、“会社“の順に更新され、data3は、“メーカー”、“総合電機メーカー”、“日本の会社“の順に更新される。抽象度が同じ値の場合、どちらが上位にくるかは問題とならず、ランダムに並べて良い。このように、抽象度順に並び替えられることで、単語辞書データベース22内のデータが更新される。
なおここでは、式(1)に基づき抽象度が算出されるとしたため、抽象度が高いのは1に近い値を有する単語であるとし、降順に並べられるとして説明をした。しかしながら、他の式に基づき抽象度が算出されるような場合、この限りではない。
例えば、抽象度の昇順に並べられることでより抽象度が高い単語が上位にくるような演算式が用いられた場合、抽象度の昇順に並べられることで、抽象度が高い単語順に並べられる。このような他の演算式を用いた場合であっても、本技術の適用範囲内である。
[単語辞書データベース22作成について]
このように単語辞書データベース22は更新されるが、大本となる単語辞書データベース22は、以下に説明するように作成することができる。
単語辞書データベース22は、辞書作成者が作成する。図27は、辞書作成者が、単語辞書データベース22を作成する際に提供される画面の一例である。図27に示した画面301には、3つの領域が設けられている。画面301の上側部分に設けられた領域331は、“抽出単語を包含する”単語が位置する領域とされている。
画面301の中央部分の領域332は、未分類の単語が位置する領域とされている。画面301の下側部分の領域333は、“抽出単語に包含される“単語が位置する領域とされている。辞書作成者は、領域332に位置している未分類の単語から、単語辞書データベース22に追加する単語を選択する。例えば、“ソニー”という単語が選択されたとする。選択された単語は、他の単語と区別がつくような表示とされる。
この場合、“ソニー”という単語は抽出単語となる。よって、この“ソニー”という単語を包含する単語が、領域331に移動され、“ソニー”という単語に包含される単語が、領域333に移動される。
例えば、領域332の未分類領域に表示されている“総合電機メーカー”は、“ソニー”という単語を包含すると、辞書作成者が考えた場合、“総合電機メーカー”との単語を、領域332から領域331に移動する。図27中、矢印は、移動を示す。
領域331には、既に“会社”という単語も表示されている。すなわちこの場合、“ソニー”という単語は、“会社”という単語に包含されると考えられた結果、辞書作成者により領域331に移動された単語である。
このように、“ソニー”という単語が抽出単語として処理されているとき、抽出単語を包含する単語が移動されてくる領域331に“総合電機メーカー”と“会社”という単語が位置していた場合、以下のようなデータが作成される。
data=(ソニー,(総合電機メーカー,1),(会社,1))
すなわち、抽出単語とされた“ソニー”という単語をラベル単語とし、“総合電機メーカー”と“会社”という単語を単語列とするdataが作成される。
また、例えば、領域332の未分類領域に表示されている“カメラ”は、“ソニー”という単語に包含されると、辞書作成者が考えた場合、“カメラ”との単語を、領域332から領域333に移動する。
このように、“ソニー”という単語が抽出単語として処理されているとき、抽出単語に包含される単語が移動されてくる領域333に“カメラ”という単語が位置していた場合、以下のようなデータが作成される。
data=(カメラ,(ソニー,1))
すなわち、“カメラ”という単語をラベル単語とし、抽出単語とされた“ソニー”という単語を単語列とするdataが作成される。
このように、辞書作成者は、未分類の単語が表示される領域332内の単語を領域331や領域333に移動するだけで、新たなデータを作成し、単語辞書データベース22に追加することができる。換言すれば、辞書作成者は、抽出単語を包含する単語はどれかという質問と、抽出単語に包含される単語はどれかという質問に答えるだけで、単語辞書データベース22内のデータを作成することができる。
このような作業が繰り返されることで、単語辞書データベース22が作成される。
このような単語辞書データベース22に作成にかかる辞書作成者の手間を軽減させるために実行される、単語辞書データベース22を作成する際の処理について、図28のフローチャートを参照して説明する。
辞書作成者は、ステップS301において、処理対象とする単語を入力する。辞書作成者により入力された単語は、作成部49(図2)に供給される。作成部49は、ステップS321において辞書作成者により入力された入力単語を取得し、ステップS322において、その入力単語をラベル単語に設定する。すなわち辞書作成者は、ラベル単語を入力し、作成部49は、ラベル単語に関連する単語の検索を開始する。
作成部49は、ステップS323において、設定したラベル単語を単語辞書データベース22に供給する。単語辞書データベース22は、ステップS341において、ラベル単語を取得し、ステップS342において、そのラベル単語に対応する単語列があるか否かを検索する。なおここでは、単語辞書データベース22が、入力単語の供給を受け、検索を行うというように記載するが、作成部49が、単語辞書データベース22内を検索するように構成することも可能である。
ラベル単語に対応する単語列がある場合、換言すれば、既に単語辞書データベース22内に、処理対象とされているラベル単語に関するデータが登録されていると判断された場合、そのデータ内から単語列が読み出される。読み出されるとき、全ての単語列が読み出されても良いが、所定数の単語が読み出されるようにしても良い。
この読み出しはランダムに行われるとする。例えば、単語列の上位の所定数の単語を読み出したり、下位の所定数の単語を読み出したりすることも考えられるが、ここでは、ランダムに読み出しが行われるとして説明を続ける。ステップS342においては、ラベル単語に対応する単語列内から、所定数の単語がランダムに選択される。
また、ステップS342においては、ラベル単語に対応する単語列がないと判断された場合に対する処理も行われる。すなわち、ラベル単語に対応する単語列がない場合には、そのラベル単語が選択される。
ステップS342における処理で、選択された単語(以下、選択単語と記述する)が、ステップS343において、単語辞書データベース22から作成部49に供給される。作成部49は、ステップS324において、選択単語を取得すると、ステップS325において、その取得した選択単語を、検索サーバ13に対してインターネット14を介して送信する。
検索サーバ13は、ステップS361において、選択単語を取得し、その選択単語を検索対象の単語とした検索を行う。その検索結果が、ステップS363において、検索サーバ13から作成部49に送信される。検索サーバ13からの検索結果は、例えば、選択単語に関連するホームページの情報である。
作成部49は、ステップS327において、上位のページから単語をランダムに抽出する。検索サーバ13からの検索結果は、選択単語を含むページ、選択単語の説明文があるページなど、選択単語に何らかの関連性があるページである。そのようなページ内から、ランダムに単語が抽出される。
このことにより、選択単語に関連性がある単語が抽出される可能性が高い。また選択単語自体が、ラベル単語、またはラベル単語に関連付けられている単語であるため、ランダムに抽出された単語も、ラベル単語に関連がある可能性が高い単語となる。
ステップS327において、作成部49より、ランダムに抽出された単語は、ステップS328において、辞書作成者側に供給される。辞書作成者は、ステップS302において、ランダムに抽出された単語の供給を受ける。この供給は、例えば、図27に示した画面301のような画面を提示することで行われる。
例えば、画面301の領域332の中央部分に、辞書作成者が入力した単語、すなわちラベル単語が表示される。領域332内のラベル単語の周りに、ランダムに抽出された単語が表示される。図27においては、ラベル単語が“ソニー”であり、ランダムに抽出された単語が、“総合電機メーカー”、“日立”(登録商標)、“魚”、“小田急”(登録商標)、“カメラ”である。
このように、未分類の単語が表示される領域332に、所定のページからランダムに抽出された単語が表示される。領域332に表示される所定のページからランダムに抽出された単語は、上記したように、ラベル単語に関連性が高い単語である可能性が高い。そのような単語を辞書作成者に提供することで、辞書作成者自体が、ラベル単語に関連性が高い単語、換言すれば、領域332に表示させる単語を探し出すといった手間を省くことができる。
辞書作成者は、図27を参照して説明したように、領域332に表示されている単語を、“抽出単語を包含する”単語と、“抽出単語に包含される”単語とに分類する。その分類結果(判定結果)が、ステップS303において辞書作成者側から、作成部49に対して供給される。作成部49は、ステップS330において、単語辞書データベース22内のデータの更新を行う。
例えば、既に単語辞書データベース22内に登録されているラベル単語が選択単語として処理された結果である場合、その登録されているラベル単語に新たな単語が追加されることで更新が行われる。また、例えば、入力単語が選択単語として処理された結果である場合、入力単語をラベル単語とした新たなデータが追加されることで更新が行われる。
この更新のパターとしては、以下のパターンがある。
(ア) 包含されるとされた抽出単語をラベル単語とし、入力単語を単語列の要素として、更新を行う。
(イ) 包含されるとされた新追加単語をラベル単語とし、入力単語を単語列の要素として、更新を行う。
(ウ) 包含するとされた抽出単語を単語列の要素とし、入力単語をラベル単語として、更新を行う。
(エ) 包含するとされた新追加単語を単語列の要素とし、入力単語をラベル単語として、更新を行う。
なお、領域332に表示されている単語のうち、分類されない抽出単語は、破棄される。また、分類されなかった抽出単語を、新たな入力単語として処理が開始されるようにしても良い。
また、辞書作成者が、分類の結果、まだデータが足りないと感じたときには、例えば、作成部49によるステップS327の処理が再度行われ、上位ページから単語がランダムに抽出され、辞書作成者側に新たな抽出単語が提供されるようにしても良い。このような処理が繰り返される事で、辞書作成者が満足するデータベースが構築される。
図28のフローチャートを参照して説明したような処理が行われることで、辞書作成者が、単語辞書データベース22を作成する際の手間を軽減させることが可能となる。
図28を参照した説明においては、検索サーバ13による検索が行われ、その検索結果が用いられる場合を例にあげて説明した。検索サーバ13により検索ではなく、例えば、類義語辞書などのデータベースに対する検索により、検索結果が得られるようにしても良い。または、辞書作成者が、予めランダムに用意した単語群から、ランダムに抽出されるような処理とすることも可能である。
また、検索サーバ13による検索結果を用いる場合、以下のような処理とすることも可能である。入力単語をキーワードとして、検索サーバ13によりインターネット14を介した検索がかけられ、その結果得られた複数のページのうち、選択単語の使用頻度が最も高いページから、ランダムに単語が所定数だけ抽出される。この際、選択単語は抽出されないようにする。このように、選択単語の使用頻度が最も高いページから、ランダムに単語が所定数だけ抽出されるような処理にすることも可能である。
なお、本実施の形態において、以下の単語は特殊単語として、次のような形式で反応して置き換えをユーザに促すようにしても良い。
メールアドレス:@domainを辞書に登録しておく。
郵便番号:3桁数字+ハイフン+4桁数字とする。
地名:地名辞書による。
URL:httpやwww,辞書に登録しておく。
電話番号:番号とハイフンの組み合わせ。桁数等は規格による。
名前:人名辞書による。
これらの単語は、個人のプライバシに大きく係わる可能性が高いため、できるだけ取りこぼし無く、ユーザ側に、単語の置き換えを促すことができるようにすることが好ましい。よって、このような単語を特殊単語として、他の単語とは異なる扱いとすることで、取りこぼし無く、単語の置き換えをユーザに促すことが可能となる。
[効果について]
本技術を適用することで、以下のような効果がある。まず、既存の多義語・類語辞書をプライバシ保護のための単語辞書データベース22に代用できるようになる。入力単語に対して降順でより抽象化された単語を提示することができるようになる。事前に抽象度などを計算しておき、単語列内の単語の並びを適正化しておくことで、ユーザ入力から提示までの時間を短くすることが可能となる。
既存にある入力支援系、例えば、予測機能による入力支援系と整合させることができるため、新たに全体を設計する必要がなく、導入にかかる時間、コスト、処理負担などを低減させることが可能である。
ユーザの入力単語に対して動的に置き換え候補単語の候補が表示されることで、文章作成と同時並行でプライバシ保護の処理を行うことができる。置き換え候補単語の候補の表示を通して、ユーザにプライバシ問題を意識させることができる。
またプライバシの問題がある場合、ユーザは候補を選択するだけで、抽象度の高い単語に置き換えを行うことができ、プライバシに係わる単語を、他の単語に置き換えることができ、プライバシの保護ができる。置き換え候補単語は、置き換え単語を含意するので作成中の文意を損なわない置き換えを行うことができる。
ユーザの利用頻度が増すほど、単語辞書データベース22の精度が向上する。単語辞書データベース22内を個々のユーザ毎に設けることも可能であり、個々のユーザ毎に設けた場合、各ユーザの振る舞いに応じてカスタマイズされた単語辞書データベース22をユーザに提供することが可能となる。その結果、よりユーザの文意に沿いやすい単語辞書データベース22を提供することが可能になる。
ユーザの使用による辞書の更新によって、単語辞書データベース22の精度が向上する。この単語辞書データベース22を、複数のユーザで共有して用いられるデータベースとすることができ、そのようにした場合、利用するユーザが増加すれば、それに比例して単語辞書データベース22の精度がより向上する。
辞書制作者は、単語辞書データベース22の作成を支援する辞書作成支援系が作成した質問の単語をより分けるだけで単語辞書データベース22を作成することができる。このことにより、単語辞書データベース22の作成効率を上げることができる。
インターネットから単語を抽出してくるので、単語辞書データベース22の内容を拡充できる。また、インターネットとは独立した単語辞書データベース22を作成することもできる。
メールアドレスなど形式的に決定している項目に関して取りこぼしを防ぐことができる。
なお、上述した実施の形態においては、プライバシに係わる単語が、抽象的な単語に置き換えられる例を挙げて説明した。プライバシに係わる単語は、主に名詞であることが多いため、上記した処理は、名詞に限定して行われるようにしても良い。
例えば、図27や図28を参照して説明した単語辞書データベース22の作成においては、名詞を対象とすることで、処理すべき単語の数を減らすことが可能となる。また、提示する際も、名詞に吹き出し101(図4など)を出すと限定することも可能であり、名詞が入力されたときをトリガーとして、入力支援処理が行われるように構成することも可能である。
また、本実施の形態においては、ライバシに係わる単語を、抽象的な単語に置き換えといったように、意味的には関連性のある単語同士であっても、単語としては異なる単語である。このことを利用し、例えば、難解な言葉を平易な言葉に置き換えを促すような場合にも本実施の形態を適用できる。
例えば、“掛止”といった単語が入力されたとき、“平易な言葉にしますか?”といったメッセージと共に、“掛けるのに必要な機能をもっている”といった言葉を提示するときにも、本実施の形態を適用することができる。さらに、この例のように、単語の置き換え候補として、単語を提示するのみでなく、文、記号、他言語での表現など、単語以外を提示する場合にも、本実施の形態を適用することができる。
[パーソナルコンピュータの構成]
図29は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータのハードウェアの構成例を示すブロック図である。パーソナルコンピュータにおいて、CPU1001,ROM(Read Only Memory)1002,RAM(Random Access Memory)1003は、バス1004により相互に接続されている。
バス1004には、さらに、入出力インタフェース1005が接続されている。入出力インタフェース1005には、入力部1006、出力部1007、記憶部1008、通信部1009、およびドライブ1010が接続されている。
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記憶部1008は、ハードディスクや不揮発性のメモリなどよりなる。
通信部1009は、ネットワークインタフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア1011を駆動する。
以上のように構成されるパーソナルコンピュータにおいては、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、各種の処理が行われる。
CPU1001が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1531に記録して提供される。
なお、パッケージメディアとしては、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどが用いられる。
また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
パーソナルコンピュータにおいては、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。
また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
なお、パーソナルコンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われる処理であっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
本技術の実施の形態は、上述した実施形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。また本技術の実施の形態は、一部の機能を他の装置が有していてもよい。
なお、本技術は以下のような構成も取ることができる。
(1)
ユーザが入力した第1の単語を取得する取得部と、
前記取得部により前記第1の単語が取得されたとき、前記第1の単語を置き換えるための第2の単語を提示する提示部と
を備える情報処理装置。
(2)
前記第2の単語は、前記第1の単語を抽象化した単語である
前記(1)に記載の情報処理装置。
(3)
前記第1の単語を置き換えずに用いるときに操作される第1の項目と、前記第1の単語および前記第2の単語と異なる第3の単語を用いるときに操作される第2の項目との間に、前記第2の単語が表示され、前記ユーザに提示される
前記(1)または前記(2)のいずれかに記載の情報処理装置。
(4)
前記第1の項目、前記第2の単語、および前記第2の項目は、吹き出し内に表示され、
前記吹き出しの吹き出し口は、前記第1の単語の近傍に位置する
前記(3)に記載の情報処理装置。
(5)
前記第1の単語に、複数の前記第2の単語が関連付けられたデータベースに、前記第1の単語が登録されているとき、前記第2の単語が読み出され、前記ユーザに提示される
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(6)
前記第1の単語に関する前記第2の単語の提示が、前記ユーザにより指示されたとき、前記第2の単語を提示する
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(7)
文字列が入力され、前記文字列が前記第1の単語に変換されたとき、前記第2の単語を提示する
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(8)
入力された文字から、入力される単語を予測して提示した単語群から、前記第1の単語が選択されたとき、前記第2の単語を提示する
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(9)
入力された文字から、入力される単語を予測し、予測した単語に前記第1の単語が含まれる場合、予測した単語群内の前記第1の単語に、前記第2の単語を関連付けた表示で前記第2の単語を提示する
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(10)
文字が入力され、前記文字から入力される単語を予測し、予測した単語群を提示し、提示された単語群から、前記第1の単語上にカーソルが位置したとき、前記第2の単語を提示する
前記(1)乃至(4)のいずれかに記載の情報処理装置。
(11)
前記第2の単語が選択された場合、または前記第3の単語が入力された場合、前記第1の単語に、複数の前記第2の単語が関連付けられたデータベースを更新する更新部をさらに備え、
前記更新部は、
前記第2の単語が選択された場合、前記第2の単語の使用頻度を表す重みを更新し、
前記第3の単語が入力された場合、前記第2の単語として、前記第3の単語を追加する
前記(5)に記載の情報処理装置。
(12)
所定の演算式により求められる値の降順または昇順に、前記第2の単語を並べた状態で、前記第1の単語に関連付け、前記データベースで管理する
前記(5)または前記(11)のいずれかに記載の情報処理装置。
(13)
前記値は、抽象的な単語である度合いを表す値である
前記(12)に記載の情報処理装置。
(14)
前記第1の単語となる第4の単語を検索対象とした検索を行い、
検索結果として得られたページ内から、ランダムに単語を抽出し、
抽出された単語が、前記第4の単語を包含するか否か、または第4の単語が包含されるか否かにより分類し、
分類の結果を前記データベースに追加することで、前記データベースを更新、作成する
前記(5)に記載の情報処理装置。
(15)
ユーザの入力を受け付ける入力部と、前記ユーザに情報を提示する提示部を備える情報処理装置の情報処理方法において、
前記入力部により入力された前記ユーザが入力した第1の単語を取得し、
前記第1の単語が取得されたとき、前記第1の単語を置き換えるための第2の単語を前記提示部で提示する
ステップを含む情報処理方法。
(16)
ユーザの入力を受け付ける入力部と、前記ユーザに情報を提示する提示部を備える情報処理装置を制御するコンピュータに、
前記入力部により入力された前記ユーザが入力した第1の単語を取得し、
前記第1の単語が取得されたとき、前記第1の単語を置き換えるための第2の単語を前記提示部で提示する
ステップを含む処理を実行させるコンピュータ読み取り可能なプログラム。