JP5928589B2 - 入力支援方法、情報処理システムおよびプログラム - Google Patents

入力支援方法、情報処理システムおよびプログラム Download PDF

Info

Publication number
JP5928589B2
JP5928589B2 JP2014523493A JP2014523493A JP5928589B2 JP 5928589 B2 JP5928589 B2 JP 5928589B2 JP 2014523493 A JP2014523493 A JP 2014523493A JP 2014523493 A JP2014523493 A JP 2014523493A JP 5928589 B2 JP5928589 B2 JP 5928589B2
Authority
JP
Japan
Prior art keywords
input
data
input field
item
terminal device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014523493A
Other languages
English (en)
Other versions
JPWO2014006715A1 (ja
Inventor
本間 晴人
晴人 本間
清史 小山内
清史 小山内
昭次 岩本
昭次 岩本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP5928589B2 publication Critical patent/JP5928589B2/ja
Publication of JPWO2014006715A1 publication Critical patent/JPWO2014006715A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/157Transformation using dictionaries or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は入力支援方法、情報処理システムおよびプログラムに関する。
現在、端末装置の画面上で入力されたデータをデータベースに格納し、データベースから後でデータを検索できるようにした情報処理システムが利用されている。このような情報処理システムとしては、例えば、パーソナルコンピュータなどの端末装置が、入力データをWebサーバなどのサーバ装置にネットワークを介して送信し、サーバ装置が、端末装置から受信した入力データをデータベースに格納する形態が考えられる。端末装置に表示される入力画面は、Webサーバから提供されるHTML(HyperText Markup Language)文書などの画面情報によって定義されることもあるし、端末装置にインストールされたアプリケーションソフトウェアによって定義されることもある。
ここで、データベースに格納されたデータは、検索や集計を効率的に行えるように表記方法が統一されていることが好ましい。例えば、住所や会社名について、正式名称や略称のように複数通りの表記方法が存在する場合に、異なる表記方法の住所や会社名がデータベースに混在して登録されていないことが好ましい。異なる表記方法のデータが混在していると、単純なマッチング処理では実質的に同一内容を指しているデータを漏れなく検索することが難しくなり、データを有効に活用できなくなるおそれがある。一方で、複数のユーザがデータを入力する情報処理システムでは、表記方法の揺れが発生しやすい。
そこで、異なる表記方法のデータがデータベースに混在しているという状態を解消するため、データクレンジングという技術が利用されている。データクレンジングでは、表記方法を修正すべきデータとそのデータの修正方法との対応関係を示すルールを定義しておき、ルールに従って修正対象のデータをデータベースから検索して自動的に修正する。ただし、データクレンジングでは、データベースに格納された修正対象のデータ全てについて、コンピュータによって修正後の表記を一意に特定できるとは限らず、自動的に修正できるデータの割合を100%とすることは容易でない。コンピュータによって自動的に修正できなかったデータについては、情報処理システムの管理者がデータを入力したユーザに、どのような意図でそのデータを入力したのか確認することがある。
なお、Webサーバがテキスト入力欄の種別を示す識別子が付された文書データを送信し、文字入力支援装置が識別子に応じた辞書情報を文書データに埋め込み、ユーザ端末が埋め込まれた辞書情報を参照して入力文字の変換候補を表示するシステムが提案されている。また、OCR(Optical Character Reader)を用いて画像から文字列を認識し、複数の種類の辞書データのうち特定のカテゴリ名によって指定される種類の辞書データと照合して、認識した文字列を適切な単語に修正するシステムが提案されている。
特開2009−20865号公報 特開2003−187188号公報
上記のように、データクレンジングによる自動修正を100%の精度で行えるわけではないため、表記方法に一貫性のないデータがデータベースに格納されてしまうと、一貫性の欠如を後から解消することは容易でない。そこで、データベースにデータを格納する前に、表記方法の統一されたデータが入力されるように情報処理システムが支援することが好ましい。例えば、ユーザが自由形式の文字列を入力するのではなくリストの中から文字列を選択するような入力画面を用意し、ユーザが所定の表記方法以外のデータを入力しないようにする方法が考えられる。しかし、既存の情報処理システムについては、入力画面やサーバ装置のプログラムなどを改変できるとは限らず、既存の情報処理システムに入力支援の機能を追加することは容易でなかったという問題がある。
一つの側面では、本発明は、一貫性のないデータがデータベースに格納されることを抑制できる入力支援方法、情報処理システムおよびプログラムを提供することを目的とする。
一態様では、表示部を備える端末装置と端末装置からネットワークを介してアクセス可能な管理装置とを含むシステムが実行する入力支援方法が提供される。入力支援方法では、表示部に表示される入力フィールドの項目名を示す項目情報を、端末装置から管理装置に送信する。それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、管理装置が受信した項目情報に応じた辞書を選択する。選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を、管理装置から端末装置に送信する。
また、一態様では、端末装置と管理装置とを有する情報処理システムが提供される。端末装置は、表示部を備え、表示部に表示される入力フィールドの項目名を示す項目情報をネットワークを介して送信する。管理装置は、それぞれが複数のデータの候補を含み所定条件に基づいて分類された複数の辞書を記憶する記憶部を備え、端末装置から受信した項目情報に応じた辞書を複数の辞書の中から選択し、選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を端末装置に送信する。
また、一態様では、端末装置からネットワークを介してアクセス可能なコンピュータに実行させるプログラムが提供される。プログラムを実行するコンピュータは、端末装置から、端末装置が備える表示部に表示される入力フィールドの項目名を示す項目情報を受信する。それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、受信した項目情報に応じた辞書を選択する。選択された辞書に基づいて、項目情報に対応する少なくとも1つのデータの候補を端末装置に送信する。
一つの側面では、一貫性のないデータがデータベースに格納されることを抑制できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 入力項目を含むウィンドウの例を示す図である。 ウィンドウ上での入力支援の例を示す図である。 クライアント装置のハードウェア例を示すブロック図である。 クライアント装置とサーバ装置の機能例を示すブロック図である。 ウィンドウ識別テーブルの例を示す図である。 データ型テーブルの例を示す図である。 ボタンテーブルの例を示す図である。 制御方法テーブルの例を示す図である。 入力項目テーブルの例を示す図である。 決定ボタンテーブルの例を示す図である。 クライアント装置とサーバ装置の通信例を示すシーケンス図である。 識別情報抽出と制御方法判定の手順例を示すフローチャートである。 入力項目評価の手順例を示すフローチャートである。 データ型判定の手順例を示すフローチャートである。 ボタン評価の手順例を示すフローチャートである。 決定ボタン判定の手順例を示すフローチャートである。 入力制御の手順例を示すフローチャートである。 候補判定の手順例を示すフローチャートである。 検査・修正制御の手順例を示すフローチャートである。 検査・修正判定の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、端末装置10および管理装置20を有する。端末装置10と管理装置20とはネットワーク3を介して接続されている。例えば、端末装置10はユーザが操作するクライアントコンピュータであり、管理装置20は端末装置10からアクセスされるサーバコンピュータである。ネットワーク3は、LAN(Local Area Network)でもよいし、インターネットなどの広域ネットワークであってもよい。
端末装置10は、表示部11、通信部12および制御部13を有する。
表示部11は、入力画面を表示する。入力画面は、端末装置10にインストールされたアプリケーションソフトウェアによって定義されたものでもよいし、管理装置20または他のサーバ装置から提供されるHTML文書などの画面情報に基づいてWebブラウザが描画するものでもよい。入力画面には、入力フィールド11aが含まれる。入力フィールド11aに対しては、ユーザが文字列などのデータを入力することができる。入力フィールド11aの近くには、入力フィールド11aの項目名が表示されることがある。
通信部12は、ネットワーク3を介して管理装置20や他のサーバ装置と通信を行う。通信部12は、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)やHTTP(Hypertext Transfer Protocol)などのプロトコルを用いて、管理装置20や他のサーバ装置にアクセスしてデータ通信を行う。
制御部13は、管理装置20と連携して、入力フィールド11aへのデータ入力を支援する。制御部13は、例えば、1またはそれ以上のプロセッサおよびメモリを含む。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよい。また、プロセッサは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。メモリは、RAM(Random Access Memory)であってもよい。例えば、プロセッサがメモリに記憶されたプログラムを実行することで、以下に述べる機能を実現する。
管理装置20は、記憶部21、通信部22および制御部23を有する。
記憶部21は、辞書21a,21bを含む複数の辞書を記憶する。複数の辞書それぞれは、複数のデータの候補を含む。複数の辞書は、例えば、データの候補をそのデータ型に応じて分類することで作成される。記憶部21は、RAMなどの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。
通信部22は、ネットワーク3を介して端末装置10と通信を行う。通信部22は、例えば、TCP/IPやHTTPなどのプロトコルに従って、端末装置10からアクセスを受け付けて端末装置10とデータ通信を行う。
制御部23は、記憶部21に記憶された複数の辞書を用いて、端末装置10のユーザが入力フィールド11aに適切なデータを入力できるよう支援する。制御部23は、例えば、1またはそれ以上のプロセッサおよびメモリを含む。上記の通り、プロセッサはCPUやDSPでもよく、ASICやFPGAなどの電子回路を含んでもよい。メモリはRAMでもよく、記憶部21と共通であってもよい。例えば、プロセッサがメモリに記憶されたプログラムを実行することで、以下に述べる機能を実現する。
ここで、第1の実施の形態の情報処理システムでは、以下のようにして入力フィールド11aへのデータ入力を支援する。端末装置10は、入力フィールド11aの項目名を示す項目情報を、ネットワーク3を介して管理装置20に送信する。項目名は、入力フィールド11aの近くに表示されるものを抽出してもよいし、HTML文書などの画面情報に含まれるタグなどの不可視情報から抽出してもよい。項目情報は、入力フィールド11aが表示部11に表示される前に送信してもよいし、表示された後に送信してもよい。
管理装置20は、記憶部21に記憶された複数の辞書の中から、端末装置10から受信した項目情報に応じた辞書を選択する。例えば、管理装置20は、項目情報が示す項目名から入力フィールド11aに入力されるべきデータのデータ型を推定し、推定したデータ型に対応する辞書を選択する。そして、管理装置20は、選択された辞書に基づいて、項目情報に対応する、入力フィールド11aに入力されるデータの候補を、ネットワーク3を介して端末装置10に送信する。送信するデータの候補は1つでも複数でもよい。
端末装置10は、管理装置20から受信したデータの候補に基づいて、ユーザによる入力フィールド11aへのデータ入力を支援する。例えば、端末装置10は、受信したデータの候補を入力フィールド11aの近くに表示し、ユーザが何れか1つを選択できるようにする。受信したデータの候補が1個である場合、端末装置10は、そのデータの候補をユーザ操作なしに入力フィールド11aに埋め込んでもよい。データの候補に基づいて入力フィールド11aの入力データが確定すると、端末装置10は、例えば、ネットワーク3を介してサーバ装置(管理装置20または他のサーバ装置)に確定した入力データを送信する。入力データを受信したサーバ装置は、データベースに入力データを格納する。
なお、項目情報は、入力フィールド11aが表示部11に表示されるときに端末装置10から管理装置20に送信し、データの候補は、入力フィールド11aに関してユーザが操作を行ったときに管理装置20から端末装置10に送信してもよい。この場合、端末装置10は、ユーザ操作を検出して現時点の入力データを管理装置20に送信し、管理装置20は、現時点の入力データに基づいて最終的なデータの候補または修正後のデータの候補を端末装置10に送信してもよい。検出するユーザ操作には、入力フィールド11aに対する入力操作や、入力したデータを確定するときのボタン操作などが含まれ得る。
第1の実施の形態の情報処理システムによれば、データベースにデータが格納される前に、入力フィールド11aに対して適切なデータが入力されるように支援することができる。よって、一貫性のないデータがデータベースに格納されることを抑制できる。また、端末装置10から管理装置20に入力フィールド11aの項目名を示す項目情報が送信され、項目情報に応じた辞書に基づいて管理装置20から端末装置10にデータの候補が送信される。よって、既存の情報処理システムにおける入力画面の定義やデータベースを更新するサーバ装置のプログラムなどを改変せずに、適切なデータの候補を提示することが可能となり、入力支援の機能を情報処理システムに容易に追加することができる。
なお、端末装置10の入力支援機能は、Webブラウザに組み込むプラグインとして実装してもよいし、文字入力補助ソフトウェア(例えば、IME(Input Method Editor)と呼ばれるもの)として実装してもよい。例えば、日本語用の文字入力補助ソフトウェアは、アルファベットからかな文字への変換やかな文字から漢字への変換を行う。以下に説明する第2の実施の形態では、文字入力補助ソフトウェアを利用することとする。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ネットワーク31、データベースサーバ32、クライアント装置100,100aおよびサーバ装置200,200aを含む。ネットワーク31に、データベースサーバ32、クライアント装置100,100aおよびサーバ装置200,200aが接続されている。
データベースサーバ32は、データをデータベースサーバ32が備えるHDDなどの不揮発性記憶装置に保存し、データの集合をデータベースとして管理するサーバコンピュータである。データベースサーバ32は、ネットワーク31を介してサーバ装置200aからデータの書き込み要求を受信し、書き込み要求に係るデータを保存する。
データベースに対しては、ユーザが指定した値を含むデータの検索や同じ値を含んだデータの集計などのデータ処理が行われ得る。そこで、データの検索や集計を容易にするため、データベースサーバ32に保存されるデータは表記方法が統一されていることが好ましい。例えば、住所や会社に複数の表記方法が存在するとき、検索漏れが生じないよう、同一の住所や会社を異なる表記方法で表したデータがデータベースに混在していないことが好ましい。第2の実施の形態では、データがサーバ装置200aからデータベースサーバ32に送信されてデータベースに追加される前に、クライアント装置100,100aとサーバ装置200とが連携してデータの表記方法を統一するよう制御する。
クライアント装置100,100aは、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント装置100,100aは、入力フィールドを含む入力画面を表示し、入力フィールドに対するユーザの文字入力を受け付け、データベースサーバ32に保存するデータとして確定した文字列をサーバ装置200aに送信する。入力画面は、クライアント装置100,100aにインストールされたアプリケーションソフトウェアによって定義された画面であることもあるし、サーバ装置200aからダウンロードされるHTML文書に基づいてWebブラウザが描画する画面であることもある。
また、クライアント装置100,100aには、文字入力補助ソフトウェアがインストールされている。日本語を入力する場合、文字入力補助ソフトウェアは、キー入力によって指定されたアルファベットをかな文字に変換し、変換命令を受けてかな文字を漢字に変換する。また、クライアント装置100,100aにインストールされた文字入力補助ソフトウェアは、サーバ装置200と連携して、所定の表記方法に従った文字列が入力フィールドに入力されるよう支援する。入力支援方法としては、サーバ装置200から提示された文字列の候補を入力フィールドの近くに表示する方法や、入力フィールドに現在記入されている文字列を提示された文字列の候補に置き換える方法が挙げられる。
サーバ装置200は、クライアント装置100,100aからアクセスされるサーバコンピュータである。サーバ装置200は、クライアント装置100,100aにインストールされた文字入力補助ソフトウェアと連携して、入力フィールドに対するユーザの文字入力を支援する。サーバ装置200は、現在入力されている確定前の文字列をクライアント装置100,100aから受信し、受信した文字列に基づいて、所定の表記方法に従った修正後の文字列の候補を辞書から検索してクライアント装置100,100aに送信する。日本語入力の場合、クライアント装置100,100aからサーバ装置200に送信される文字はかな文字でもよいし漢字でもよい。修正後の文字列の候補が提示されるタイミングとしては、入力フィールドに対して入力操作が行われたときや、文字列をデータベースサーバ32に保存するデータとして確定する直前などが挙げられる。
サーバ装置200aは、クライアント装置100,100aからアクセスされるサーバコンピュータである。サーバ装置200aは、確定された文字列としてのデータをクライアント装置100,100aからネットワーク31を介して受信し、受信したデータをデータベースに書き込むための書き込み命令をデータベースサーバ32に送信する。サーバ装置200aはWebサーバでもよく、その場合にはクライアント装置100,100aからのアクセスに応じて、入力フィールドを含む入力画面を定義したHTML文書をクライアント装置100,100aに送信してもよい。
なお、クライアント装置100,100aは第1の実施の形態の端末装置10の一例であり、サーバ装置200は第1の実施の形態の管理装置20の一例であり、ネットワーク31は第1の実施の形態のネットワーク3の一例である。また、第2の実施の形態では、サーバ装置200がクライアント装置100,100aにおけるデータ入力を支援し、サーバ装置200aがデータベースを更新しているが、以下に説明するサーバ装置200,200aの処理を同一のサーバ装置が行うようにしてもよい。
図3は、入力項目を含むウィンドウの例を示す図である。クライアント装置100,100aには図3に示すようなウィンドウが表示される。図3のウィンドウは、3つの入力フィールドと入力フィールドに対応する3つのラベルと2つのボタンとを含む。
1つ目の入力フィールドには「会社」という項目名が付与されており、会社名を示す文字列がユーザによって入力されることが期待される。2つ目の入力フィールドには「住所」という項目名が付与されており、住所を示す文字列がユーザによって入力されることが期待される。3つ目の入力フィールドには「価格」という項目名が付与されており、価格を示す数値がユーザによって入力されることが期待される。各入力フィールドの項目名を示すラベルが、その入力フィールドの左側に表示されている。1つ目と2つ目のラベルはテキストとして表され、3つ目のラベルは画像として表されている。
3つの入力フィールドの下に2つのボタンが配置されている。左側のボタンは「取消」という名称が付与されたボタンであり、入力操作を中止するときにユーザによって押下される。右側のボタンは「送信」という名称が付与されたボタンであり、3つの入力フィールドに記入された文字列を確定してクライアント装置100,100aからサーバ装置200aに送信するときにユーザによって押下される。図3の取消ボタンや送信ボタンと同様の機能をもつボタンは、ウィンドウによって様々な名称が付与され得る。以下では、図3の送信ボタンと同様の機能をもつボタンを決定ボタンと総称することとする。
入力フィールドの項目名を示すラベルは、その入力フィールド左側または上側に配置されることが多い。また、決定ボタンはウィンドウの最も右下に配置されることが多い。クライアント装置100,100aおよびサーバ装置200は、入力フィールドに対する入力操作や決定ボタンに対する選択操作を検出できるようにするにあたり、このような表示部品の配置の性質を利用する。なお、入力フィールドやラベルやボタンなどの表示部品の位置は、ウィンドウの左上を基点とした座標で表すことができる。各表示部品の位置を示す座標は、例えば、その表示部品の左上の点の座標とする。
図4は、ウィンドウ上での入力支援の例を示す図である。入力フィールドに入力すべき文字列の候補がサーバ装置200から提示されるタイミングは、次の3つが挙げられる。(1)入力フィールドに対して文字(日本語入力の場合は変換前のかな文字でもよい)を入力中のとき。(2)文字列を入力した入力フィールドから他の入力フィールドにフォーカスが移動したとき。(3)決定ボタンが押下されたとき。
(1)入力フィールドに文字を入力中のとき、現在まで入力した文字がクライアント装置100,100aからサーバ装置200に送信される。そして、その文字またはその文字から変換される他の文字(例えば、かな文字から変換される漢字)を含む所定の表記方法に従った文字列の候補が、サーバ装置200からクライアント装置100,100aに送信されて表示される。ユーザは、入力フィールドの近くに表示された複数の文字列の候補の中から何れか1つを選択することができる。例えば、項目名が「住所」である入力フィールドにユーザが「かな」と入力したとき、住所を表す文字列の候補として「神奈川県」や「石川県金沢市」などの文字列が表示される。文字列の候補が表示されるタイミングを、ユーザが変換命令を入力したタイミングとしてもよい。
(2)文字列を入力した入力フィールドからフォーカスが外れたとき(フォーカスアウト)、その入力フィールドに記入された文字列がクライアント装置100,100aからサーバ装置200に送信される。その文字列が所定の表記方法に適合していないと判断された場合、修正後の文字列の候補がサーバ装置200からクライアント装置100,100aに送信されて表示される。修正後の文字列の候補の表示方法としては、文字列の候補を入力フィールドの近くに表示してユーザに修正を促す方法と、入力フィールドに記入されている文字列を置換する方法とが考えられる。例えば、項目名が「会社」である入力フィールドにユーザが会社の略称「ABCD(株)」を入力したとき、修正後の文字列の候補として会社の正式名称「ABCD株式会社」が表示される。
(3)決定ボタンが押下されたとき、データベースを更新するための手続きが中断されて、ウィンドウに含まれる各入力フィールドについて上記(2)と同様の方法で、入力された文字列が検査されて修正後の文字列が表示される。(2)と(3)の入力支援機能は何れか一方または両方が動作しないように設定することもできる。なお、(2)と(3)は、データベースに格納する前に文字列が所定の表記方法に適合するように修正するものであるが、第2の実施の形態ではこの修正機能も「クレンジング」と呼ぶこととする。
図5は、クライアント装置のハードウェア例を示すブロック図である。クライアント装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、ディスクドライブ106および通信インタフェース107を有する。クライアント装置100の上記の各ユニットは、バス108に接続されている。
CPU101は、プログラムの命令を実行する演算器を含むプロセッサである。CPU101は、HDD103に記憶されているプログラムやデータの少なくとも一部をRAM102にロードしてプログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、クライアント装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、2以上のプロセッサの集合、FPGAやASICなどの専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせを「プロセッサ」と呼んでもよい。
RAM102は、CPU101が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、クライアント装置100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
HDD103は、OS(Operating System)やファームウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性記憶装置である。なお、クライアント装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の記憶装置を備えてもよく、複数の不揮発性記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、クライアント装置100に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。なお、クライアント装置100に接続されたディスプレイ41は、クライアント装置100が備えている(クライアント装置100の一部である)と言うこともできる。また、ディスプレイ41は、クライアント装置100の筐体と一体に形成されていてもよい。
入力信号処理部105は、クライアント装置100に接続された入力デバイス42から入力信号を取得し、CPU101に通知する。入力デバイス42としては、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。なお、クライアント装置100に接続された入力デバイス42は、クライアント装置100が備えている(クライアント装置100の一部である)と言うこともできる。また、入力デバイス42は、クライアント装置100の筐体と一体に形成されていてもよい。
ディスクドライブ106は、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。ディスクドライブ106は、CPU101からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク31を介してサーバ装置200とデータ通信を行うことができる有線通信インタフェースである。ただし、通信インタフェース107をアクセスポイントに接続する無線通信インタフェースとしてもよい。
なお、クライアント装置100は、ディスクドライブ106を備えなくてもよい。また、クライアント装置100は、ユーザが操作する他のコンピュータからアクセス可能な場合、画像信号処理部104や入力信号処理部105を備えなくてもよい。クライアント装置100aおよびサーバ装置200,200aも、クライアント装置100と同様のハードウェア構成によって実現できる。また、CPU101とRAM102の組み合わせは第1の実施の形態の制御部13の一例であり、通信インタフェース107は第1の実施の形態の通信部12の一例であり、ディスプレイ41は第1の実施の形態の表示部11の一例である。
図6は、クライアント装置とサーバ装置の機能例を示すブロック図である。
クライアント装置100は、ウィンドウ表示部110、入力制御部120、制御情報記憶部130およびアクセス部140を有する。制御情報記憶部130は、RAM102またはHDD103に確保した記憶領域として実現できる。制御情報記憶部130以外のユニットは、CPU101に実行させるプログラムのモジュールとして実現できる。クライアント装置100aもクライアント装置100と同様のモジュール構成で実現できる。
ウィンドウ表示部110は、ウィンドウを表示させるプロセスに対応するモジュールである。プロセスがWebブラウザである場合、ウィンドウ表示部110は、サーバ装置200から受信するHTML文書に基づいてウィンドウ内にWebページをレンダリングする。プロセスがクライアント装置100にインストールされたアプリケーションソフトウェアである場合、ウィンドウ表示部110は、OSのAPI(Application Programming Interface)を利用してウィンドウ内に表示部品を描画する。
入力制御部120は、文字入力補助ソフトウェアのモジュールであり、ユーザによる文字入力を支援する。入力制御部120は、ウィンドウ表示部110に相当するプロセスがクライアント装置100で起動すると、当該プロセスの中に取り込まれて動作する。入力制御部120は、ウィンドウ表示部110によりウィンドウが表示されると、そのウィンドウに対してどのような入力支援を行うかを示す制御情報をサーバ装置200から取得し、制御情報記憶部130に格納する。そして、入力制御部120は、ウィンドウに対するユーザ操作を検出し、制御情報記憶部130に記憶された制御情報に従って、各入力フィールドに入力されるべき文字列の候補をサーバ装置200から適宜取得して表示する。
制御情報記憶部130は、入力制御部120が入力支援を行うにあたって参照する制御情報を記憶する。制御情報記憶部130に記憶される制御情報には、後述するように、ウィンドウの情報と入力フィールドの情報と決定ボタンの情報とが含まれる。
アクセス部140は、ウィンドウ表示部110および入力制御部120からの要求に従ってサーバ装置200,200aにアクセスする。例えば、アクセス部140は、ウィンドウが表示されたときやウィンドウに対する特定のユーザ操作が検出されたとき、入力制御部120からの要求に従ってサーバ装置200にアクセスする。また、アクセス部140は、入力フィールドに記入された文字列がデータベースに格納するデータとして確定されたとき、ウィンドウ表示部110からの要求に従ってデータをサーバ装置200aに送信する。
サーバ装置200は、アクセス受付部210、クライアント支援部240、制御情報記憶部250、文字変換部260、クレンジング部270および辞書記憶部280を有する。サーバ装置200aは、アクセス受付部210a、データ処理部220およびデータベース更新部230を有する。辞書記憶部280は、RAMまたはHDDに確保した記憶領域として実現できる。辞書記憶部280以外のユニットは、CPUに実行させるプログラムのモジュールとして実現できる。
アクセス受付部210,210aは、クライアント装置100,100aからアクセスを受け付ける。サーバ装置200のアクセス受付部210は、入力データを確定する前の入力支援のためのアクセスを受け付けたとき、そのアクセスをクライアント支援部240に通知する。サーバ装置200aのアクセス受付部210aは、確定された入力データを受信した場合、入力データをデータ処理部220に出力する。
データ処理部220は、クライアント装置100,100aで動作するWebブラウザまたはアプリケーションソフトウェアに対応するサーバソフトウェアのモジュールである。データ処理部220は、ユーザによって確定された入力データに対して、タイムスタンプの付与などの所定のデータ処理を行ってデータベース更新部230に出力する。
データベース更新部230は、データ処理部220から受け取ったデータをデータベースに格納するための書き込み命令を生成し、データベースサーバ32に送信する。
クライアント支援部240は、クライアント装置100,100aからのアクセスに応じて、入力支援のための情報をクライアント装置100,100aに提供する。クライアント装置100,100aでウィンドウが表示されたとき、クライアント支援部240は、そのウィンドウの入力制御のための制御情報を制御情報記憶部250から検索してクライアント装置100,100aに提供する。また、入力途中の文字(例えば、漢字に変換する前のかな文字)を受け付けると、クライアント支援部240は、文字変換部260に入力途中の文字を変換させ、変換後の文字列の候補をクライアント装置100,100aに提供する。また、入力フィールドに記入された文字列を受け付けると、クライアント支援部240は、受け付けた文字列をクレンジング部270にクレンジングさせ、修正を要する場合には修正後の文字列の候補をクライアント装置100,100aに提供する。
制御情報記憶部250は、クライアント装置100,100aでの文字入力を支援するための制御情報を記憶する。制御情報記憶部250に記憶される制御情報には、後述するように、ウィンドウの情報とデータ型の情報と決定ボタンの情報とが含まれる。
文字変換部260は、辞書記憶部280に記憶された辞書を参照して、入力途中の文字から所定の表記方法に従った1またはそれ以上の文字列の候補を求める。日本語入力である場合、かな漢字変換のモジュールが利用され得る。例えば、文字変換部260は、入力途中のかな文字を漢字に変換する。また、文字変換部260は、予測変換機能を用いて、入力途中の文字や変換後の文字を一部に含む文字列を辞書から検索する。そして、文字変換部260は、変換された文字列の候補をクライアント支援部240に出力する。
クレンジング部270は、ユーザが入力した文字列に対してクレンジングを行う。すなわち、クレンジング部270は、辞書記憶部280に記憶された辞書を参照して、入力された文字列が所定の表記方法に適合しているか検査する。検査に合格しなかった場合、クレンジング部270は、辞書を参照して入力された文字列に対応する修正後の文字列の候補を推定する。そして、クレンジング部270は、検査結果および検査が不合格だった場合には修正後の文字列の候補を、クライアント支援部240に出力する。
辞書記憶部280は、複数のデータ型それぞれに対応する辞書を記憶する。例えば、住所を所定の統一された表記方法で記載した住所型の辞書や、法人を所定の統一された表記方法で記載した法人型の辞書などが予め用意される。各辞書は、クライアント装置100,100aに提示され得る複数の文字列の候補を含む。日本語入力に対応する場合、各辞書には、漢字を用いた文字列とその読み仮名に対応する文字列との組が記載される。
図7は、ウィンドウ識別テーブルの例を示す図である。ウィンドウ識別テーブル251は、制御情報記憶部250に記憶されている。ウィンドウ識別テーブル251の内容は、例えば、予めユーザにより定義される。ウィンドウ識別テーブル251は、ID(Identification)、制御対象、制御方法、入力項目およびボタンの項目を含む。
IDの項目には、クライアント装置100,100aに表示され得るウィンドウ(Webブラウザの場合はWebページ)を識別するための識別子が登録される。制御対象の項目には、ウィンドウを表示するプロセスの名称とウィンドウ名(Webブラウザの場合はWebページ名)とが登録される。プロセス名とウィンドウ名の組によって、ウィンドウを特定することができる。制御方法の項目には、そのウィンドウで入力支援機能を動作させるか否かを示すフラグ(FEP)、フォーカスアウト時の動作方法(FocusOut)および決定ボタンが押下されたときの動作方法(Submit)が登録される。フォーカスアウト時および決定ボタンが押下されたときの動作は、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、入力フィールドの文字列を自動的に修正する(AutoCorrect)の中から選択される。
入力項目の項目には、1またはそれ以上の入力フィールドの位置が予めわかっているとき、各入力フィールドの座標と入力されるべき文字列のデータ型とが登録される。位置がわかっている入力フィールドが存在しない場合には、入力項目の項目は空欄でよい。ボタンの項目には、決定ボタンの位置が予めわかっているとき、決定ボタンの座標が登録される。決定ボタンの位置が不明である場合には、決定ボタンの項目は空欄でよい。
図8は、データ型テーブルの例を示す図である。データ型テーブル252は、制御情報記憶部250に記憶されている。データ型テーブル252の内容は、例えば、予めユーザにより定義される。データ型テーブル252は、ID、型名、項目名、辞書およびクレンジング関数の項目を含む。
IDの項目には、データ型を識別するための識別子が登録される。型名の項目には、住所型や法人型などのデータ型の名称が登録される。なお、図8において、ユーザ型1はユーザによってカスタマイズされたデータ型であり、文字列型は他の何れのデータ型にも該当しない文字列の型である。項目名の項目には、入力フィールドのラベルとして使用され得る1またはそれ以上の名称が登録される。例えば、住所型については「住所」や「所在地」、法人型については「法人名」や「会社」などの文字列が登録される。
辞書の項目には、辞書記憶部280に記憶された複数の辞書のうちそのデータ型に対応する辞書の名称が登録される。クレンジング関数の項目には、クレンジング部270に用意された複数の関数(クレンジング関数)のうち、そのデータ型の文字列をクレンジングするときにクライアント支援部240から呼び出される関数の名称が登録される。なお、クレンジング関数の中では、辞書の項目で示される辞書が参照される。
図9は、ボタンテーブルの例を示す図である。ボタンテーブル253は、制御情報記憶部250に記憶されている。ボタンテーブル253の内容は、例えば、予めユーザにより定義される。ボタンテーブル253は、ID、ボタン名および制御フラグの項目を含む。IDの項目には、決定ボタンの名称を識別するための識別子が登録される。ボタン名の項目には、「送信」や「決定」や「実行」など、決定ボタンのラベルとして使用され得る名称が登録される。制御フラグの項目には、そのラベルをもつ決定ボタンが押下されたときに文字列の検査や修正を行うか否かを示すフラグが設定される。
図10は、制御方法テーブルの例を示す図である。制御方法テーブル131は、制御情報記憶部130に記憶されている。制御方法テーブル131は、サーバ装置200との通信を通じて入力制御部120により更新される。制御方法テーブル131は、プロセス名、ウィンドウ名、制御フラグ、フォーカス制御および決定制御の項目を含む。
プロセス名の項目には、ウィンドウを表示するプロセスの名称が登録される。ウィンドウ名の項目には、表示されたウィンドウの名称が登録される。制御フラグの項目には、そのウィンドウについて文字列の候補を表示するなどの入力支援を行うか否かを示すフラグが登録される。フォーカス制御の項目には、そのウィンドウの入力フィールドに対してフォーカスアウトの操作が行われたときの動作方法が登録される。決定制御の項目には、そのウィンドウの決定ボタンが押下されたときの動作方法が登録される。前述のように、フォーカス制御および決定制御の項目には、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、入力フィールドの文字列を自動的に修正する(AutoCorrect)の何れかが登録される。
図11は、入力項目テーブルの例を示す図である。入力項目テーブル132は、制御情報記憶部130に記憶されている。入力項目テーブル132は、サーバ装置200との通信を通じて入力制御部120により更新される。入力項目テーブル132は、ID、フィールド、ラベルおよびデータ型の項目を含む。
IDの項目には、入力フィールドを識別するための識別子が登録される。フィールドの項目には、入力フィールドの種別と座標が登録される。自由形式で文字列を入力する入力フィールドの種別はテキストである。ラベルの項目には、その入力フィールドに対応するラベルの種別とラベルとして記載された文字と座標が登録される。ラベルの種別はテキストまたは画像である。ラベルが画像として表されている場合、文字は不明でもよい。データ型の項目には、そのフィールドに入力されるべき文字列のデータ型が登録される。
図12は、決定ボタンテーブルの例を示す図である。決定ボタンテーブル133は、制御情報記憶部130に記憶されている。決定ボタンテーブル133は、サーバ装置200との通信を通じて入力制御部120により更新される。決定ボタンテーブル133は、IDおよびボタン情報の項目を含む。IDの項目には、ウィンドウに表示された決定ボタンを識別するための識別子が登録される。ボタン情報の項目には、表示部品の種別がボタンであること、その決定ボタンに付されたラベルおよび決定ボタンの座標が登録される。
次に、クライアント装置100とサーバ装置200とが連携して行う入力制御を説明する。クライアント装置100aとサーバ装置200の間でも同様の制御が行われる。
図13は、クライアント装置とサーバ装置の通信例を示すシーケンス図である。
クライアント装置100は、ウィンドウがディスプレイ41に表示されると、プロセス名とウィンドウ名を含む識別情報をサーバ装置200に送信する(ステップS11)。サーバ装置200は、受信した識別情報が示すウィンドウに対してどのような入力制御を行うか判定し、制御方法情報をクライアント装置100に送信する(ステップS21)。
クライアント装置100は、ウィンドウに含まれる入力フィールドを確認し、入力フィールドの項目名と座標を含む入力項目情報をサーバ装置200に送信する(ステップS12)。項目名は、テキストまたは画像として表されている。サーバ装置200は、受信した入力項目情報に基づいて入力フィールドに入力されるべき文字列のデータ型を判定し、判定したデータ型をクライアント装置100に回答する(ステップS22)。
クライアント装置100は、ウィンドウに含まれるボタンを確認し、1またはそれ以上のボタンのボタン名と座標を含むボタン情報をサーバ装置200に送信する(ステップS13)。ボタン名は、テキストまたは画像として表されている。サーバ装置200は、受信したボタン情報に基づいて何れのボタンが決定ボタンであるか判定し、判定した決定ボタンを示す決定ボタン情報をクライアント装置100に送信する(ステップS23)。
クライアント装置100は、ある入力フィールドにフォーカスが移動して(フォーカスイン)文字入力が開始されたこと、または、入力された文字列に対する変換命令が入力されたことを検出する。すると、クライアント装置100は、ステップS22で判定されたその入力フィールドのデータ型と現時点で入力されている文字列とをサーバ装置200に送信する(ステップS14)。サーバ装置200は、通知されたデータ型に対応する辞書を参照して、受信した文字列から入力されるべき1またはそれ以上の文字列の候補に変換してクライアント装置100に送信する(ステップS24)。クライアント装置100は、受信した文字列の候補を入力フィールドの近くに表示する。
クライアント装置100は、文字列が記入された入力フィールドからのフォーカスアウト、または、決定ボタンの押下を検出する。すると、クライアント装置100は、その入力フィールドのデータ型とその入力フィールドに記入された文字列とをサーバ装置200に送信する(ステップS15)。サーバ装置200は、通知されたデータ型に対応するクレンジング関数を呼び出して、受信した文字列が所定の表記方法に適合しているか検査し、検査が不合格である場合には修正後の文字列の候補を求める。そして、サーバ装置200は、検査結果と不合格の場合は修正後の文字列の候補とをクライアント装置100に送信する(ステップS25)。クライアント装置100は、受信した文字列の候補を、入力フィールドの近くまたは入力フィールドの中に表示する。
クライアント装置100は、ウィンドウに含まれる全ての入力フィールドの文字列が検査に合格した場合、それら文字列をデータベースに格納する入力データとして確定し、サーバ装置200に送信する。サーバ装置200は、受信したデータをデータベースサーバ32に送信することでデータベースを更新する(ステップS26)。
以下では、上記ステップS11〜S15,S21〜S25の詳細を説明する。
図14は、識別情報抽出と制御方法判定の手順例を示すフローチャートである。
以下のステップS110〜S112が前述のステップS11で実行される。
(ステップS110)入力制御部120は、ウィンドウ表示部110によりウィンドウ(Webブラウザの場合はWebページ)が表示されると、当該ウィンドウについてのプロセス名とウィンドウ名(Webブラウザの場合はWebページ名)を抽出する。プロセス名とウィンドウ名は、例えば、OSのAPIを利用して取得することができる。Webページ名は、例えば、WebブラウザがもつHTML文書から抽出することができる。
(ステップS111)入力制御部120は、ステップS111で抽出したプロセス名とウィンドウ名を含む識別情報をサーバ装置200に送信する。
(ステップS112)入力制御部120は、サーバ装置200から制御方法情報を受信し、ステップS110で抽出したプロセス名およびウィンドウ名と併せて制御方法テーブル131に登録する。受信する制御方法情報には、制御フラグ(FEP)とフォーカス制御の方法(FocusOut)と決定制御の方法(Submit)とが記載されている。
以下のステップS210〜S212が前述のステップS12で実行される。
(ステップS210)クライアント支援部240は、クライアント装置100から上記ステップS110で送信されたプロセス名とウィンドウ名を含む識別情報を受信する。
(ステップS211)クライアント支援部240は、ウィンドウ識別テーブル251から、プロセス名とウィンドウ名の組に対応する制御方法情報を検索する。
(ステップS212)クライアント支援部240は、ステップS211で検索した制御方法情報をクライアント装置100に送信する。上記の通り、制御方法情報には、制御フラグとフォーカス制御の方法と決定制御の方法が記載されている。フォーカス制御および決定制御の方法は、何もしない(None)、入力フィールドの近くに文字列の候補を表示する(Suggest)、自動修正する(AutoCorrect)の何れかである。
図15は、入力項目評価の手順例を示すフローチャートである。図15に示す処理がクライアント装置100により前述のステップS12で実行される。
(ステップS120)入力制御部120は、制御方法テーブル131に登録された制御フラグがYESであるか(ウィンドウが入力支援の対象であるか)判断する。制御フラグ=YESの場合は処理をステップS121に進め、それ以外の場合は処理を終了する。
(ステップS121)入力制御部120は、ウィンドウに含まれる入力項目を確認する。例えば、入力制御部120は、OSのAPIを利用して、ウィンドウの子要素としての表示部品の中から文字列を入力するための入力フィールドを探し、入力フィールドに対応する(例えば、入力フィールドの左または上に配置された)ラベルを探す。プロセスがWebブラウザの場合、例えば、入力制御部120は、WebブラウザがもつHTML文書の中から入力フィールドを示すタグを探し、タグの識別名(name属性)を確認する。
(ステップS122)入力制御部120は、ステップS121で確認した1またはそれ以上の入力項目の中から、入力項目を1つ選択する。
(ステップS123)入力制御部120は、ステップS122で選択した入力項目の項目名と入力フィールドの座標を含む入力項目情報を、識別情報(プロセス名とウィンドウ名)と併せてサーバ装置200に送信する。ラベルまたはHTMLタグからテキストを抽出できた場合、項目名としてテキストが送信される。テキストを抽出できなかった場合、項目名としてラベル部分をキャプチャした画像が送信される。
(ステップS124)入力制御部120は、サーバ装置200からステップS122で選択した入力項目のデータ型が通知される。すると、入力制御部120は、ステップS121で確認した入力項目の情報と併せてデータ型を入力項目テーブル132に登録する。
(ステップS125)入力制御部120は、ウィンドウに含まれる全ての入力項目をステップS122で選択したか判断する。全て選択した場合は処理をステップS126に進め、未選択の入力項目がある場合は処理をステップS122に進める。
(ステップS126)入力制御部120は、入力項目テーブル132に登録した入力フィールドをフックする。すなわち、入力制御部120は、入力フィールドに対してユーザ操作(フォーカスインとフォーカスアウト)が行われたとき、ウィンドウ表示部110からイベント通知を受け取るようにする。ただし、制御方法テーブル131にフォーカス制御=Noneと登録されている場合、フォーカスアウトをフックしなくてもよい。
図16は、データ型判定の手順例を示すフローチャートである。図16に示す処理がサーバ装置200により前述のステップS22で実行される。
(ステップS220)クライアント支援部240は、クライアント装置100から項目名と座標を含む入力項目情報、および、プロセス名とウィンドウ名を含む識別情報を受信する。前述の通り、項目名はテキストまたは画像として表されている。
(ステップS221)クライアント支援部240は、項目名が画像で表されているか判断する。項目名が画像で表されている場合は処理をステップS222に進め、項目名がテキストで表されている場合は処理をステップS223に進める。
(ステップS222)クライアント支援部240は、OCRを利用して項目名に相当する画像からテキスト(ラベルのテキスト)を抽出する。
(ステップS223)クライアント支援部240は、ウィンドウ識別テーブル251から、受信した識別情報が示すウィンドウとそのウィンドウの入力項目を検索する。
(ステップS224)クライアント支援部240は、受信した識別情報によって示されるウィンドウがウィンドウ識別テーブル251に登録されているものか判断する。登録されているウィンドウである場合は処理をステップS225に進め、登録されていないウィンドウである場合は処理をステップS227に進める。
(ステップS225)クライアント支援部240は、ステップS223で検索された何れかの入力項目の座標が、入力項目情報が示す座標と一致するか判断する。一致する場合は処理をステップS226に進め、一致しない場合は処理をステップS227に進める。
(ステップS226)クライアント支援部240は、ステップS225で座標が一致すると判断された入力項目のデータ型を選択し、処理をステップS228に進める。
(ステップS227)クライアント支援部240は、データ型テーブル252から、受信した入力項目情報に含まれる項目名のテキストまたはステップS222で抽出された項目名のテキストに対応するデータ型を検索する。項目名のテキストがデータ型テーブル252に登録されていないときは、文字列型が選択される。
(ステップS228)クライアント支援部240は、ステップS226またはステップS227で選択されたデータ型をクライアント装置100に回答する。
図17は、ボタン評価の手順例を示すフローチャートである。図17に示す処理がクライアント装置100により前述のステップS13で実行される。
(ステップS130)入力制御部120は、制御方法テーブル131に決定制御=Noneと登録されているか、すなわち、決定ボタンの押下時に何もしないと設定されているか判断する。決定制御=Noneの場合は処理を終了し、それ以外の場合(決定制御=SuggestまたはAutoCorrect)は処理をステップS131に進める。
(ステップS131)入力制御部120は、ウィンドウに含まれるボタンを確認する。例えば、入力制御部120は、OSのAPIを利用して、ウィンドウの子要素としての表示部品の中からボタンを探す。プロセスがWebブラウザの場合、例えば、入力制御部120は、WebブラウザがもつHTML文書の中からボタンを示すタグを探す。
(ステップS132)入力制御部120は、ステップS131で確認された全てのボタンのボタン名および座標のリストを含むボタン情報を、識別情報(プロセス名とウィンドウ名)と併せてサーバ装置200に送信する。ボタンである表示部品からテキストを抽出できた場合、ボタン名としてテキストが送信される。テキストを抽出できなかった場合、ボタン名としてボタン部分をキャプチャした画像が送信される。
(ステップS133)入力制御部120は、サーバ装置200から決定ボタンであると判定されたボタンが通知される。複数のボタンのうち何れが決定ボタンであるかは、例えば、座標によって識別される。すると、入力制御部120は、ステップS131で確認したボタンのうち決定ボタンについての情報を決定ボタンテーブル133に登録する。
(ステップS134)入力制御部120は、決定ボタンテーブル133に登録されたボタンをフックする。すなわち、入力制御部120は、決定ボタンが押下されたとき、ウィンドウ表示部110からイベント通知を受け取るようにする。
図18は、決定ボタン判定の手順例を示すフローチャートである。図18に示す処理がサーバ装置200により前述のステップS23で実行される。
(ステップS230)クライアント支援部240は、クライアント装置100からボタン名と座標のリストを含むボタン情報、および、プロセス名とウィンドウ名を含む識別情報を受信する。前述の通り、ボタン名はテキストまたは画像として表されている。
(ステップS231)クライアント支援部240は、少なくとも1つのボタン名が画像で表されているか判断する。ボタン名が画像で表されている場合は処理をステップS232に進め、ボタン名がテキストで表されている場合は処理をステップS233に進める。
(ステップS232)クライアント支援部240は、OCRを利用してボタン名に相当する画像からテキスト(ボタンのラベル部分のテキスト)を抽出する。
(ステップS233)クライアント支援部240は、ウィンドウ識別テーブル251から、受信した識別情報が示すウィンドウとそのウィンドウのボタンの座標を検索する。
(ステップS234)クライアント支援部240は、受信した識別情報によって示されるウィンドウがウィンドウ識別テーブル251に登録されているものか判断する。登録されているウィンドウである場合は処理をステップS235に進め、登録されていないウィンドウである場合は処理をステップS237に進める。
(ステップS235)クライアント支援部240は、ステップS233で検索された座標が、ボタン情報が示す何れかのボタンの座標と一致するか判断する。一致する場合は処理をステップS236に進め、一致しない場合は処理をステップS237に進める。
(ステップS236)クライアント支援部240は、受信したボタン情報が示すボタンのうち、ステップS235でウィンドウ識別テーブル251に登録された座標と一致すると判断されたボタンを決定ボタンとして選択し、処理をステップS238に進める。
(ステップS237)クライアント支援部240は、ボタンテーブル253から、受信したボタン情報に含まれるボタン名のテキストまたはステップS232で抽出されたボタン名のテキストを検索する。そして、クライアント支援部240は、ボタン情報が示すボタンの中から、ボタンテーブル253に制御フラグ=YESと設定されているボタン名をもつボタンを決定ボタンとして選択する。なお、ボタン情報が示す何れのボタン名も、ボタンテーブル253に登録されていないか制御フラグ=NOと設定されている場合には、ウィンドウに決定ボタンが含まれていないと判断される。
(ステップS238)クライアント支援部240は、ステップS236またはステップS237で選択された決定ボタンをクライアント装置100に回答する。ただし、ステップS237において決定ボタンが選択されなかった場合、クライアント支援部240は、決定ボタンが存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、ウィンドウに含まれる何れのボタンもフックしない。
図19は、入力制御の手順例を示すフローチャートである。図19に示す処理がクライアント装置100により前述のステップS14で実行される。
(ステップS140)入力制御部120は、ウィンドウ表示部110からのイベント通知に基づいて、入力フィールドへのフォーカスインを検出する。
(ステップS141)入力制御部120は、入力項目テーブル132から、フォーカスインを検出した入力フィールドに対応するデータ型、すなわち、当該入力フィールドに対して入力されるべき文字列のデータ型を検索する。
(ステップS142)入力制御部120は、フォーカスインが検出された後に入力された文字列(日本語入力の場合はかな文字を含んでもよい)を、ステップS141で検索したデータ型と併せてサーバ装置200に送信する。入力された文字列を送信するタイミングは、例えば、所定数(例えば、3文字)以上の文字が入力されたときや、入力された文字に対する変換命令(例えば、かな漢字変換命令)が入力されたときが考えられる。
(ステップS143)入力制御部120は、サーバ装置200から入力すべき文字列の候補を受信し、文字列の候補のリストを入力フィールドの近傍に表示する。
(ステップS144)入力制御部120は、ステップS143で表示した文字列の候補の中からユーザにより選択された文字列を、入力フィールドに挿入する。
図20は、候補判定の手順例を示すフローチャートである。図20に示す処理がサーバ装置200により前述のステップS24で実行される。
(ステップS240)クライアント支援部240は、クライアント装置100からデータ型と現時点までに入力された文字列とを受信する。
(ステップS241)クライアント支援部240は、データ型テーブル252から、クライアント装置100から通知されたデータ型に対応する辞書を検索する。
(ステップS242)クライアント支援部240は、ステップS241の検索によって辞書が見つかったか判断する。辞書が見つかった場合は処理をステップS243に進め、見つからなかった場合は処理をステップS244に進める。
(ステップS243)文字変換部260は、ステップS241で検索された辞書を参照して、受信された文字列に対応する所定の表記形式に適合した1またはそれ以上の文字列の候補(入力フィールドに入力されるべき文字列の候補)を検索する。ここでの文字列の候補の検索では、いわゆるかな漢字変換機能や予測変換機能を利用してもよい。例えば、文字変換部260は、辞書に記載された複数の文字列の候補の中から、受信されたかな文字を読み仮名に含む1またはそれ以上の文字列の候補を選択する。
(ステップS244)クライアント支援部240は、ステップS243で検索された入力されるべき文字列の候補のリストを、クライアント装置100に送信する。なお、変換後の文字列の候補が1つも検索されなかった場合、クライアント支援部240は、文字列の候補が存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、例えば、入力された文字列が誤っている旨を表示すればよい。
図21は、検査・修正制御の手順例を示すフローチャートである。図21に示す処理がクライアント装置100により前述のステップS15で実行される。ここでは、決定ボタンの押下を契機とした検査・修正制御の手順例を説明する。
(ステップS150)入力制御部120は、ウィンドウ表示部110からのイベント通知に基づいて、決定ボタンが押下されたことを検出する。
(ステップS151)入力制御部120は、押下された決定ボタンの属するウィンドウに含まれている入力フィールドを1つ選択する。
(ステップS152)入力制御部120は、入力項目テーブル132から、ステップS151で選択した入力フィールドに対応するデータ型、すなわち、当該入力フィールドに対して入力されるべき文字列のデータ型を検索する。
(ステップS153)入力制御部120は、選択した入力フィールドに記入されている文字列を、ステップS152で検索したデータ型と併せてサーバ装置200に送信する。
(ステップS154)入力制御部120は、ステップS153で送信した文字列の検査結果をサーバ装置200から受信し、受信した検査結果がINVALID(不合格)であるか判断する。検査結果=INVALIDである場合は処理をステップS155に進め、検査結果=VALID(合格)である場合は処理をステップS158に進める。
(ステップS155)入力制御部120は、制御方法テーブル131に決定制御=Suggestと登録されているか判断する。決定制御=Suggestの場合は処理をステップS156に進め、それ以外の場合(すなわち、決定制御=AutoCorrectの場合)は処理をステップS157に進める。
(ステップS156)入力制御部120は、検査結果と併せてサーバ装置200から受信した修正後の文字列の候補を、入力フィールドの近傍に表示する。
(ステップS157)入力制御部120は、検査結果と併せてサーバ装置200から受信した修正後の文字列の候補を用いて入力フィールドを更新する。すなわち、入力制御部120は、入力フィールドの現在の文字列を受信した文字列に置き換える。
(ステップS158)入力制御部120は、ステップS151で全ての入力フィールドを選択したか判断する。全て選択した場合は処理をステップS159に進め、未選択の入力フィールドがある場合は処理をステップS151に進める。
(ステップS159)入力制御部120は、ウィンドウに含まれる全ての入力フィールドについて、サーバ装置200から受信した検査結果がVALIDであるか判断する。検査結果が全てVALIDであれば、入力制御部120は、決定ボタンの押下に対する制御をウィンドウ表示部110に戻す。ウィンドウ表示部110は、入力フィールドに現在記入されている文字列を入力データとして確定し、入力データをサーバ装置200に送信する。これは、決定ボタンをフックしない場合に、ユーザによる決定ボタンの押下を受けてウィンドウ表示部110が本来実行する処理である。
なお、フォーカスアウトを契機とした検査・修正制御では、フォーカスアウトが検出された入力フィールドについて上記のステップS152〜S157の処理が実行される。
図22は、検査・修正判定の手順例を示すフローチャートである。図22に示す処理がサーバ装置200により前述のステップS25で実行される。
(ステップS250)クライアント支援部240は、クライアント装置100からデータ型と入力フィールドに記入された文字列とを受信する。
(ステップS251)クライアント支援部240は、データ型テーブル252から、クライアント装置100から通知されたデータ型に対応するクレンジング関数を検索する。
(ステップS252)クライアント支援部240は、ステップS251の検索によってクレンジング関数が見つかったか判断する。クレンジング関数が見つかった場合は処理をステップS253に進め、見つからなかった場合は処理をステップS254に進める。
(ステップS253)クライアント支援部240は、クレンジング部270に用意された複数のクレンジング関数のうちステップS251で検索されたクレンジング関数を呼び出す。クレンジング部270は、呼び出されたクレンジング関数が担当するデータ型の辞書を参照して、受信された文字列をクレンジングする。すなわち、クレンジング部270は、受信された文字列が所定の表記形式に適合するか検査し、不合格(文字列が所定の表記形式に適合しない)と判断した場合は、修正後の文字列の候補を求める。クレンジング関数では、例えば、修正前の文字列から修正後の文字列を求めるためのルールが定義されている。例えば、住所の略称「○○町1−2−3」を住所の正式名称「○○町1丁目2番3号」に変換するためのルールが、住所型のクレンジング関数に定義されている。
(ステップS254)クライアント支援部240は、受信した文字列の検査結果と、検査結果が不合格の場合は修正後の文字列の候補とをクライアント装置100に送信する。なお、修正後の文字列の候補が求まらなかった場合、クライアント支援部240は、修正候補が存在しない旨をクライアント装置100に通知する。その場合、クライアント装置100は、例えば、入力された文字列が誤っている旨を表示すればよい。
第2の実施の形態の情報処理システムによれば、入力された文字列がデータベースサーバ32に保存される前に、その文字列が所定の統一された表記方法に適合しているか検査されて修正後の文字列の候補が提示される。よって、表記方法に一貫性のないデータがデータベースに格納されることを抑制できる。また、サーバ装置200により、クライアント装置100,100aから通知される項目名に基づいて入力フィールドのデータ型が判定され、以降は判定されたデータ型に対応する辞書を用いて文字列が検査される。よって、既存のウィンドウ定義やサーバ装置200aのデータ処理部220に相当するプログラムなどを改変しなくても、入力支援機能を情報処理システムに容易に追加できる。
なお、第1の実施の形態の機能は、端末装置10や管理装置20にプログラムを実行させることで実現できる。また、第2の実施の形態の機能は、クライアント装置100,100aやサーバ装置200,200aにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体43)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体に記録されたプログラムを、HDD103などの他の記録媒体に複製してから(インストールしてから)実行するようにしてもよい。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
3 ネットワーク
10 端末装置
11 表示部
11a 入力フィールド
12,22 通信部
13,23 制御部
20 管理装置
21 記憶部
21a,21b 辞書

Claims (5)

  1. 表示部を備える端末装置と前記端末装置からネットワークを介してアクセス可能な管理装置とを含むシステムが実行する入力支援方法であって、
    入力フィールドを含み、前記表示部への表示対象とされた画面の画面データから、前記入力フィールドの項目名を示す項目情報を抽出し前記項目情報を前記端末装置から前記管理装置に送信し、
    項目名とデータ型との対応関係を示すデータ型情報を参照して、前記管理装置が受信した前記項目情報に基づいて、前記入力フィールドのデータ型を判定し、
    それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、前記判定したデータ型に応じた辞書を選択し、
    前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を、前記管理装置から前記端末装置に送信する、
    入力支援方法。
  2. 前記入力フィールドに対する入力操作を検出し、前記入力操作に応じた入力データを前記端末装置から前記管理装置に送信し、
    前記選択された辞書に含まれる複数のデータの候補の中から、前記管理装置が受信した前記入力データと置き換えて前記入力フィールドに入力される1またはそれ以上のデータの候補を選択する、
    請求項1記載の入力支援方法。
  3. 前記入力フィールドに入力された入力データを確定するための前記表示部に表示された表示部品に対する選択操作を検出し、前記選択操作を受けて前記入力データを前記端末装置から前記管理装置に送信し、
    前記選択された辞書に含まれる複数のデータの候補の中から、前記管理装置が受信した前記入力データと置き換えて前記入力フィールドに入力される1またはそれ以上のデータの候補を選択する、
    請求項1記載の入力支援方法。
  4. 表示部を備え、入力フィールドを含み、前記表示部への表示対象とされた画面の画面データから前記入力フィールドの項目名を示す項目情報を抽出し、前記項目情報をネットワークを介して送信する端末装置と、
    それぞれが複数のデータの候補を含み所定条件に基づいて分類された複数の辞書と、項目名とデータ型との対応関係を示すデータ型情報とを記憶する記憶部を備え、前記データ型情報を参照して前記端末装置から受信した前記項目情報に基づいて前記入力フィールドのデータ型を判定し、前記判定したデータ型に応じた辞書を前記複数の辞書の中から選択し、前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を前記端末装置に送信する管理装置と、
    を有する情報処理システム。
  5. 端末装置からネットワークを介してアクセス可能なコンピュータに、
    前記端末装置から、前記端末装置が備える表示部への表示対象とされた画面の画面データから抽出された、前記画面に含まれる入力フィールドの項目名を示す項目情報を受信し、
    項目名とデータ型との対応関係を示すデータ型情報を参照して、受信した前記項目情報に基づいて、前記入力フィールドのデータ型を判定し、
    それぞれが複数のデータの候補を含み、所定条件に基づいて分類された複数の辞書の中から、前記判定したデータ型に応じた辞書を選択し、
    前記選択された辞書に基づいて、前記項目情報に対応する少なくとも1つのデータの候補を前記端末装置に送信する、
    処理を実行させるプログラム。
JP2014523493A 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム Active JP5928589B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067154 WO2014006715A1 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP5928589B2 true JP5928589B2 (ja) 2016-06-01
JPWO2014006715A1 JPWO2014006715A1 (ja) 2016-06-02

Family

ID=49881505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014523493A Active JP5928589B2 (ja) 2012-07-05 2012-07-05 入力支援方法、情報処理システムおよびプログラム

Country Status (3)

Country Link
US (1) US20150106701A1 (ja)
JP (1) JP5928589B2 (ja)
WO (1) WO2014006715A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6514084B2 (ja) * 2015-10-05 2019-05-15 日本電信電話株式会社 操作支援システム、操作支援方法、および、操作支援プログラム
US10037238B2 (en) * 2016-02-10 2018-07-31 Dell Products, L.P. System and method for encoding exception conditions included at a remediation database
US10416854B2 (en) * 2017-03-07 2019-09-17 Google Llc Autofill for a user device
JP2019095848A (ja) * 2017-11-17 2019-06-20 富士ゼロックス株式会社 文書処理装置およびプログラム
JP7263712B2 (ja) * 2018-08-23 2023-04-25 富士通株式会社 制御方法,情報処理装置および制御プログラム
CN116700725B (zh) * 2023-08-04 2023-10-31 太平金融科技服务(上海)有限公司 页面生成方法、装置、计算机设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62278663A (ja) * 1986-05-28 1987-12-03 Hitachi Ltd ワ−ドプロセツシング方式
JP3071703B2 (ja) * 1997-01-20 2000-07-31 株式会社ジャストシステム 表作成装置およびその方法
US7747639B2 (en) * 2005-08-24 2010-06-29 Yahoo! Inc. Alternative search query prediction
JP2009020865A (ja) * 2007-06-14 2009-01-29 Ntt Docomo Inc 文字入力支援方法、文字入力支援システム、文字入力支援プログラム、ユーザ端末、文字変換方法及び文字変換プログラム

Also Published As

Publication number Publication date
JPWO2014006715A1 (ja) 2016-06-02
WO2014006715A1 (ja) 2014-01-09
US20150106701A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
JP5928589B2 (ja) 入力支援方法、情報処理システムおよびプログラム
US11431745B2 (en) Techniques for curating threat intelligence data
US8601059B2 (en) Sharing form training result utilizing a social network
JP2017224184A (ja) 機械学習装置
WO2022086872A1 (en) Distributed systems and methods for facilitating website remediation and promoting assistive technologies and detecting compliance issues
JP2006268638A (ja) 文書差分検出装置
JP6750057B2 (ja) ジオロケーションを使用して位置決めされた画像を用いた施設の固定
US10528678B2 (en) Digital content translation techniques and systems
JP5898153B2 (ja) 省略語管理プログラム、省略語管理装置、フルスペル表示プログラムおよびフルスペル表示装置
US20110282978A1 (en) Browser plug-in
JP2012234340A (ja) 商品キーワード管理システム
JP2008021211A (ja) 質問生成装置及びプログラム
JP7360047B2 (ja) 検索処理プログラム、検索処理方法および検索処理装置
US20100185608A1 (en) Information retrieval device, information retrieval system, information retrieval program and information retrieval method
JP6019848B2 (ja) プログラム、情報処理装置、及び情報処理方法
WO2015145525A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6425989B2 (ja) 文字認識支援プログラム、文字認識支援方法及び文字認識支援装置
JP5108660B2 (ja) 情報収集方法、装置及びプログラム
JP5245573B2 (ja) 関連記事情報表示データ作成方法およびサーバ
US20170278077A1 (en) Input assistance method, computer-readable recording medium, and input assistance device
JP2009223538A (ja) 情報提供方法、情報提供装置、情報提供システム及びコンピュータプログラム
US11455311B2 (en) Multi-locator system for tracking data elements in resources
US11880425B2 (en) System and method for identifying and correcting webpage zone target misidentifications
JP6734538B2 (ja) 評価プログラム、評価方法、および評価装置
US20220197776A1 (en) Information processing apparatus, information processing method, and storage medium

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160411

R150 Certificate of patent or registration of utility model

Ref document number: 5928589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150