JP4382663B2 - 簡潔言語学データを生成かつ使用するシステムおよび方法 - Google Patents

簡潔言語学データを生成かつ使用するシステムおよび方法 Download PDF

Info

Publication number
JP4382663B2
JP4382663B2 JP2004518331A JP2004518331A JP4382663B2 JP 4382663 B2 JP4382663 B2 JP 4382663B2 JP 2004518331 A JP2004518331 A JP 2004518331A JP 2004518331 A JP2004518331 A JP 2004518331A JP 4382663 B2 JP4382663 B2 JP 4382663B2
Authority
JP
Japan
Prior art keywords
word
words
character
frequency
index
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.)
Expired - Lifetime
Application number
JP2004518331A
Other languages
English (en)
Other versions
JP2005531857A (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.)
2012244 Ontario Inc
Original Assignee
2012244 Ontario Inc
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
Priority claimed from US10/289,656 external-priority patent/US7269548B2/en
Application filed by 2012244 Ontario Inc filed Critical 2012244 Ontario Inc
Publication of JP2005531857A publication Critical patent/JP2005531857A/ja
Application granted granted Critical
Publication of JP4382663B2 publication Critical patent/JP4382663B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing

Description

(関連する出願への相互参照)
本出願は、2002年7月3日に出願された米国仮出願番号第60/393,903号からの優先権を主張している。この仮出願の図面を含む全体の開示は、本明細書によって参考として本出願中に援用される。
(背景)
(発明の分野)
本発明は、一般に、言語学データに、そして詳細には、テキスト処理およびテキスト入力のための言語学データの記憶および使用に関する。
(技術の状態の説明)
モバイルデバイスおよび異なるタイプの埋め込みシステムの発展する使用は、これらデバイスの開発者および製造業者が、なお良好に機能する最小のメモリー使用法を必要とする製品を作ることに挑戦させる。これら製品の鍵となる要素は、ユーザーインターフェースであり、これは、代表的には、ユーザーがこの製品によって処理されるテキストに入ることを可能にする。
言語学データの1つの適用は、ユーザーによって入力されるワードの最初の文字に基づくワード完了を予測することによりテキスト入力を容易にすることである。言語学データから検索される予測のセットが与えられると、ユーザーは、予測の1つを選択し得、そしてそれ故、ワード中の残りの文字を入力する必要はない。
ユーザー入力の予測は、モバイルデバイス中に含められるとき特に有用である。なぜなら、このようなデバイスは、代表的には、サイズが拘束されるキーボードを含む入力デバイスを有するからである。入力予測は、このようなデバイスに対してワードを入力するために必要なキーストロークの数を最小にする。
入力予測はまた、テキストが縮小キーボードを用いて入力されるとき有用である。縮小キーボードは、入力され得る文字より少ないキーを有し、それ故、キーストロークの組み合わせは多義性である。入力予測のために言語学データを用いるシステムは、ユーザーがこのような多義性を容易に解決することを可能にする。言語学データはまた、縮小キーボードを用いて入力されている個々のキーストロークを明確にするために用いられ得る。
テキスト入力および処理のために用いられる言語学データの記憶のための現存する解決法は、ハッシュテーブル、ツリー、言語学データベースまたは平易ワードリストに依存する。これら言語学データフォーマットによってカバーされるワードの数は、記憶されたワードに制限される。
現存するテキスト入力予測システムで用いられている言語学データは、代表的には、コーパスとして知られ、テキストまたはスピーチのいずれかである、言語の集団から派生する。コーパスは、言語の特徴を確立するための言語の分析、特定の状況における言語の使用に関するヒトの挙動の分析、システムを特定の言語学環境にその挙動を適合させるために訓練すること、言語に関する理論を経験的に確証すること、または言語処理技法または適用のために試験セットを提供しそれが実際にどのように働くのかを確立することのような使用を有している。数億のワードの国のコーパスがあり、そしてまた、特定の目的のために構築されているコーパスがある。目的特異的なコーパスの例は、話された命令を認識するボイス作動制御システムのシミュレーションに対して車ドライバーが話すことを記録ことから構成されるものがある。国のコーパスの例は、英語の言語である。
(要約)
簡潔言語学データを生成するためのシステムが提供される。このシステムは、コーパスおよび言語学データアナライザを備える。この言語学データアナライザは、コーパス中に出現するワードの頻度を算出する。この言語学データアナライザはまた、ワード中に特有の各文字を文字インデックスにマップし、そしてこのワード中の各文字を、この文字がマップされる文字インデックスで置換する。この言語学データアナライザはまた、これらワード中に出現する文字のシークエンスを置換インデックスにマップし、そして各ワード中の文字の各シークエンスをこれら文字のシークエンスがマップされる置換インデックスで置換する。言語学データアナライザはまた、これらワードを、各グループが共通のプレフックスで開始するワードを含むグループに整列し、そして各プレフィックスを、このプレフィックスで開始するワードのグループに対する位置情報にマップする。上記簡潔言語学データは、特有文字、文字インデックス、置換インデックス、位置情報、ワードのグループおよびワードの頻度を含む、システム。
複数のワードのための簡潔言語学データ構造もまた提供される。これらワードはグループに組織化され、各グループが共通プレフィックスを有するワードを含む。該簡潔言語学このデータ構造は、該ワード中の各特有の文字から構成されるアルファベット、該アルファベット中の各文字を文字インデックスにマップするための文字マッピングテーブル、該ワードからの文字のシークエンスを置換インデックスにマップするための置換テーブル、および該ワードを記憶するための複数のワード定義テーブルから構成される。各ワード定義テーブルは、該グループの1つに含まれるワードの各々を記憶する。この簡潔言語学データ構造は、該ワード定義テーブルを位置決めするためのオフセットテーブルをさらに備える。上記共通プレフィックスの各々について、このオフセットテーブルは、上記共通プレフィックスで開始するワード定義テーブルの位置を含む。上記ワード定義テーブル中ワードの各々は、該ワード中の各文字を該文字が該文字マッピングテーブルによりマップされる該文字インデックスで置換されることにより、かつ該ワード中に出現する該置換テーブルからの文字の各シークエンスを、文字の該シークエンスがマップされる該置換インデックスで該置換テーブルによって置換することによりコード化される。各ワード定義テーブル中のワードに対する該共通プレフィックスは除去され。
簡潔言語学データを生成する方法もまた提供される。この方法は、コーパス中で最も頻繁に生じる複数ワードを含むワードリストを生成する工程で始まる。この方法では、該ワードリスト中のワードをアルファベットでソートする工程が続く。この方法では、該ワード中の文字を、上記文字マッピングテーブル中に含まれる関連する文字インデックスで置換することにより上記ワードリスト中のワードをコード化するための文字マッピングテーブルを生成する工程が続く。この方法では、該ワードリスト中のワードをグループに分離する工程が続き、ここで、各グループにおけるワードが共通プレフィックスを有している。この方法では、上記ワードを、上記グループ中のワード中の文字シークエンスを置換テーブルによって文字シークエンスにマップされる置換インデックスで置換することにより、上記グループにコード化するための置換テーブルを生成する工程が続く。この方法では、上記文字マッピングテーブルおよび置換テーブルを用いて、上記グループ中の上記ワードをバイトシークエンスにコード化する工程が続く。この方法では、ワード定義テーブルを生成する工程、およびこのワード定義テーブル中にコード化されたワードを記憶する工程が続く。この方法では、コード化されたワードのグループを位置決めするためのオフセットテーブルを生成する工程が続く。この方法は、上記文字マッピングテーブル、上記置換テーブル、上記ワード定義テーブル、および上記オフセットテーブルをソートする工程で終了する。
(詳細な説明)
統計学的文字置換でワードプレフィックス(接頭語)を索引することに基づく、簡潔言語学データを生成および用いるシステムおよび方法が提供される。このシステムが言語学データを記憶する方法は、最小のメモリー使用法を必要とし、そして特定されたプレフックスおよびそれらの関連する頻度で始まるワードへの非常に迅速なアクセスを提供する。
図1は、言語学データがテキスト入力予測のための用いられるシステムのブロック図である。このシステムは、言語学データ100、テキスト入力論理ユニット102、およびユーザーインターフェース103を含む。このシステムは、テキスト入力を必要とする任意の計算デバイス上で履行され得るが、モバイル通信デバイスのような、遅いCPUおよび顕著なRAMおよびROM制限をもつ埋め込みデバイスに特に適している。
ユーザーインターフェース103は、ユーザーがこのシステムにテキストを入力することを可能にするテキスト入力デバイス104を含む。このテキスト入力デバイス104は、テキスト入力を可能にする、QWERTY、AZERTYまたはDvorakキーボード、または縮小キーボードのような任意のデバイスである。このユーザーインターフェース103はまた、テキストをユーザーに表示するテキスト出力デバイス106を含む。テキスト出力デバイス106は、モバイルデバイスまたはコンピューターのスクリーン上に提示されるグラフィックコンポーネントであり得る。
言語学データ100は、統計学的文字置換でワードプレフックスを索引することに基づき、そして以下により詳細に記載される。
テキスト入力論理ユニット102は、例えば、モバイルデバイス中に含まれているコンピュータープロセッサによって実行されるコンピューター指示によって履行され得る。
このテキスト入力論理ユニット102は、テキスト入力デバイス104を用いてユーザーにより入力されたテキストを受ける。このテキスト入力論理ユニット102は、次いで、テキスト出力デバイス106を用いてユーザーに、ユーザーが入力を開始したワードの予測を提示する。これらの予測は、ユーザーによってテキストとして入力されるプレフィックスで開始する最も可能性の高い全体ワードであり、そして言語学データ100からのテキスト入力論理ユニット102によって検索される。次いで、ユーザーは、テキスト入力デバイス104を用いて予測の1つを選択し得る。
このテキスト入力デバイス104が縮小キーボードである場合、テキスト入力論理ユニット102はまた、縮小キーボードから受ける個々のキーストロークを明確にし、ユーザーに、言語学データ100中のワードに基づく最も可能性の高い文字を提示する。
図2は、簡潔言語学データを生成するシステムのブロック図である。言語学データアナライザ202は、以下に詳細に説明される言語学データ204を、英語またはフランス語のような国の言語のコーパス200を分析することにより生成する。この言語学データアナライザ202は、コーパス200中に出現するワードの頻度を算出し、ワード中の各特有の文字を文字インデックスにマップし、ワード中の文字をこれら文字がマップされる文字インデックスで置換し、ワード中に出現する文字のシークエンスを置換インデックスにマップし、ワード中の文字のシークエンスを、文字のシークエンスがマップされる置換インデックスで置換し、これらワードを、各グループが共通プレフィックスで開始するワードを含むグループに整列し、そして各プレフィックスを、このプレフィックスで開始するワードのグループに位置情報をマップする。
上記言語学データアナライザ202によりコーパス200の分析は、コーパス200中に出現する特有のワードの絶対頻度の算出を含む。この頻度の算出およびワードリストの作製のための方法は、図3および図4に説明される。一旦、ワードリストがコーパス200から得られると、このワードリストを用いて言語学データ204を生成する。この言語学データ204は、この特有文字、文字インデックス、置換インデックス、位置情報、これらワードのグループおよびこれらワードの頻度を含む。言語学データ204を生成する方法は図5に説明される。言語学データアナライザ202によって生成される言語学データ204は、図6に示される。
コーパス200中に見出されるワードの特定のグループの絶対頻度は、代替的に、このグループを異なるファイルに分離すること、およびこのファイルにカスタム重みを割り当てることにより改変され得る。このグループは、場所の名前または医療用語のようなドメイン特異的であるワードから構成され得、そして、ユーザー選択に基づき、得られるワードリスト中に含まれなければならない。結果として、ワードのこのグループに対する頻度の絶対値は、このグループに割り当てられた重みを用いて改変され得、その結果、ワードのこのグループは、それらがそうでなければ有するであろうと異なる頻度を有する。
図3は、ソースファイルをフィルターにかける方法を示すフローチャートである。ソースファイルは、コーパスを備えるテキストを含む。このフィルターにかける方法は、コーパス中のワードの頻度を算出するで最初の工程である。
この方法は、コンテンツのソースファイルを読み取る工程300で始まる。ソースファイルが読まれた後、この方法では、プロパティファイル中に記憶され得るユーザー選択に従って、ファイルからテキストの置換を実施する工程302が続く。このユーザー選択は、無効または所望されない文字を置換するために、テキストに適用される規則式を特定する。例えば、ユーザーは、ワードリスト中に含まれる通り名(street name)を欲しないかも知れないか、またはイタリアのユーザーは、非英字が続く「e」を
Figure 0004382663
で置換することを欲するかも知れず、またはユーザーは、最後の文章が著者名のみを含むことが期待されるとき、テキストの最後の文章をスキップすることを欲するかも知れない。
この方法では、次に、ソースファイルのファイル拡張子により示されるタイプに対応するフィルターを得る工程304が続く。例えば、ファイル拡張子が「.xml」であれば、このファイルは、eXtensive Markup Langauage(XML)ドキュメントを含むと推定され、そこでXMLフィルターが得られる。同様に、ファイル拡張子が「.html」である場合、そのときは、Hyper Text Markup Language(HTML)フィルターが得られ、そしてファイル拡張子が「.txt」である場合、そのときは、テキストフィルターが得られる。その他のファイル拡張子もまた、さらなるフィルターにマップされ得る。
工程304で得られたフィルターは、次いで、コーパスの一部ではなく、むしろフォーマット定義の一部であるワードを取り除くために工程306で適用される。例えば、XMLフィルターは、ファイルから読まれたテキストからマークアップタグを除去する。
この方法では、工程306から得られるデータからワード0抽出する工程308、および工程310でフィルターにかけられたワードファイルにこの抽出されたワードを書き込むことが続く。
工程312で、フィルターにかけるより多くのソースファイルがあることが決定される場合、そのときは、この方法は、工程300で継続される。そうでなければ、この方法は、工程314で終了する。この方法が終了するとき、コーパスを備えるすべてのソースファイルはフィルターにかけられている。
図4は、ワード頻度算出の方法を示すフローチャートである。この方法は、図3に示される方法によって生成されたフィルターにかけられたワードファイルを利用する。このフィルターにかけられたワードファイルからのワードは、ワードツリー中にロードされる。このワードツリーは、最小のメモリーを用いて特有のワードおよびそれらの頻度を記憶するために効率的な構造である。このツリーは、フィルターにかけられたワードファイル中に頻繁に生じるワードが、ツリーの内部ノード中に位置決めされ、そしてより少ない頻度で生じるワードがツリーの葉に位置決めされるように組織化されている。このツリーの各ノードは、特有のワードおよびこのワードの絶対頻度を含む。ワードは、このツリーがバランスのとれたままであることを確実にする様式で、ツリーかに付加またはそれから削除される。
この方法は、フィルターにかけられたワードのファイルを読む工程400で開始する。この方法では、このフィルターにかけられたワードのファイルからワードを読み取る工程402、および、このワードがワードツリー中に既に存在しない場合、それをワードツリーに付加することが続く。このツリー中のワードと関連する頻度は増分される。
この方法では工程404が続き、ツリー中のノードの数が、プロパティファイル中で特定され得る予備定義された限度を超えるか否かが決定され、次いで、この方法では工程408が続く。そうでなければ、この方法では工程406が続く。
工程406では、ワードツリーが、それがもはやサイズ限度を超えないように収縮される。このツリーは、葉ノード中に位置決めされている最も少ない頻度で用いられるワードをツリーから削除することにより収縮される。次いで、この方法では、工程408が続く。
工程408は、上記フィルターにかけられたワードのファイル中にフィルターにかけられた任意のワードからあるか否かを決定する。それが存在する場合、そのときは、この方法では、工程402が続く。フィルターにかけられたワードが残っていない場合、そのときは、この方法では、工程410が続く。
工程410は、処理するための任意の残存するフィルターにかけられたワードファイルが存在するか否かを決定する。存在する場合、そのとき、この方法では、工程400が続く。そうでなければ、この方法では、工程412が続く。
工程412では、ワードツリーに付加されたワードおよびそれらの頻度を記憶するワードリストが出力ファイルに書き込まれる。
図4に示される方法は、非常に大きなコーポラでさえ、単一のコンピューターによって処理されることを可能にする。得られるワードリストは、コーパス中の最も頻繁に生じるワードの予備定義された限度数まで、およびこのワードに関連する絶対頻度を含む。
図5は、簡潔言語学データを生成する方法を示すフローチャートである。この方法は、簡潔言語学データを生成するためのワード頻度情報を含むワードリストを使用し、そしてワードプレフィックスを索引すること、および統計学的文字置換を含む。
この方法は、工程500で開始し、ここで、ワードリストが、図4に示される方法のようなワード頻度算出の方法により生成された出力ファイルから読み取られる。ワードリスト中のワードは、次いで、アルファベット順で記憶される。
この方法では、ワードリスト中の絶対頻度を規格化する工程501が続く。各絶対頻度は、相対頻度によって置換される。絶対頻度は、ユーザーによって特定され得る関数を適用することにより相対頻度にマップされる。可能な関数は、放物線、ガウシアン、双曲線または線形分布を含む。
この方法では、文字マッピングテーブルを生成する工程502が続く。この文字マッピングテーブルは、この方法の次の工程でワードをコード化するために用いられる。コード化が実施されるとき、当初のワード中の文字は、文字マッピングテーブル中のこれら文字の文字インデックスで置換される。アルファベット言語のアルファベットのサイズは、256よりかなり少ないので、単一バイトが、ユニコード文字データを記憶するために十分である。例えば、ユニコード文字0×3600は、文字マッピングテーブル中のインデックス10で位置決めされる場合、10として表現され得る。この文字マッピングテーブル中の文字の位置は、重要ではなく、そしてこれら文字が所定のワードリスト中に出現する順序に基づく。
この方法では、これらワードリスト中のワードをグループに分割する工程504が続く。各グループ中のワードは、所定長さの共通プレフィックスを有し、そして頻度によりソートされる。ワードは、最初、2文字長さであるプレフィックスによりグループ分けされる。同じ2文字プレフィックスで開始するワードが256を超えて存在する場合、そのときは、さらなる分離がより長いプレフィックスで実施される。例えば、ワードリストが、プレフィックス「co」で520ワードを含む場合、そのときは、このグループは、プレフィックス「com」、「con」などを用いてグループに分割される。
この方法では、ワードの各グループに対する頻度セットを生成する工程506が続く。頻度情報を記憶するために必要なスペースの量を低減するために、各グループ中のワードの最大頻度のみが完全な正確さで保持される。その他の各ワードの頻度は、そのグループ内の最大頻度のワードのパーセントとして保持される。この技法は、正確さのある程度の損失を引き起こすが、テキスト入力予測の目的には受容可能であり、そして頻度情報のためのより小さな記憶要求を生じる。
この方法では工程508が続く。ワードリスト中にワードを記憶するために必要なデータの量を低減するために、これらワード中で最も頻繁に生じる文字シークエンスが置換インデックスで置換される。n数の文字のシークエンスであるnグラムの置換は、多くの文字が単一文字により表現されることを可能にする。この情報は、置換テーブル中に記憶される。この置換テーブルは、各nグラムが置換インデックスにマップされるように索引が付けられる。次いで、これらワードは、各nグラムを、あるワード中にnグラムが出現する毎に置換テーブル中のその置換インデックスで置換することにより簡潔にされ得る。
この方法では、ワードグループを、上記のような文字マッピングテーブルおよび置換テーブルを用いて、バイトシークエンスにコード化する工程510が続く。ワードをグループに収集するために用いたプレフィックスは、これらワード自身から除かれる。その結果、各ワードは、そのプレフィックスが与えられると、当初のワードを見出すために必要なすべてのデータを含むバイトシークエンスによって表現される。
この方法では、ワード定義テーブルを生成する工程511が続く。このワード定義テーブルは、工程506で算出された頻度セットおよび510で生成されたコード化ワードを記憶する。
この方法では、オフセットテーブルを生成する工程512が続く。このオフセットテーブルは、ワードのグループを表現するバイトシークエンスを含む。このテーブルは、特定のワードグループを表現するバイトシークエンスの開始の識別を可能にする。このオフセットテーブルは、共通のプレフィックスで開始する特定のグループのためのコード化ワードを含むバイト配列を位置決めするために用いられる。
この方法は、工程514で終わる。この工程では、上記方法から得られる言語学データが、作製されたテーブル中に記憶されている。これらデータテーブルは、文字マッピングデータ、置換テーブル、オフセットテーブルおよびワード定義テーブルを含み、出力ファイル中に記憶される。
簡潔言語学データを生成する方法の間に集められた統計学的データは、必要に応じて、工程514で記憶され得る。この統計学的データは、置換テーブル中に記憶されたnグラムが言語学データ中のワード中に出現する頻度、言語学データ中のワードの数、ワードリストおよびワードリストが生成されたコーパス、および言語学データ中のワードの数、ワードリストおよびコーパス間の比率を含む。
図6は、簡潔言語学データのフォーマットのブロック図である。このデータフォーマットの主要な目的は、データを生成および解釈するために必要なメモリーの使用およびコンピューター指令の数を最小にしながら、この言語学データの解釈の単純さを保存することである。フォーマット中の言語学データは、言語学データアナライザ202(図2)によって生成され、そして図5によって示される方法の出力である。
このフォーマットは、言語学データがワード頻度情報ありまたはなしで記憶されることを可能にする。この言語学データが頻度情報を含むとき、以下に説明される学習能力が履行され得、そしてこのデータは、縮小キーボードで入れられた入力を予測するために用いられ得る。頻度情報が含められないとき、そのときは、3文字長より少ないワードは含められない。なぜなら、それらは、ユーザー入力を予測するために有用ではないからである。
このフォーマットは、多数のテーブルが続くヘッダー602を含むコンピューターファイルの構造を定義する。
ヘッダー602は、ファイルのフォーマットを識別する数であるマジックナンバーを含むシグネチャーを含む。ヘッダー602はまた、ファイル中に含まれた言語学データのバージョンおよび優先度を特定する情報を含む。優先度情報は、言語学データを含む複数ファイルがテキスト入力論理ユニットにより用いられるとき、言語学データに相対的重要性を割り当てるために用いられる。ヘッダー602はまた、ファイルが頻度情報を含むか否かを示す。
ヘッダー602には、インデックステーブル604が続く。このインデックステーブル604は、以下に定義される残りのテーブルへのファイル中のインデックスを含み、そしてまた、付加されるべきさらなるテーブルを許容する。テーブルは、インデックステーブル604中のテーブルのエントリーで見出されるインデックス情報を用いて位置決めされる。
インデックステーブル604には、名前テーブル606が続く。この名前テーブル606は、上記ワードリストを識別する名前を含む。
この名前テーブル606には、文字マッピングテーブル608が続く。
この文字マッピングテーブル608は、このワードリストのために用いられるアルファベットを含み、そして文字インデックスにアルファベット中の各文字をマップする。このアルファベットは、ワードリスト中のワードで用いられる各特有の文字からなる。
この文字マッピングテーブル608には、置換テーブル610が続く。この置換テーブル610は、2グラム(bi−gram)置換テーブルを含み、3グラム、4グラムなどのような定義されるより高いオーダーのnグラムの各グループのためのテーブルが続く。各nグラムは、置換テーブル610により置換インデックスにマップされる。
置換テーブル610には、オフセットテーブル612が続く。このテーブルは、以下に説明されるように、位置決めされるべきワード定義テーブル中のワードの共通プレフィックスに基づき、ワード定義を位置決めするために用いられる。アルファベット中の2文字の各組み合わせについて、このテーブルは、文字のその組み合わせで開始するワードを含むワード定義テーブルのファイル中のオフセットを含む。空のグループについては、このオフセットは、次の空でないオフセットに等しい。各オフセットはまた、以下に説明されるように、ファイル中のオフセットに位置するワード定義テーブルが単純であるか、または複合であるかを特定する。
2文字シークエンスが与えられると、このオフセットは、式:((アルファベット中の最初の文字の位置*アルファベット中の文字の数)+アルファベット中の第2番目の文字の位置)によって定義されるオフセットテーブル中のインデックスに位置決めされる。例えば、アルファベットが英語である場合、そのときは、アルファベットの数は26であり、そこで、オフセットテーブル中の「ab」のインデックスは、((0*26)+1)であり、これは1に等しい。これ故、オフセットテーブル612のサイズは、アルファベットの長さに基づく。
屈折テーブルは、示されていないが、必要に応じて、言語学データ中に含まれ得る。この屈折テーブルは、ワード定義において用いられ得るワードサフックスを記憶する。屈折分析の方法は、図9に示される。
言語学データはまた、ワード定義テーブル614を含む。ワード定義テーブルは、単一のワードグループからのワードおよびこれらワードに関連する頻度を記憶し、そして単純または複合のいずれかであり得る。単純テーブルは、2文字プレフィックスのみによりグループ分けされるワードを定義するために用いられる。複合テーブルは、より長い長さのプレフィックスによりグループ分けされるワードを定義するために用いられる。
定義テーブル614中のワードは、文字マッピングテーブル608および置換テーブル610を用いてコード化される。ワード中の文字は、文字マッピングテーブル608からの対応する文字インデックスで置換され、そして置換テーブル610中にあるnグラムは、ワード中で置換テーブル610中のそれらの対応する置換インデックスで置換される。オフセットテーブル612は、アルファベット中の各2グラムプレフィックスを、そのプレフィックスで開始するワードを定義するファイル中の位置に特有にマップするので、これらプレフィックスは、保持される必要はなく、そしてそれ故、これらのワード定義から除去される。
大文字ワードは、必要に応じて、付加的な特別の文字でマークされ得る。この特別の文字は、文字マッピングテーブル608中に記憶され、アルファベットを、ワードリスト中のワードの言語中で用いられない付加的な文字で拡張する。
単純ワード定義テーブルは、グループのコード化ワード、およびこれらワードに関連する頻度を含む。これら頻度は、これら頻度を、それらの値が所定の範囲内にあるように変換する規格化関数を適用することにより規格化される。グループ中のワードの最大頻度ののみが、完全な正確さでテーブル中に記憶される。すべてのその他の頻度は、この最大頻度のパーセントとして記憶される。コード化されたワードは、頻度によって記憶される。しかし、以下に説明されるように、学習機能が適用される場合、そのときは、初期ソーティングはもはや有効ではなく、そしてコード化されたワードは、再ソートされる必要があり得る。
当業者によって認識されるように、文字は、ビットのシークエンスによりコンピューターシステム中で表現され得る。ワード定義テーブル614中のワードは、最も重要なビットセットをもつ文字によって分離される。文字がその最も重要なビットセットを有する場合、そのときは、それは、ワード中の最後の文字である。次に、この文字は、その最も重要なビットがこの文字の値を決定する目的のためにセットされないように処理され、その結果、この最も重要なビットは、文字の値に影響しない。
図7は、複合ワード定義テーブルのブロック図である。この複合ワード定義テーブルは、ローカルワード定義テーブル708を含み、その各々が上記に記載のような単純または複合ワード定義テーブルである点で帰納的である。
このローカルワード定義ファイル708は、より高いオーダーのnグラムプレフィックスによってグループ分けされるワードを定義する。このローカルワード定義テーブル708の各々は、共通プレフィックスを有するワード定義テーブルにより記憶されるワードを記憶し、ここで、このローカルワード定義テーブル708の各々におけるワードに対するこの共通プレフィックスは、ワード定義テーブル中のワードに対する共通プレフィックスより長い。ローカルワード定義テーブル708中のワードの共通プレフィックスは、除去される。
例えば、ワードグループがプレフィックス「co」で開始されるワードを含み、そしてそのプレフィックスで開始する256以上のワードがある場合、そのときは、「co」プレフィックスワードに対する複合ワード定義テーブルは、「com」、「con」などで開始するワードを定義するローカルワード定義テーブル708を含む。「com」プレフィックスのワードに対するテーブルは、「comm」および「comp」で開始するワードのためのローカルワード定義テーブル708をさらに含む複合ワード定義テーブルであり得、その一方、「con」プレフィックスのワードに対するテーブルは、「con」で開始するワードのみを含む定義テーブルであり得る。
ローカルワード定義テーブル708を含むことに加え、各ワード定義テーブルは、ローカルオフセットテーブル706を含み、これは、ローカルワード定義テーブル708の各々を位置決めするために用いられる。各オフセットはまた、オフセットによって言及されるテーブルが複合または単純ワード定義テーブルであるか否かを示す。
各複合ワード定義テーブルはまた、ローカル文字マッピングテーブル704を含む。このテーブルは、それは、ローカルワード定義テーブル708中にあるワード中の文字のみが含まれることを除き、文字マッピングテーブル608(図6)と機能的には同一である。このローカル文字マッピングテーブル704は、ローカルワード定義テーブル708中のワード中の各文字を、ローカル文字インデックスにマップする。単純ローカルワード定義テーブル中のワードは、ワード中の文字を、ローカル文字インデックスで置換することによりコード化される。
複合ワード定義テーブルはまた、ホットワードテーブル700および例外テーブル702を含む。ホットワードは、複合ワード定義テーブル中に含まれるグループ中の最も高い頻度に関連するワードである。このホットワードテーブル700は、単純ワード定義テーブルであるローカルワード定義テーブル708中に位置決めされるホットワードのインデックスを含む。例外テーブル702は、複合ワード定義テーブルであるローカルワード定義テーブル708中に位置決めされるホットワードを記憶する。ホットワードは、ローカルワード定義テーブル708のサーチを実施する代わりに、このホットワードテーブル700および例外テーブル702を用いて迅速に検索され得、ホットワードを見出す。
上記に記載の言語学データのフォーマットは、最小量のメモリーを用いて、非常に迅速にワード予測の決定を可能にする。ユーザーが、QWERTYのような、特有のキーまたはキー組み合わせに文字をマップするテキスト入力デバイスを用いてワードプレフィックスを入力するとき、テキスト入力論理ユニットは、最も高い頻度を有するプレフィックスで開始する言語学データ中のワードを検索し、そしてユーザーに予測を提示する。ユーザーが、縮小キーボードを用いてワードをタイプすることを開始するとき、ワードプレフィックスはあいまいである。なぜなら、縮小キーボード上の各キーは、複数の文字にマップされるからである。この場合、テキスト入力論理ユニットは、ユーザーにより入力されたプレフィックスに対応する文字の任意の組み合わせで開始する言語学データから予測を検索する。
上記フォーマットはまた、個々のユーザーのテキスト入力習性に一致するために、ワードの頻度の容易な改変を可能にする。ワード予測代替物が提示されるとき、彼または彼女が行う入力選択によって確認されるユーザーの習性は、テキスト入力論理ユニットによって学習され、そして以下に説明されるようなテーブル中に記憶される。
学習能力は、ワードについての頻度情報の改変、および言語学データへのワードの付加を含む。両方の操作は、ワードおよび対応する頻度情報を学習ワードリストに付加する類似のプロセスを基にする。この学習ワードリストは、頻度改変のためのテーブルおよび新規ワードの付加のためのテーブルを含む。
図8は、頻度改変の方法を示すフローチャートである。この方法は、任意の学習データか集められる前に,上記のようにコンパイルされた言語学データである、基礎言語学データが、一般に、正確な頻度情報を有するという仮定の下に進行する。従って、この方法は、頻度情報の限られた改変を許容する。
この方法は、ユーザー選択ワード800を学習ワードリストに付加する工程802で開始する。ユーザー選択ワード800は、ユーザーによって、ユーザーにより入力されたワードプレフィックスで開始する提供された予測ワードのリストから選択されるワードである。ユーザーは、テキスト入力デバイスを用いて予測を選択する。選択されたワードは、学習ワードリストに付加される。
この方法では、ユーザーに提示された予測リスト中のワードの最大頻度をもつワードを得る工程804が続く。予測リスト中のワードおよびそれらの対応する頻度は、ベース言語学データ中のワード定義テーブルから、または学習ワードリストから得られたものであり得る。工程806で、最大頻度をもつワードが、ワード定義テーブルから得られたことが決定される場合、そのときは、この方法では、工程808が続き、そしてユーザー選択されたワード800は、最大頻度プラス1に等しい頻度を割り当てられる。
工程806で、最大頻度をもつワードが、ワード定義テーブルから得られず、むしろ、学習ワードリストから得られたことが決定される場合、そのときは、この方法では、工程810が続き、そしてユーザー選択されたワード800には、最大頻度に等しい頻度が割り当てられる。次いで、この方法は、学習ワードリストから工程804で得られた最大頻度をもつワードを削除する工程812で終了する。
以下の段落は、図8に示される方法の例である。各例は、ユーザーが3文字プレフィックスを入力すると仮定する。
「beg」の3文字プレフィックス、そして、予測が、3024の頻度を有する「began」、2950の頻度を有する「begin」、2880の頻度を有する「begining」、および2000の頻度を有する「begins」であり、すべてのワードがベース言語学データ中のワード定義テーブルから得られるとすると、ユーザーがワード「begin」を選択する場合、そのときは、ワード「begin」が、頻度3025で学習ワードリストに添加される。
同じ3文字プレフィックス「beg」、そして、予測が、3025の頻度を有する「begin」、3024の頻度を有する「began」、2880の頻度を有する「beginning」、および2000の頻度を有する「begins」であり、ここで「begin」が学習ワードリストから得られるとすると、ユーザーが「began」を選択する場合、そのときは、ワード「began」が、学習ワードリストに頻度3025で付加され、そしてワード「begin」が学習ワードリストから削除される。
以下は、図8の方法の例であり、ここでは、3文字プレフィックスが縮小キーボードを用いて入力される。この縮小キーボードは、「a」、「b」または「c」を入力するためのキー、「n」または「o」を入力するためのキー、および「w」、「x」、または「y」を入力するためのキーを含む。この例では、ユーザーが、「a/b/c」キー、次いで、「n/o」キー、そして最後に「w/x/y」キーを押すことによって3文字プレフィックスを入力すると仮定される。3024の頻度を有する「any」、2950の頻度を有する「boy」、2880の頻度を有する「box」、2000の頻度を有する「bow」、1890の頻度を有する「cow」、および1002の頻度を有する「cox」が与えられ、ここで、すべてのワードがベース言語学データ中のワード定義テーブルから得られる場合、ユーザーが「boy」を選択すると、そのときは、ワード「boy」が、ワード学習リストに頻度3025で付加される。
学習ワードリストは、アップデートされた頻度をもつワードを含むアップデートされた頻度テーブル、および新規ワードを含む新規ワードテーブルを含む。これらテーブルの両方は、ベース言語学データ中のように、ベース言語学データによって用いられるようなのと同じ文字マッピング608(図6)および置換テーブル610(図6)を用いてコード化されるワードを含む。各学習ワードリストテーブルはまた、テーブル中のワードの開始のためのインデックス、テーブル中のワードに関連する頻度情報、そしてアルファベット順にソートされたワードの順序を特定するソートインデックスを含む。各テーブルはまた、テーブルが、アップデートされた頻度または新規ワードを含むか否かを示すフラッグを含む。この学習ワードリストテーブルは、次々に、最初に出現するアップデートされた頻度テーブルとともに連続的に追従する。
学習ワードリストテーブルが、最大定義長さに到達する場合、そのときは、テーブル中の新規なエントリーのための余地を作製するために、最も古いワードがテーブルから削除される。
学習ワードリストテーブルにワードを付加すること、およびそれからワードを削除することは、アップデートされたテーブルを表現するバイトシークエンスを生成すること、そして同時に、出力ストリーム中にこのバイトシークエンスを書き込むことにより実施される。アップデートが終了した後、このアップデートされたデータは、再読み込みされる。出力ストリーム中への書き込みのプロセスは、ワードが学習ワードリストに付加または削除される毎に生じる。
学習ワードリストテーブルの1つにワードを付加または削除するために、文字マッピングテーブル608(図6)中のアルファベットは、それが、付加されるべきワード中に出現する文字を含まない場合にアップデートされる。次いで、付加されるべきワードは、文字マッピングテーブル608(図6)および置換テーブル(図6)を用いてコード化され、そして新規ワードテーブルの先頭中に挿入される。最後に、学習ワードリストテーブルの頻度およびソートインデックスがアップデートされる。
図9は、屈折分析の方法を示すフローチャートである。簡潔言語学データを生成するシステムおよび方法は、代わりに、屈折分析の方法を含み得、そこでは、最小の特定された頻度より高い頻度を有するワードのリストおよび屈折テーブルの両方が生成される。この屈折テーブルは、統計学的サフィックス分析を基に生成され、そしてコーパスの言語中にワード生成のための言語学規則をカプセル化する。この屈折テーブルは、屈折テーブル中に記憶された基礎ワード形態を用いて1より多いワードを生成することを可能にし、ワードリストが簡潔なままでありながら、より多くのワードが言語学データによって変換されることを確実にする。屈折テーブルは、必要に応じて、図6に示される言語学データフォーマット中に含められ得る。
この方法は、ワードの絶対頻度を基に、ワードリスト中で最も頻繁に起こるワードの構成された数を見出す工程900で開始する。
この方法では、頻繁に生じるワードのサフィックスを見出す工程901が続く。このサフィックスを見出す工程は、6文字長であるサフィックスで開始し、そして2文字長であるサフィックスで終わる減少する長さのサフィックスの反復サーチに基づく。これらのサフィックスは、所定の言語の文法中に存在する相等物に常に一致するわけではなく、むしろ、このサフィックスを見出すことは、ワードリスト中のサフィックスの出現の数に基づく。
この方法では、先の工程で見出されたサフィックスで屈折テーブルをアップデートする工程902が続く。この最初の時の工程902が実施され、屈折テーブルは、それがアップデートされる前に生成される。
工程903では、言語学データのサイズが構成された最大サイズより小さい場合、そのときは、この方法は、工程901に続く。そうでなければ、この方法は、屈折テーブル中に含まれるサフィックスなくして、ワードリスト中にワードのリストを生成する工程904で終了する。
サフィックスなしの屈折テーブルおよびワードのリストは、次いで、図5を参照して上記で説明したようにコード化され得る。屈折分析の方法が用いられるとき、図6に示されるような得られる簡潔言語学データはまた、屈折テーブルを含む。ワード定義テーブル614(図6)中のワードは、そのときは、屈折テーブル中に含まれるサフィックスを含まず、むしろ、屈折テーブル中のサフィックスへの参照を含む。記憶された各サフィックスに対する屈折テーブルを用いることにより節約されたスペースは、サフィックスの長さにより乗じられるサフィックスの出現の数である。
上記の説明は、本発明の1つの例に関する。多くの改変が、当業者に明らかであり、そしてこのような改変は、本出願の範囲内にある。
例えば、大部分の例で用いられる言語は、英語であるが、提供されるシステムおよび方法は、任意のアルファベット言語について簡潔言語学データを生成する。
さらに、簡潔言語学データを生成および用いるシステムおよび方法は、ソフトウェア、ファームウェア、またはハードウェアとして、またはそれらの組み合わせとして、パーソナルコンピューター、セルラーテレホン、2方向ページャー、任意の種類の装着型コンピューター、プリンター、セットトップボックスおよびテキスト入力および表示を可能にする任意のその他のデバイス上で履行され得る。
また、図3、4、5、8および9に示される方法は、示されるものより少ないか、多いか、または異なる工程を含み得る。例えば、これら方法は、これら方法の最終および中間結果を記憶するためにコンピューターファイルを用いることを記載しているが、これらの結果はまた、RAMまたはFlashメモリーモジュールのようなコンピューターメモリー中に記憶され得る。
図1は、言語学データがテキスト入力予測のために用いられるシステムのブロック図である。 図2は、簡潔言語学データを生成するシステムのブロック図である。 図3は、ソースファイルをフィルターにかける方法を示すフローチャートである。 図4は、ワード頻度算出の方法を示すフローチャートである。 図5は、簡潔言語学データを生成する方法を示すフローチャートである。 図6は、簡潔言語学データのフォーマットのブロック図である。 図7は、複合ワード定義テーブルのブロック図である。 図8は、頻度改変の方法を示すフローチャートである。 図9は、屈折分析の方法を示すフローチャートである。

Claims (19)

  1. 言語学データを解析することによって簡潔言語学データを生成するシステムであって、該システムは、
    コーパスとプログラムとを格納するメモリであって、該コーパスは、複数のワードを含む、メモリと、
    プロセッサと
    を備え、
    該プログラムは
    該メモリから該コーパスを読み取ることと、
    該コーパスにおいて出現する該複数のワードの絶対頻度を算出することと、
    該複数のワードにおける各特有の文字を文字インデックスにマップすることと、
    該複数のワードにおける各文字をその文字がマップされている文字インデックスに置き換えることと、
    該複数のワードにおいて出現する文字のシークエンスを置換インデックスにマップすることと、
    各ワードにおける各文字のシークエンスをその文字のシークエンスがマップされている置換インデックスに置き換えることと、
    該複数のワードを複数のグループに配列することであって、各グループは、共通のプレフィックスで開始するワードを含む、ことと、
    各プレフィックスをそのプレフィックスで開始するワードのグループのための位置情報にマップすることと、
    該コーパスにおける該複数のワードの絶対頻度に規格化関数を施すことによって相対頻度を算出することと、
    ワードの各グループに関連付けられた一組の頻度を生成することと、
    該簡潔言語学データを該メモリに書き込むことと
    該プロセッサに実行させ、
    該簡潔言語学データは、該特有の文字、該文字インデックス、該置換インデックス、該位置情報、該ワードのグループ、ワードの各グループに関連付けられた該一組の頻度を含み、該関連付けられた一組の頻度は、ワードの各グループについて、そのグループにおける複数のワードの最大の相対頻度を含み、そのグループにおいて該最大頻度に関連付けられていない各ワードについて、そのワードに関連付けられた相対頻度の該最大の相対頻度に対するパーセントを含む、システム。
  2. プロセッサと、
    ワードプレフィックスを含むテキスト入力を受信するテキスト入力装置と、
    複数のワードのための簡潔言語学データ構造とテキスト入力論理プログラムとを格納するメモリと
    を含む移動体通信装置であって、
    該複数のワードは、複数のグループに組織化され、各グループは、共通のプレフィックスを有するワードを含み、
    該簡潔言語学データ構造は、
    該複数のワードにおける各特有の文字から構成されるアルファベットと、
    該アルファベットにおける各文字を文字インデックスにマップするための文字マッピングテーブルと、
    該複数のワードからの文字のシークエンスを置換インデックスにマップするための置換テーブルと、
    該複数のワードを格納するための複数のワード定義テーブルであって、各ワード定義テーブルは、該複数のグループのうちの1つに含まれる該複数のワードの各々を格納する、複数のワード定義テーブルと、
    該複数のワード定義テーブルを位置決めするためのオフセットテーブルと
    を含み、
    該共通のプレフィックスの各々について、該オフセットテーブルは、その共通のプレフィックスで開始するワード定義テーブルの位置を含み、
    該複数のワード定義テーブルにおける該複数のワードの各々は、そのワードにおける各文字をその文字が該文字マッピングテーブルによってマップされている該文字インデックスに置換することにより、かつ、該ワードにおいて出現する該置換テーブルからの文字の各シークエンスを文字のそのシークエンスが該置換テーブルによってマップされている該置換インデックスに置換することにより、コード化され、
    各ワード定義テーブルにおける複数のワードに対する該共通のプレフィックスが除去され、
    該複数のワード定義テーブルは、該複数のワードに関連付けられた複数の頻度をさらに格納し、該複数の頻度は、それらが所定の範囲内になるように規格化され、ワードの各グループについて、そのグループにおいて最大頻度を有する該ワードの頻度は、該最大頻度として該ワード定義テーブルに格納され、そのグループにおける残りのワードの頻度は、該最大頻度に対するパーセントとして該ワード定義テーブルに格納され、
    該テキスト入力論理プログラムは、該簡潔言語学データ構造を用いて、該テキスト入力から複数のワードを予測するように該プロセッサによって実行可能な複数の命令を含み、該複数の命令は、
    該テキスト入力の該ワードプレフィックスで開始するワードを格納する該ワード定義テーブルを位置決めすることと、
    該位置決めされたワード定義テーブルにおける該最大頻度を有する該ワードを位置決めすることと、
    該ワード定義テーブルにおける該位置決めされたワードにおける各文字インデックスをその文字インデックスが該文字マッピングテーブルによってマップされている文字に置換することにより、かつ、該ワード定義テーブルにおける該位置決めされたワードにおいて出現する各置換インデックスをその置換インデックスが該置換テーブルによってマップされている文字のシークエンスに置換することにより、予測ワードを取得することと
    によって、該文字マッピングテーブルと該置換テーブルと該複数のワード定義テーブルと該オフセットテーブルとを用いて、該テキスト入力の該ワードプレフィックスから始まり、かつ、最も高い頻度を有する該予測されたワードを検索することを該プロセッサに実行させ、
    該移動体通信装置は、該予測されたワードを表示するテキスト出力装置をさらに含む、移動体通信装置。
  3. 前記テキスト入力装置は、キーボードである、請求項2に記載の移動体通信装置。
  4. 前記キーボードは、縮小キーボードである、請求項3に記載の移動体通信装置。
  5. 前記複数のワード定義テーブルのうちの少なくとも1つは、
    該ワード定義テーブルによって格納されている複数のワードを格納するための複数のローカルワード定義テーブルであって、各ローカルワード定義テーブルは、該ワード定義テーブルにおける複数のワードに対する共通のプレフィックスよりも長い共通のプレフィックスを有する該ワード定義テーブルによって格納されている複数のワードを格納する、複数のローカルワード定義テーブルと、
    該複数のローカルワード定義テーブルの各々を位置決めするためのローカルオフセットテーブルと、
    該複数のローカルワード定義テーブルにおける該複数のワードにおける各文字をローカル文字インデックスにマップするためのローカル文字マッピングテーブルと、
    該ワード定義テーブルに含まれるグループにおけるワードの最も高い頻度に関連付けられたワードの該ローカルワード定義テーブルにおける位置を格納するためのホットワードテーブルと、
    該ワード定義テーブルに含まれるグループにおけるワードの最も高い頻度に関連付けら得たワードを格納するための例外テーブルと
    を含み、
    該複数のローカルワード定義テーブルにおける該複数のワードの各々は、そのワードにおける文字をその文字が該ローカル文字マッピングテーブルによってマップされている該ローカル文字インデックスに置換することにより、かつ、該ワードにおいて出現する該置換テーブルからの文字の各シークエンスをその文字のシークエンスが該置換テーブルによってマップされている該置換インデックスに置換することにより、コード化され、
    該複数のローカルワード定義テーブルにおける該複数のワードの共通のプレフィックスは、除去される、請求項2に記載の移動体通信装置。
  6. 前記簡潔言語学データ構造は、名前テーブルをさらに含み、該名前テーブルは、前記複数のワードを識別するための名前を含む、請求項2に記載の移動体通信装置。
  7. 前記簡潔言語学データ構造は、前記複数のワードのサフィックスを格納するための屈折テーブルをさらに含み、前記複数のワード定義テーブルに格納されている前記複数のワードは、該屈折テーブルに格納されているサフィックスを参照する、請求項2に記載の移動体通信装置。
  8. 前記置換テーブルに含まれている前記文字のシークエンスは、複数の異なる長さを有し、該複数の長さの各々について、該置換テーブルは、その長さの文字のシークエンスを置換インデックスにマップするサブテーブルを含み、該サブテーブルは、該サブテーブルに含まれているシークエンスの長さに従って昇順で組織化されている、請求項2に記載の移動体通信装置。
  9. 前記オフセットテーブルは、前記アルファベットからの2つの文字の各組み合わせを、該オフセットテーブルにおけるインデックスにマップし、該オフセットテーブルにおけるインデックスは、該アルファベットにおける文字の数で乗じられる、該組み合わせにおける第1の文字の該アルファベットにおける位置と、該組み合わせにおける第2の文字の該アルファベットにおける位置との合計に等しい、請求項2に記載の移動体通信装置。
  10. 前記複数のワードにおける文字は、最も重要なビットを有するビットのシークエンスによって表され、前記複数のワード定義テーブルにおける前記複数のワードの各々における最後の文字における該最も重要なビットがセットされ、該複数のワードにおける各文字の値が該最も重要なビット以外のビットのビット値に基づいて決定される、請求項2に記載の移動体通信装置。
  11. 該簡潔言語学データ構造は、
    新規ワードテーブルと、
    アップデートされた頻度テーブルと
    をさらに含み、
    該新規ワードテーブルは、前記複数のワード定義テーブルに含まれない前記文字マッピングテーブルおよび前記置換テーブルを用いてコード化された複数の新規ワードと、該複数の新規ワードに関連付けられた複数の頻度と、該複数の新規ワードの開始のためのインデックスと、該複数の新規ワードのアルファベット順にソートされた順序を特定するソートインデックスとを格納するためのものであり、
    該アップデートされた頻度テーブルは、該文字マッピングテーブルおよび置換テーブルを用いてコード化された、該複数のワード定義テーブルに格納されている複数のワードと、該複数のワード定義テーブルに格納されている該複数のワードに関連付けられた複数のアップデートされた頻度と、該アップデートされた頻度テーブルにおける該複数のワードの開始のためのインデックスと、該アップデートされた頻度テーブルにおける該複数のワードのアルファベット順にソートされた順序を特定するソートインデックスとを格納するためのものである、請求項2に記載の移動体通信装置。
  12. 前記文字マッピングテーブルと前記置換テーブルと前記複数のワード定義テーブルと前記オフセットテーブルとは、コンピュータ読み出し可能なファイルに含まれている、請求項2に記載の移動体通信装置。
  13. 前記コンピュータ読み出し可能なファイルは、ヘッダーをさらに含み、該ヘッダーは、フォーマット情報とバージョン情報と優先情報とを含む、請求項12に記載の移動体通信装置。
  14. 前記簡潔言語学データ構造は、インデックステーブルをさらに含み、該インデックステーブルは、前記コンピュータ読み出し可能なファイルにおけるテーブルを位置決めするための該コンピュータ読み出し可能なファイルへのインデックスを含む、請求項12に記載の移動体通信装置。
  15. コンピュータを用いて簡潔言語学データを生成する方法であって、該コンピュータは、メモリとプロセッサとを含み、該メモリは、コーパスとプログラムとを格納し、該プログラムは、該プロセッサによって実行可能であり、
    該方法は、
    該プロセッサが、該メモリから該コーパスを読み取るステップと、
    該プロセッサが、該コーパスにおいて最も頻繁に発生する複数ワードを含むワードリストを生成するステップであって、該プロセッサが該ワードリストを生成するステップは、
    該コーパスをフィルタすることにより、複数のフィルタされたワードにするステップと、
    該複数のフィルタされたワードに関連付けられた絶対頻度を算出するステップと、
    該コーパスにおいて最も頻繁に発生する該複数のフィルタされたワードと、該最も頻繁に発生する該複数のフィルタされたワードに関連付けられた該絶対頻度とを該ワードリストに格納するステップと
    を含む、ステップと、
    該プロセッサが、該ワードリストにおける該複数のワードをアルファベット順にソートするステップと、
    該プロセッサが、該複数のワードにおける文字を文字インデックスにマップする文字マッピングテーブルを生成するステップと、
    該プロセッサが、該ワードリストにおける複数のワードを複数のグループに分離するステップであって、各グループにおける複数のワードは、共通のプレフィックスを有する、ステップと、
    該プロセッサが、該複数のワードにおける文字シークエンスを置換インデックスにマップする置換テーブルを生成するステップと、
    該プロセッサが、該複数のワードにおける文字をその文字が該文字マッピングテーブルによってマップされている文字インデックスに置換することにより、かつ、該複数のワードにおける文字シークエンスをその文字シークエンスが該置換テーブルによってマップされている置換インデックスに置換することにより、該複数のワードをバイトシークエンスにコード化するステップと、
    該プロセッサが、複数のワード定義テーブルを生成し、該複数のワード定義テーブルに該複数のコード化されたワードを格納するステップと、
    該プロセッサが、該複数のコード化されたワードの複数のグループを位置決めするためのオフセットテーブルを生成するステップと、
    該プロセッサが、該ワードリストに格納された該絶対頻度に規格化関数を施すことによって、複数の相対頻度を生成するステップと、
    該プロセッサが、ワードのグループに関連付けられた一組の頻度を生成するステップと、
    該プロセッサが、該複数のワード定義テーブルに該一組の頻度を格納するステップであって、該関連付けられた一組の頻度は、各グループについて、そのグループにおいて最大の相対頻度を含み、そのグループにおいて該最大頻度に関連付けられていない各ワードについて、そのワードに関連付けられた該相対頻度該最大の相対頻度に対するパーセントを含む、ステップと、
    該プロセッサが、該文字マッピングテーブルと該置換テーブルと該複数のワード定義テーブルと該オフセットテーブルとを該メモリに格納するステップと
    を含む、方法。
  16. 前記プロセッサが格納するステップは、該プロセッサが、前記文字マッピングテーブルと前記置換テーブルと前記複数のワード定義テーブルと前記オフセットテーブルとをコンピュータ読み出し可能なファイルに書き込むことを含む、請求項15に記載の方法。
  17. 前記プロセッサが前記複数のフィルタされたワードに関連付けられた絶対頻度を算出するステップは、
    最も頻繁に発生する複数のフィルタされたワードと、該最も頻繁に発生する複数のワードに関連付けられた絶対頻度とを格納するためのワードツリーを生成するステップであって、より高い絶対頻度に関連付けられたワードが該ワードツリーの内部ノードに格納され、より低い絶対頻度に関連付けられたワードが該ワードツリーのリーフノードに格納される、ステップと、
    該複数のフィルタされたワードを該ワードツリーに追加するステップと
    を含み、
    各フィルタされたワードを追加するステップは、
    該フィルタされたワードが該ワードツリー中にあるか否かを決定するステップと、
    該フィルタされたワードが該ワードツリーにない場合、該フィルタされたワードとそれに関連付けられた絶対頻度とを該ワードツリーに追加するステップと、
    該フィルタされたワードが該ワードツリーにある場合、該フィルタされたワードに関連付けられた絶対頻度を増分するステップと、
    該ワードツリー中のノードの数が所定の限度を超えるか否かを決定するステップと、
    該ワードツリー中のノードの数が該所定の限度を超える場合、該ワードツリーを収縮するステップであって、該収縮するステップは、最も低い絶対頻度に関連付けられたワードを含むリーフノードを削除するステップを含む、ステップと
    を含む、請求項15に記載の方法。
  18. 前記プロセッサが前記コーパスをフィルタするステップは、
    複数のコンピューターファイルを読み取るステップであって、各ファイルは、そのファイルのタイプを示す拡張子を有する、ステップと、
    該ファイル中に含まれるテキストに規則式を適用することにより、該テキスト中の無効または所望されない文字を置換するステップと、
    各ファイルについてフィルタを取得するステップであって、該フィルタは、該拡張子によって示されるタイプに対応する、ステップと、
    該フィルタを適用することにより、該ファイルから該コーパスの一部ではないテキストを削除するステップと
    を含む、請求項15に記載の方法。
  19. 前記プロセッサが、予測ワードのリストからユーザーによって選択されたワードを学習ワードリストに追加するステップであって、該予測のリストは、前記複数のワード定義テーブルおよび該学習ワードリストから検索されたワードを含む、ステップと、
    該プロセッサが、該予測ワードのリストにおけるワードの最大頻度に関連付けられたワードを取得するステップと、
    該プロセッサが、該最大頻度に関連付けられたワードが該複数のワード定義テーブルから取得されたか否かを決定するステップと、
    該プロセッサが、該最大頻度に関連付けられたワードが該複数のワード定義テーブルから取得された場合、該選択されたワードを該最大頻度プラス1に等しい頻度に関連付けるステップと、
    該プロセッサが、該最大頻度に関連付けられたワードが該複数のワード定義テーブルから取得されなかった場合、該選択されたワードを該最大頻度に等しい頻度に関連付けるステップと、
    該プロセッサが、該最大頻度に関連付けられたワードが該複数のワード定義テーブルから取得されなかった場合、該最大頻度を割り当てられたワードを該学習ワードリストから削除するステップと
    をさらに含む、請求項15に記載の方法。
JP2004518331A 2002-07-03 2003-07-03 簡潔言語学データを生成かつ使用するシステムおよび方法 Expired - Lifetime JP4382663B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39390302P 2002-07-03 2002-07-03
US10/289,656 US7269548B2 (en) 2002-07-03 2002-11-07 System and method of creating and using compact linguistic data
CA002411227A CA2411227C (en) 2002-07-03 2002-11-07 System and method of creating and using compact linguistic data
PCT/CA2003/001023 WO2004006122A2 (en) 2002-07-03 2003-07-03 System and method of creating and using compact linguistic data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009145681A Division JP2009266244A (ja) 2002-07-03 2009-06-18 簡潔言語学データを生成かつ使用するシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2005531857A JP2005531857A (ja) 2005-10-20
JP4382663B2 true JP4382663B2 (ja) 2009-12-16

Family

ID=30118651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004518331A Expired - Lifetime JP4382663B2 (ja) 2002-07-03 2003-07-03 簡潔言語学データを生成かつ使用するシステムおよび方法

Country Status (4)

Country Link
EP (1) EP1631920B1 (ja)
JP (1) JP4382663B2 (ja)
AU (1) AU2003249793A1 (ja)
WO (1) WO2004006122A2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8542132B2 (en) 2004-06-02 2013-09-24 Blackberry Limited Handheld electronic device and associated method employing a multiple-axis input device and using non-edited characters as context in text disambiguation
US7765345B2 (en) 2004-06-02 2010-07-27 Research In Motion Limited Handheld electronic device and associated method employing a multiple-axis input device and providing text disambiguation
US7091885B2 (en) 2004-06-02 2006-08-15 2012244 Ontario Inc. Handheld electronic device with text disambiguation
US7312726B2 (en) 2004-06-02 2007-12-25 Research In Motion Limited Handheld electronic device with text disambiguation
EP1603015A1 (en) * 2004-06-02 2005-12-07 2012244 Ontario Inc. Handheld electronic device with text disambiguation
EP1603022A1 (en) * 2004-06-02 2005-12-07 2012244 Ontario Inc. Handheld electronic device with text disambiguation
US7324083B2 (en) 2004-06-02 2008-01-29 Research In Motion Limited Handheld electronic device with text disambiguation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5798721A (en) * 1994-03-14 1998-08-25 Mita Industrial Co., Ltd. Method and apparatus for compressing text data
GB2305746B (en) * 1995-09-27 2000-03-29 Canon Res Ct Europe Ltd Data compression apparatus
JP3566441B2 (ja) * 1996-01-30 2004-09-15 シャープ株式会社 テキスト圧縮用辞書作成装置

Also Published As

Publication number Publication date
JP2005531857A (ja) 2005-10-20
AU2003249793A8 (en) 2004-01-23
AU2003249793A1 (en) 2004-01-23
WO2004006122A2 (en) 2004-01-15
WO2004006122A8 (en) 2004-04-22
EP1631920B1 (en) 2011-04-20
EP1631920A2 (en) 2006-03-08

Similar Documents

Publication Publication Date Title
US7269548B2 (en) System and method of creating and using compact linguistic data
KR102268875B1 (ko) 전자 장치에 텍스트를 입력하는 시스템 및 방법
KR101130384B1 (ko) 태그 데이터를 갖는 풀-폼 어휘집 및 이를 구축하고이용하는 방법
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US4862408A (en) Paradigm-based morphological text analysis for natural languages
US8055498B2 (en) Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in the dictionary
US20020007384A1 (en) Apparatus and method for retrieving data from a document database
US8099416B2 (en) Generalized language independent index storage system and searching method
CN105045852A (zh) 一种教学资源的全文搜索引擎系统
JP3038079B2 (ja) 自動翻訳装置
US20100185438A1 (en) Method of creating a dictionary
JP2020067971A (ja) 情報処理システムおよび情報処理方法
JP4493397B2 (ja) テキスト圧縮装置
JP4382663B2 (ja) 簡潔言語学データを生成かつ使用するシステムおよび方法
JP2018018174A (ja) 符号化プログラム、符号化装置、符号化方法、及び検索方法
JP5169456B2 (ja) 文書検索システム、文書検索方法および文書検索プログラム
Akagi et al. Grammar index by induced suffix sorting
JP4439496B2 (ja) 検索処理装置及びプログラム
JP5380566B2 (ja) 言語処理装置、プログラムおよび方法
JP4088171B2 (ja) テキスト解析装置、方法、プログラム及びそのプログラムを記録した記録媒体
JPH0140372B2 (ja)
JP3187671B2 (ja) 電子辞書表示装置
JP2000339342A (ja) 文書検索方法および文書検索装置
US20080177729A1 (en) Apparatus, method and computer program product for searching document
JPH0721212A (ja) 文書処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050916

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090126

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090126

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090618

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: 20090910

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090917

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4382663

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term