(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-10
(54)【発明の名称】オンデバイス文法チェック
(51)【国際特許分類】
G06F 40/253 20200101AFI20231227BHJP
G06F 40/216 20200101ALI20231227BHJP
【FI】
G06F40/253
G06F40/216
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023537087
(86)(22)【出願日】2020-12-18
(85)【翻訳文提出日】2023-08-14
(86)【国際出願番号】 US2020065969
(87)【国際公開番号】W WO2022132167
(87)【国際公開日】2022-06-23
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】シャリフィ,マシュー
(72)【発明者】
【氏名】ミリウス,ゼバスティアン
(72)【発明者】
【氏名】ワン,チー
(72)【発明者】
【氏名】リー,ユンポン
(72)【発明者】
【氏名】クマール,シャンカール
(72)【発明者】
【氏名】ツィルカ,ルーカス
(72)【発明者】
【氏名】トング,サイモン
(72)【発明者】
【氏名】ズンダーマイアー,マルティン
(57)【要約】
コンピューティング装置は、入力テキストを受信し、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することができる。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、単語シーケンスの文法的に正しいバージョンを決定することと、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。コンピューティング装置は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することができる。
【特許請求の範囲】
【請求項1】
方法であって、
コンピューティング装置が、入力テキストを受信することと、
前記コンピューティング装置が、1つ以上のニューラルネットワークを用いて、前記入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含み、
前記入力テキスト中の前記単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記単語シーケンスの文法的に正しいバージョンを決定することと、
前記コンピューティング装置が、前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断することとを含み、前記方法は、
前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断したことに応答して、前記コンピューティング装置が、ディスプレイ装置に表示するために、前記単語シーケンスの前記文法的に正しいバージョンの少なくとも一部を、前記入力テキスト中の前記単語シーケンスの少なくとも一部の推奨置換として出力することを含む、方法。
【請求項2】
前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部を、前記入力テキスト中の前記単語シーケンスの前記少なくとも一部の前記置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、前記コンピューティング装置が、前記入力テキスト中の前記単語シーケンスの前記少なくとも一部を、前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部に置換することをさらに含む、請求項1に記載の方法。
【請求項3】
前記単語シーケンスの前記文法的に正しいバージョンを決定することは、
前記コンピューティング装置が、前記単語シーケンスを前記1つ以上のニューラルネットワークに入力することによって、前記単語シーケンスに対応する第2の単語シーケンスを生成することと、
前記コンピューティング装置が、前記第2の単語シーケンスに対して後処理を実行することによって、前記単語シーケンスの前記文法的に正しいバージョンを生成することとをさらに含む、請求項1および2のいずれかに記載の方法。
【請求項4】
前記第2の単語シーケンスに対して前記後処理を実行することによって、前記単語シーケンスの前記文法的に正しいバージョンを生成することは、
前記コンピューティング装置が、前記単語シーケンス中の代名詞の性別と一致するように前記第2の単語シーケンス中の代名詞を修正することと、
前記コンピューティング装置が、前記修正された代名詞を有する前記第2の単語シーケンスを、前記単語シーケンスの前記文法的に正しいバージョンとして決定することとをさらに含む、請求項3に記載の方法。
【請求項5】
前記方法は、前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することをさらに含み、
前記入力テキスト中の前記第3の単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記第3の単語シーケンスを前記1つ以上のニューラルネットワークに入力することによって、前記第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、
前記コンピューティング装置が、前記第3の単語シーケンスが敏感なトピックを含むと判断することとを含み、
前記方法は、前記第3の単語シーケンスが前記敏感なトピックを含むと判断したことに応答して、前記コンピューティング装置が、前記入力テキスト中の前記第3の単語シーケンスの推奨置換を出力しないことをさらに含む、請求項1から4のいずれかに記載の方法。
【請求項6】
前記1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む、請求項1から5のいずれかに記載の方法。
【請求項7】
前記コンピューティング装置が、前記単語シーケンスが文であるかまたは前記単語シーケンスが文フラグメントであるかという判断に少なくとも部分的に基づいて、前記文モデルを用いてまたは前記接頭辞モデルを用いて前記単語シーケンスの文法チェックを実行するかを判断することをさらに含む、請求項6に記載の方法。
【請求項8】
前記コンピューティング装置が、前記単語シーケンスを含む前記入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、前記文モデルを用いてまたは前記接頭辞モデルを用いて前記単語シーケンスの文法チェックを実行するかを判断することをさらに含む、請求項6に記載の方法。
【請求項9】
前記1つ以上のニューラルネットワークは、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む、請求項1から8のいずれかに記載の方法。
【請求項10】
前記1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、
前記複数の修正例の各々は、第1の入力文と、前記第1の入力文と一致しない前記第1の入力文の第1の文法的に正しいバージョンとを含み、
前記複数の無演算例の各々は、第2の入力文と、前記第2の入力文と一致する前記第2の入力文の第2の文法的に正しいバージョンとを含む、請求項1から9のいずれかに記載の方法。
【請求項11】
前記訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される、請求項10に記載の方法。
【請求項12】
前記接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、
前記複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、前記第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む、請求項6から11のいずれかに記載の方法。
【請求項13】
前記コンピューティング装置が、前記単語シーケンスの前記文法的に正しいバージョンが前記入力テキスト中の前記単語シーケンスの前記推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、前記1つ以上のニューラルネットワークを更新することをさらに含む、請求項1から12のいずれかに記載の方法。
【請求項14】
前記1つ以上のニューラルネットワークを用いて、前記入力テキスト中の前記単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行することをさらに含む、請求項1から13のいずれかに記載の方法。
【請求項15】
前記単語シーケンスの前記文法的に正しいバージョンを決定することは、前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記単語シーケンスの複数の文法的に正しいバージョンを決定することを含み、
前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断することは、前記コンピューティング装置が、前記単語シーケンスが前記単語シーケンスの前記複数の文法的に正しいバージョンのいずれか1つと一致しないと判断することを含み、
前記コンピューティング装置が、前記ディスプレイ装置に表示するために、前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部を、前記入力テキスト中の単語シーケンスの少なくとも一部の前記推奨置換として出力することは、前記単語シーケンスが前記単語シーケンスの前記複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、前記コンピューティング装置が、前記ディスプレイ装置に表示するために、前記単語シーケンスの前記複数の文法的に正しいバージョンを、前記入力テキスト中の前記単語シーケンスの前記推奨置換として出力することを含む、請求項1から14のいずれかに記載の方法。
【請求項16】
請求項1から15に記載の前記方法のいずれかを実行するための手段を備えるコンピューティング装置。
【請求項17】
実行されると、コンピューティング装置の1つ以上のプロセッサに請求項1から15に記載の前記方法のいずれかを実行させる命令を記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
コンピューティング装置上で実行されているアプリケーションは、これらのアプリケーションを用いて編集された文書に対してスペルチェックおよび文法チェックを実行することができる。例えば、ワード処理アプリケーションは、当該アプリケーションに編集されている文書のスペルチェックおよび文法チェックを実行するための機能を含むことができる。同様に、コンピューティング装置は、テキストがコンピューティング装置に入力されると、システム全体のスペルチェック機能を提供することができる。
【発明の概要】
【0002】
概要
一般的に、本開示の技術は、コンピューティング装置に入力されたテキストのオンデバイス文法チェックを実行することに関する。コンピューティング装置に入力されたテキストの文法チェックを実行することは、テキスト中の文法エラーを検出することと、検出されたテキスト中の文法エラーを訂正することとを含む。ユーザによってコンピューティング装置に入力されたテキスト中の文および/または文フラグメントなどの単語シーケンスの文法チェックを実行することによって、入力されたテキスト中の単語シーケンスの文法エラーを検出するように構成された例示的なコンピューティング装置が説明される。このコンピューティング装置は、テキスト中の単語シーケンスが文法エラーを含むと判断したことに応答して、単語シーケンスの文法的に正しいバージョンを単語シーケンスの推奨置換として提供することができる。
【0003】
例えば、ユーザが文(例えば、「Is we going to meet up later?」)をタイプした後、コンピューティング装置は、この文が文法的に正しくない(すなわち、文法的エラーを含む)と判断し、ユーザがタイプした文法的に正しくない文に対する推奨置換として、この文の文法的に正しいバージョン(例えば、「Are we going to meet up later?」)を提供することができる。ユーザは、コンピューティング装置と対話して、推奨置換を受け入れるまたは推奨置換を拒否することができる。ユーザが推奨置換を受け入れる場合、コンピューティング装置は、ユーザによって入力されたテキスト中の文の文法的に正しいバージョンを用いて、文法エラーを含むと判断した単語シーケンスを置換することができる。
【0004】
コンピューティング装置は、ユーザによって入力されたテキストのオンデバイス文法チェックを実行することができる。すなわち、コンピューティング装置は、ユーザによって入力されたテキストを外部コンピューティングシステム(例えば、クラウド)に送信することなく、入力されたテキストの文法チェックを実行することができる。その代わりに、コンピューティング装置は、文法チェックを実行するように訓練された1つ以上のニューラルネットワークを用いて、ユーザによって入力されたテキストのオンデバイス文法チェックを実行することができる。1つ以上のニューラルネットワークは、サーバ側文法チェックを実行するニューラルネットワークと比較して、より少ないコンピューティングリソース(例えば、より少ない処理サイクルおよびより少ないメモリ)を使用する方法で文法チェックを実行するように装置の外部で訓練されてもよい。従って、コンピューティング装置は、1つ以上のニューラルネットワークを用いて、文法チェックを実行することができる。コンピューティング装置は、1つ以上のニューラルネットワークを用いて文法チェックを実行するので、1つ以上のニューラルネットワークを更新して、1つ以上のニューラルネットワークの文法チェック性能を改善することができる。
【0005】
1つ以上のニューラルネットワークを用いてオンデバイス文法チェックを実行することによって、コンピューティング装置は、サーバ側文法チェックを実行する外部コンピューティングシステムにデータを送受信する必要がなく、正確な文法チェック機能を提供することができる。代わりに、ユーザによって入力されたテキストは、コンピューティング装置上に保持されるため、ユーザのプライバシーを保護することができる。また、以下でさらに説明するように、オンデバイス文法チェックを実行することは、コンピューティング装置の性能を改善することができる。
【0006】
本開示は、コンピューティング装置および/またはコンピューティングシステムが、コンピューティング装置および/またはコンピューティング装置のユーザに関連する情報(例えば、電子メール、他の通信など)を解析するための明示的な許可をコンピューティング装置のユーザから受信した場合に限り、これらの情報を解析することができる例を説明する。例えば、本明細書において後述するように、コンピューティング装置および/またはコンピューティングシステムがユーザおよびコンピューティング装置に関連する通信情報を収集または利用することができる状況において、ユーザは、コンピューティング装置および/またはコンピューティングシステムのプログラムまたは特徴がユーザ情報(例えば、ユーザの電子メール、ユーザのソーシャルネットワーク、社会的行為または活動、職業、またはユーザの好みに関する情報)を収集および利用できるか否かを制御するための入力、またはコンピューティング装置および/またはコンピューティングシステムがユーザに関連する可能性のあるコンテンツを受信できるか否かおよび/または受信方法を指示するための入力を提供する機会が与えられる。さらに、特定のデータは、コンピューティング装置および/またはコンピューティングシステムによって記憶または使用される前に、個人を特定可能な情報を削除するように、1つ以上の方法で処理されてもよい。したがって、ユーザは、コンピューティング装置および/またはコンピューティングシステムが、ユーザに関連する情報をどのように収集するか、どのように使用するかを制御することができる。
【0007】
一例において、方法は、コンピューティング装置が、入力テキストを受信することと、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、コンピューティング装置が、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。方法は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することを含む。
【0008】
別の例において、コンピューティング装置は、メモリを含む。このコンピューティング装置は、1つ以上のプロセッサをさらに含む。1つ以上のプロセッサは、入力テキストを受信し、1つ以上のプロセッサ上で動作する1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するように構成されている。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。1つ以上のプロセッサは、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力するように構成されている。
【0009】
別の例において、実行されると、コンピューティング装置の少なくとも1つのプロセッサに以下の動作を実行されせる命令を含むコンピュータ可読記憶媒体が記載される。これらの動作は、入力テキストを受信することと、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。また、動作は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することを含む。
【0010】
別の例において、コンピューティング装置が記載される。このコンピューティング装置は、入力テキストを受信するための手段と、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するための手段とを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するための手段は、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定するための手段と、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断するための手段とを含む。また、コンピューティング装置は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力するための手段を含む。
【0011】
1つ以上の例の詳細は、添付の図面および以下の詳細な説明に記載されている。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0012】
【
図1】本開示の1つ以上の態様に従って、ニューラルネットワークを用いて入力テキストの文法チェックを実行するように構成された例示的なコンピューティング装置を示す概念図である。
【
図2】本開示の1つ以上の態様に従って、例示的なコンピューティング装置を示すブロック図である。
【
図3】本開示の1つ以上の技術に従って、リモート装置に表示するためのグラフィカルコンテンツを出力する例示的なコンピューティング装置を示すブロック図である。
【
図4】本開示の1つ以上の技術に従って、コンピューティング装置が入力テキストのオンデバイス文法チェックを実行するための例示的な動作モードを示すフローチャートである。
【発明を実施するための形態】
【0013】
詳細な説明
図1は、本開示の1つ以上の態様に従って、ニューラルネットワークを用いて入力テキストの文法チェックを実行するように構成された例示的なコンピューティング装置を示す概念図である。
図1の例において、コンピューティング装置2は、(スマートフォンを含む)モバイルフォン、ラップトップコンピュータ、タブレットコンピュータなどのポータブルまたはモバイル装置、スマートウォッチまたはコンピュータ化アイウェアなどのウェアラブルコンピューティング装置、スマートテレビプラットフォーム、カメラ、携帯情報端末(PDA)などを含んでもよいが、これらに限定されない。いくつかの例において、コンピューティング装置2は、デスクトップコンピュータ、サーバ、メインフレームなどの固定コンピューティング装置を含んでもよい。
【0014】
図1に示すように、コンピューティング装置2は、ユーザインターフェイスコンポーネント4(UIC4)と、ユーザインターフェイスモジュール6(UIモジュール6)と、文法チェックモジュール10と、アプリケーションモジュール12A~12N(アプリケーション12)とを含む。モジュール6、10および12は、コンピューティング装置2または1つ以上の他のリモートコンピューティング装置に常駐して動作するソフトウェア、ハードウェア、ファームウェア、またはハードウェア、ソフトウェアおよびファームウェアの両方の組み合わせを用いて、本明細書に記載された動作を実行することができる。いくつかの例において、モジュール6、10および12は、ハードウェア、ソフトウェア、および/またはハードウェアとソフトウェアの組み合わせとして実装されてもよい。コンピューティング装置2は、1つ以上のプロセッサを用いて、モジュール6、10および12を実行することができる。コンピューティング装置2は、基礎となるハードウェア上で実行される仮想マシンとしてまたは仮想マシンの中で、モジュール6、10および12のうちのいずれかを実行することができる。モジュール6、10および12は、様々な方法で実装されてもよい。例えば、モジュール6、10および12のうちのいずれかは、ダウンロード可能なまたは予めインストールされたアプリケーションまたは「アプリ」として実装されてもよい。別の例において、モジュール6、10および12のうちのいずれかは、コンピューティング装置2のオペレーティングシステムの一部として実装されてもよい。本開示の技術を実装するコンピューティング装置2の他の例は、
図1に示されていない追加の構成要素を含んでもよい。
【0015】
コンピューティング装置2のUIC4は、コンピューティング装置2の入力装置および出力装置として機能することができる。例えば、UIC4は、抵抗性タッチスクリーン、表面波タッチスクリーン、静電容量式タタッチスクリーン、投影静電容量式タタッチスクリーン、感圧スクリーン、音響パルス認識タッチスクリーン、または別の存在感知スクリーン技術を使用する入力装置として機能することができる。UIC4は、液晶ディスプレイ(LCD)、ドットマトリックスディスプレイ、発光ダイオード(LED)ディスプレイ、マイクロLED、有機発光ダイオード(OLED)ディスプレイ、電子インク、またはコンピュータ装置2のユーザに可視情報を出力することが可能な同様のモノクロディスプレイもしくはカラーディスプレイのうちの任意の1つ以上を使用する出力装置として機能することができる。
【0016】
コンピューティング装置2のUIC4は、コンピューティング装置2のユーザからユーザ触覚入力を受信できる存在感知スクリーンを含んでもよい。UIC4は、コンピューティング装置2のユーザからの1つ以上のタップおよび/またはジェスチャ(例えば、ユーザが指またはスタイラスペンでUIC4の1つ以上の場所をタッチまたはポインティングすること)を検出することによって、ユーザ触覚入力を受信することができる。UIC4の存在感知スクリーンは、ユーザに出力を提示することができる。UIC4は、出力を、コンピューティング装置2によって提供される機能性に関連するユーザインターフェイスとして提示することができる。例えば、UIC4は、コンピューティング装置2上で実行される様々な機能およびアプリケーション、例えば、電子メッセージアプリケーション、メッセージングアプリケーションおよびマップアプリケーションを提示することができる。
【0017】
アプリケーションモジュール12は、コンピューティング装置2上で任意の様々な動作を実行するための機能を含んでもよい。例えば、アプリケーションモジュール12は、電子メールアプリケーション、テキストメッセージアプリケーション、インスタントメッセージアプリケーション、天気アプリケーション、ビデオ会議アプリケーション、ソーシャルネットワーキングアプリケーション、天気アプリケーション、株式市場アプリケーション、緊急警報アプリケーション、スポーツアプリケーション、オフィス生産性アプリケーション、マルチメディアプレーヤなどを含んでもよい。1以上のアプリケーションモジュール12は、コンピューティング装置2によって操作可能であると図示されているが、コンピューティング装置2と通信可能に接続されているリモートコンピューティング装置によって操作されてもよい。このような例において、リモートコンピューティング装置上で実行されるアプリケーションモジュールは、任意の適切なデータ通信(例えば、有線または無線ネットワーク、NFCまたはブルートゥース(登録商標)などの近距離無線通信)を用いてコンテンツおよび目的情報を送信するように、リモートコンピューティング装置に指示することができる。いくつかの例において、リモートコンピューティング装置は、コンピューティング装置2とは別個のコンピューティング装置であってもよい。例えば、リモートコンピューティング装置は、ネットワークを介してコンピューティング装置2に動作可能に接続されてもよい。リモートコンピューティング装置の例は、サーバ、スマートフォン、タブレットコンピューティング装置、スマートウォッチ、およびデスクトップコンピュータを含んでもよいが、これらに限定されない。いくつかの例において、リモートコンピューティング装置は、コンピューティング装置2に集積されなくてもよい。
【0018】
UIモジュール6は、様々な方法で実装されてもよい。例えば、UIモジュール6は、ダウンロード可能なまたは予めインストールされたアプリケーションまたは「アプリ」として実装されてもよい。別の例において、UIモジュール6は、コンピューティング装置2のハードウェアユニットの一部として実装されてもよい。別の例において、UIモジュール6は、コンピューティング装置2のオペレーティングシステムの一部として実装されてもよい。いくつかの例において、UIモジュール6または本開示に記載された任意の他のモジュールの機能の一部は、アプリケーション、ハードウェアユニット、およびオペレーティングシステムの任意の組み合わせにわたって実装されてもよい。
【0019】
UIモジュール6は、(例えば、ユーザが、ユーザインターフェイス14Aまたは別の例示的ユーザインターフェイスが表示されるUIC4の位置に1つ以上のジェスチャを提供する場合)UIC4によって検出された入力を解釈することができる。UIモジュール6は、UIC4によって検出された入力に関する情報を、コンピューティング装置2上で実行される1つ以上の関連プラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスに中継することによって、コンピューティング装置2に機能を実行させることができる。また、UIモジュール6は、GUIを生成するために、コンピューティング装置2上で実行される1つ以上の関連プラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービス(例えば、アプリケーション12)から、情報および命令を受信することができる。さらに、UIモジュール6は、コンピューティング装置2上で実行される1つ以上の関連プラットフォーム、オペレーティングシステム、アプリケーション、および/またはサービスと、コンピューティング装置2と共に出力(例えば、グラフィック出力、可聴出力、触覚出力)を生成することができるコンピューティング装置2の様々な出力装置(例えば、スピーカ、LEDインジケータ、バイブレータ)との間の仲介役として機能することができる。
【0020】
図1の例において、アプリケーション12のうちの1つは、UIC4にユーザインターフェイス14A~14D(ユーザインターフェイス14)およびその要素を生成させるデータを、UIモジュール6に送信することができる。これに応答して、UIモジュール6は、命令および情報をUIC4に出力することによって、UIC4に、アプリケーションから受信した情報に従って、ユーザインターフェイス14のユーザインターフェイスを表示させることができる。UIC4によって検出された入力を処理する場合、UIモジュール6は、ユーザインターフェイス14の要素が表示されるUIC4のスクリーン位置で検出された入力に応答して、UIC4から情報を受信することができる。UIモジュール6は、入力を解釈するためにおよび入力に応答してコンピューティング装置2に1つ以上の機能を実行させるために、UIC4によって検出された入力に関する情報をコンピューティング装置2の他の構成要素に配布する。
【0021】
ユーザインターフェイス14は、コンピューティング装置2のユーザが、メッセージングクライアント(例えば、テキストメッセージクライアントまたは電子メールクライアント)、ウェブブラウザアプリケーション、ワード処理アプリケーションなどのコンピューティング装置2のアプリケーション12と対話することによって、テキストを入力することができるグラフィカルユーザインターフェイスを表す。例えば、ユーザインターフェイス14は、ユーザが、UIC4にテキストを入力して、電子メッセージを編集(例えば、作成、返信、転送)し、電子文書を編集し、テキストをテキストフィールドに入力し、またはアプリケーション12のためのテキストを入力することができる編集インターフェイスを表すことができる。
【0022】
ユーザがテキストを入力すると、文法チェックモジュール10は、ユーザによって入力されたテキストに対して文法チェックを実行することができる。すなわち、文法チェックモジュール10は、ユーザによって入力されたテキストが文法エラーを含むか否かを判断し、文法エラーを含む場合、ユーザがこのような文法エラーを訂正することを可能にする。
【0023】
いくつかの例において、文法チェックモジュール10は、コンピューティング装置2のユーザがコンピューティング装置2にテキストを入力することを可能にするシステム全体のユーザ制御を提供するために、コンピューティング装置2上で実行されるインプットメソッドエディタ(IME)の一部、例えばグラフィカルキーボードIMEであってもよい。例えば、IMEは、UIモジュール20によって生成された一連のタッチイベントを表すデータを、UIモジュール20から受信することができ、UIC4がグラフィカルキーボードの各々のキーを提示するUIC4の位置を表すデータを、UIモジュール20から受信することができる。IMEは、キーの位置に基づいて、一連のタッチイベントが1つ以上のキーの選択を示すことを決定することによって、IMEを介してコンピューティング装置2に入力されたテキストを決定することができる。
【0024】
コンピューティング装置2上で実行される異なるアプリケーションが、ユーザによって入力されたテキストを受信するためにIMEを呼び出すことができるため、文法チェックモジュール10は、IMEの一部であるため、文法チェックモジュール10を含むIMEを呼び出す任意のアプリケーションに文法チェック機能を提供することができる。このようにして、文法チェックモジュール10は、コンピューティング装置2上で実行される特定のアプリケーションに限定されなく、システム全体の文法チェック機能をコンピューティング装置2に提供することができる。
【0025】
一般的に、文法チェックモジュール10は、ユーザによって入力された任意の単語シーケンスに対して文法チェックを実行することができる。例えば、文法チェックモジュール10は、ユーザが終了記号(例えば、終止符、疑問符、または感嘆符)を入力したと判断すること、ユーザによって入力されたテキストに長い休止を検出すること、またはユーザが別のテキスト入力フィールドを選択したと判断することなどによって、ユーザが文の入力を終了したことを検出することに応答して、ユーザが入力を終了したばかりの文に対して文法チェックを実行することができる。文法チェックモジュール10は、ユーザによって入力された文フラグメントまたは任意の他の単語シーケンスに対して文法チェックを実行することができる。例えば、文法チェックモジュール10は、ユーザが全ての単語を入力した後、ユーザがN個の単語を入力した後、またはユーザによって入力されたテキストに長い休止を検出すると、ユーザによって入力されたテキストの文法チェックを実行することができる。
【0026】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを生成することによって、ユーザによって入力された単語シーケンスの文法チェックを実行することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスを単語シーケンスの文法的に正しいバージョンと比較して、ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致する(例えば、同じである)か否かを判断することができる。ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと文法チェックモジュール10が判断した場合、文法チェックモジュール10は、ユーザによって入力された単語シーケンスが文法的に正しくないと判断し、単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。
【0027】
本開示の技術によれば、文法チェックモジュール10は、コンピューティング装置2にインストールされた1つ以上のニューラルネットワークを用いて、ユーザによって入力されたテキストに対してオンデバイス文法チェックを実行することができる。一般的に、文法チェックモジュール10によって実装された1つ以上のニューラルネットワークは、相互接続された複数のノードを含むことができ、各ノードは、1つ以上の関数を1つ以上の特徴に対応する入力値のセットに適用し、1つ以上の対応する出力値を提供することができる。特徴は、ユーザによって入力され、文法チェックモジュール10によって文法チェックされる単語シーケンスであってもよく、1つ以上のニューラルネットワークの1つ以上の対応する出力値は、ユーザによって入力され、文法チェックされる単語シーケンスに対応する単語シーケンスであってもよい。
【0028】
いくつかの例において、1つ以上の対応する出力値は、単語シーケンスの確率を含んでもよい。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワークを用いて、ユーザ入力の特徴に基づいて単語シーケンスの確率を決定し、対応する確率に基づいて、ユーザによって入力され、文法チェックモジュール10によって文法チェックされる単語シーケンスが文法的に正しいバージョンである確率が最も高い単語シーケンスを決定し、出力することができる。
【0029】
1つ以上のニューラルネットワークは、特徴に基づいて、ユーザによって入力された単語シーケンスが文法的に正しいバージョンである確率が最も高い単語シーケンスをより正確に決定するように、文法チェックモジュール10によってオンデバイスで訓練されてもよい。例えば、1つ以上のニューラルネットワークは、特徴に適用される1つ以上の学習可能なパラメータまたは「重み」を含んでもよい。文法チェックモジュール10は、訓練中にこれらの学習可能なパラメータを調整して、1つ以上のニューラルネットワークが、ユーザによって入力され、文法チェックモジュール10によって文法チェックされる単語シーケンスが文法的に正しいバージョンである確率が最も高い単語シーケンスを決定する精度を改善することができる。例えば、文法チェックモジュール10は、ユーザが、ユーザによって入力された単語シーケンスを、1つ以上のニューラルネットワークによって出力された単語シーケンスに置換することを選択するか否かに基づいて、学習可能なパラメータを調整することができる。
【0030】
文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定することができる。例えば、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンであると判断することができる。
【0031】
いくつかの例において、文法チェックモジュール10は、ヒューリスティックまたは1つ以上の他のニューラルネットワークを利用して、1つ以上のニューラルネットワークによって出力された単語シーケンスに対して後処理を実行し、1つ以上のニューラルネットワークによって出力され且つ後処理された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定するために、このような後処理を実行することによって、1つ以上のニューラルネットワークによって出力された単語シーケンスを修正するか否かを判断することができる。さらに、文法チェックモジュール10は、このような後処理を実行することによって、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力するか否かを判断することができる。
【0032】
文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスに対して後処理を実行することによって、1つ以上のニューラルネットワークによって出力された単語シーケンス中の代名詞の性別を、ユーザによって入力された単語シーケンス中の代名詞の性別と一致させることができる。例えば、ユーザによって入力された単語シーケンスが「彼女」および「彼女の」などの女性代名詞を含む場合、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンス中の「彼」および「彼の」などの男性代名詞を、対応する女性代名詞に置換することによって、1つ以上のニューラルネットワークによって出力された単語シーケンス中の代名詞の性別を、ユーザによって入力された単語シーケンス中の代名詞の性別と一致させることができる。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力され且つ後処理された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0033】
ユーザによって入力された単語シーケンスは、1つ以上の絵文字を含んでもよい。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスに対して後処理を実行して、ユーザによって入力された単語シーケンス中の同じ絵文字が、1つ以上のニューラルネットワークによって出力された単語シーケンス中の対応する位置に含まれることを保証することができる。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力され且つ後処理された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0034】
いくつかの例において、1つ以上のニューラルネットワークによって出力された単語シーケンスの後処理の一部として、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスに対して1つ以上のサニティチェックを実行することができる。文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスが1つ以上のサニティチェックに合格しないと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力しない。一般的に、文法チェックモジュール10は、1つ以上のサニティチェックを実行することによって、1つ以上のニューラルネットワークによって出力された単語シーケンスが理解可能な単語シーケンスとして有意義であることを保証する。例えば、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスが主語および動詞を含むか否かを判断することができる。いくつかの例において、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスの長さが、ユーザによって入力された単語シーケンスとは異なると判断することができる。いくつかの例において、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスとユーザによって入力された単語シーケンスとの間の編集距離が編集距離閾値未満であるか否かを判断することができる。
【0035】
いくつかの例において、文法チェックモジュール10は、1つ以上のニューラルネットワークによって出力された単語シーケンスに対して後処理を実行することによって、単語シーケンスが敏感なトピックまたは敏感な内容を含むか否かを判断することができる。敏感なトピックまたは敏感な内容のいくつかの例は、死亡、葬式、犯罪、失業、就職不合格、学業不合格などを含んでもよいが、これらに限定されない。文法チェックモジュール10は、単語シーケンスが敏感なトピックまたは敏感な内容を含むと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力しない。いくつかの例において、文法チェックモジュール10は、ユーザによって入力された単語シーケンスのオンデバイス文法チェックを実行する前に、ユーザによって入力された単語シーケンスが敏感なトピックまたは敏感な内容を含むか否かを判断することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスが敏感なトピックまたは敏感な内容を含むと判断した場合、ユーザによって入力された単語シーケンスの文法チェックを実行しない。
【0036】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスの文法的に正しいバージョンをユーザによって入力された単語シーケンスの推奨置換として出力すると決定した場合、ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンに一致するか否かを判断することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンと一致すると判断した場合、ユーザによって入力された単語シーケンスが文法的に正しいと決定し、単語シーケンスの文法的に正しいバージョンを出力しない。
【0037】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンと一致しないと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。ユーザがユーザによって入力された単語シーケンスの推奨置換を選択した場合、文法チェックモジュール10は、ユーザによって編集されているテキストにおいて、ユーザによって入力された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンに置換することができる。このようにして、コンピューティング装置2は、文法チェックモジュール10を用いて、ユーザによって編集されているテキストの文法チェックを実行することができる。
【0038】
例示のために、
図1を参照して、1つ以上のニューラルネットワークを用いてユーザによって入力されたテキストに対して文法チェックを実行するための技術をさらに詳細に説明する。
図1の例において、UIモジュール6は、命令および情報をUIC4に出力することによって、UIC4にユーザインターフェイス14を表示させることができる。UIC4によって出力されたユーザインターフェイス14Aは、テキストフィールド16を含み、ユーザは、このテキストフィールドに、「I am go to the store」という文などのテキストを入力することができる。文法チェックモジュール10は、「I am go to the store」という単語シーケンスの終わりの終止符が文の終わりを示すと判断し、それに応答して、「I am go to the store」という文に対して文法チェックを実行することができる。
【0039】
文法チェックモジュール10は、「I am go to the store」という文の文法的に正しいバージョンが「I am going to the store」であると判断し、文法チェックされている文「I am go to the store」が文法的に正しい文「I am going to the store」と一致しないと判断することができる。したがって、文法チェックモジュール10は、ユーザインターフェイス14Aにおいて、文法的に正しい文「I am going to the store」を、文法チェックモジュール10によって文法チェックされている文「I am go to the store」の推奨置換18Aとして出力することができる。いくつかの例において、文の推奨置換18Aを出力する代わりに、文法チェックモジュール10は、文を文法的に不正確にする文内の単語「go」などの推奨置換である「going」などの特定のデルタを出力することができ、特定のデルタ「going」で置換される単語「go」を強調することができる。
【0040】
ユーザは、「I am go to the store」という文の置換提案18A「I am going to the store」を受け入れたい場合、推奨置換18Aの位置に対応するUIC4の位置にタッチ入力を提供することなどによって、推奨置換18Aの受け入れに対応するユーザ入力を提供することができる。UIC4によって出力されたユーザインターフェイス14Bに示すように、UIC4が推奨置換18Aの受け入れに対応するユーザ入力を受信したことに応答して、コンピューティング装置2は、ユーザがテキストフィールド16に入力した文「I am go to the store」を「I am going to the store」に置換することができる。
【0041】
ユーザは、テキストフィールド16に追加の単語シーケンスを入力することによって、コンピューティング装置2においてテキストを編集し続けることができる。UIC4によって出力されたユーザインターフェイス14Cに示すように、ユーザは、その後、テキストフィールド16に文フラグメント「Do you wanting to」を入力することができる。上述したように、文法チェックモジュール10は、完全な文に対して文法チェックを実行するだけではなく、文のフラグメントまたは任意の他の単語シーケンスに対して文法チェックを実行することもできる。したがって、文法チェックモジュール10は、ユーザがテキストフィールド16に文フラグメント「Do you wanting to」を入力したことに応答して、文フラグメント「Do you wanting to」に対して文法チェックを実行することができる。
【0042】
文法チェックモジュール10は、文フラグメント「Do you wanting to」の文法的に正しいバージョンが「Do you want to」であると決定し、文法チェックされている文フラグメント「Do you wanting to」が文法的に正しい文フラグメント「Do you want to」と一致しないと判断することができる。したがって、文法チェックモジュール10は、ユーザインターフェイス14Cにおいて、文法チェックモジュール10によって文法チェックされている文フラグメント「Do you wanting to」の推奨置換18Bとして、文法的に正しい文フラグメント「Do you want to」を出力することができる。
【0043】
ユーザは、文フラグメント「Do you wanting to」の推奨置換I8B「Do you want to」を受け入れたい場合、推奨置換18Bの位置に対応するUIC4の位置にタッチ入力を提供することなどによって、推奨置換18Bの受け入れに対応するユーザ入力を提供することができる。UIC4によって出力されたユーザインターフェイス14Dに示すように、UIC4が推奨置換18Bの受け入れに対応するユーザ入力を受信したことに応答して、コンピューティング装置2は、ユーザがテキストフィールド16に入力した文フラグメント「Do you wanting to」を「Do you want to」に置換することができる。
【0044】
このようにして、本開示の技術は、1つ以上のニューラルネットワークを用いて、コンピューティング装置2に入力されたテキストのオンデバイス文法チェックを実行することができる。文法チェックを実行することによって、コンピューティング装置2は、ユーザとコンピューティング装置2とのより効率的な対話を促進することができる。これによって、文法チェックを実行していないコンピューティング装置と比較して、コンピューティング装置2は、ユーザによってなされた文法ミスを修正するために受け取る入力がより少なくなる。したがって、コンピューティング装置2は、他のコンピューティング装置と比較して、より少ない動作を実行することができ(言い換えれば、より少ないプロセッササイクルを使用することができ)、より少ない電力を消費することができるおよび/またはバッテリ電力を節約することができる。さらに、コンピューティング装置2は、よりフラストレーションが少なく、よりシームレスなおよび/または円滑なユーザ体験を提供することができる。
【0045】
さらに、本開示の技術は、オンデバイス文法チェックを実行することによって、コンピューティング装置2がネットワークを介して送受信するデータの量を低減する。コンピューティング装置2がネットワークを介して送受信するデータの量を低減することは、ネットワークの輻輳およびネットワーク帯域幅の使用率を低減することができると共に、ネットワークを介してデータを送受信するためのコンピューティング装置2の無線機およびネットワークトランシーバの使用を低減することによって、コンピューティング装置2のバッテリ寿命を改善することができる。さらに、本開示の技術は、コンピューティング装置2が、良くないまたは断続的なネットワーク条件下で、およびネットワークに接続されていない間であっても、文法チェックを実行することを可能にすることができる。
【0046】
さらに、本開示の技術は、オンデバイス文法チェックを実行することによって、コンピューティング装置の文法チェック機能の応答性を改善する。本開示の技術は、文法チェックを実行するためにテキストをリモートコンピューティングシステムに送信しないことによって、文法チェックを実行する際の遅延を低減することができ、それによって、コンピューティング装置の応答性が向上し、より優れたユーザ経験を提供することができる。さらに、本開示の技術は、オンデバイス文法チェックを実行することによって、ユーザによって入力されたテキストを、コンピューティング装置2から外部に送信しないことによって、ユーザプライバシーの保護を改善することができる。
【0047】
本開示の技術は、英語の単語シーケンスの文法チェックを実行することに関して文法チェックモジュール10および文法チェックを説明するが、本開示の技術は、任意の書面言語の文法チェックを実行するために等しく適用可能であってもよい。例えば、本開示の技術は、非英語の書面言語および書面体系、例えばフランス語、ドイツ語、ロシア語などの文法チェックを実行するために等しく使用されてもよい。さらに、本開示の技術は、単語および形態素を表すために表語文字または表意文字を使用する書面言語および書面体系、例えば中国語、日本語、および韓国語などの文法チェックを実行するために等しく使用されてもよい。
【0048】
図2は、本開示の1つ以上の態様に従って、例示的なコンピューティング装置を示すブロック図である。
図2は、コンピューティング装置2の1つの特定の例のみを示し、コンピューティング装置2の多くの他の例は、他の事例において使用されてもよく、例示的なコンピューティング装置120に含まれる構成要素の一部を含んでもよく、または
図2に示されていない追加の構成要素を含んでもよい。
【0049】
図2の例に示すように、コンピューティング装置2は、1つ以上のプロセッサ40と、1つ以上の入力装置42と、1つ以上の通信ユニット44と、1つ以上の出力装置46と、1つ以上の記憶装置48と、1つ以上のセンサ56とを含む。1つ以上の入力装置42および1つ以上の出力装置46は、
図1の例示的なUIC4であってもよい。また、コンピューティング装置2の記憶装置48は、UIモジュール20と、アプリケーションモジュール12A~12Nと、オペレーティングシステム26と、文法チェックモジュール10とを含む。文法チェックモジュール10は、1つ以上のニューラルネットワーク58を含み、1つ以上のニューラルネットワークは、文モデル52と接頭辞モデル54とを備えてもよい。通信チャネル50は、構成要素間の通信を行うために、構成要素40、42、44、46、48、および56の各々を(物理的に、通信可能に、および/または動作可能に)相互接続することができる。いくつかの例において、通信チャネル50は、システムバス、ネットワーク接続、1つ以上のプロセス間通信データ構造、またはハードウェアおよび/またはソフトウェア間でデータを通信するための任意の他の構成要素を含んでもよい。
【0050】
1つ以上のプロセッサ40は、コンピューティング装置2において機能を実装するおよび/または命令を実行することができる。例えば、コンピューティング装置2上のプロセッサ40は、UIモジュール20、アプリケーションモジュール12、オペレーティングシステム26、文法チェックモジュール10(および1つ以上のニューラルネットワーク58)の機能を提供する記憶装置48によって記憶された命令を受信し、実行することができる。プロセッサ40によって実行されるこれらの命令は、プログラム実行中に、情報を記憶装置48に記憶および/または修正することをコンピューティング装置2にさせることができる。プロセッサ40は、UIモジュール20、アプリケーションモジュール12、オペレーティングシステム26、および(1つ以上のニューラルネットワーク58を含む)文法チェックモジュール10の命令を実行することによって、1つ以上の動作を実行することができる。すなわち、UIモジュール20、アプリケーションモジュール12、オペレーティングシステム26、文法チェックモジュール10(および1つ以上のニューラルネットワーク58)は、本明細書に記載された様々な機能を実行するようにプロセッサ40によって動作可能であってもよい。
【0051】
コンピューティング装置2の1つ以上の入力装置42は、入力を受信することができる。入力の例として、触覚入力、音声入力、運動入力、および光入力が挙げられる。一例において、コンピューティング装置2の入力装置42は、マウス、キーボード、音声応答システム、ビデオカメラ、ボタン、制御パッド、マイクロフォン、または人間もしくは機械からの入力を検出するための任意の他の種類の装置を含む。いくつかの例において、入力装置42は、存在感知スクリーン、タッチ感知スクリーンなどを含み得る存在感知入力装置であってもよい。
【0052】
コンピューティング装置2の1つ以上の出力装置46は、出力を生成することができる。出力の例は、触覚出力、オーディオ出力、およびビデオ出力を含む。一例において、コンピューティング装置2の出力装置46は、存在感知スクリーン、サウンドカード、ビデオグラフィックアダプタカード、スピーカ、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、または人間もしくは機械に出力を生成するための任意の他の種類の装置を含む。出力装置46は、ディスプレイ装置、例えば、陰極線管(CRT)モニタ、液晶ディスプレイ(LCD)、発光ダイオード(LED)、または触覚出力、音声出力および/または視覚出力を生成するための任意の他の種類の装置を含んでもよい。
【0053】
コンピューティング装置2の1つ以上の通信ユニット44は、データを送信および/または受信するために、外部装置と通信することができる。例えば、コンピューティング装置2は、通信ユニット44を用いて、セルラー無線ネットワークなどの無線ネットワーク上で無線信号を送信および/または受信することができる。いくつかの例において、通信ユニット44は、全地球測位システム(GPS)ネットワークなどの衛星ネットワーク上で衛星信号を送信および/または受信することができる。通信ユニット44の例は、ネットワークインターフェイスカード(例えば、イーサネット(登録商標)カード)、光トランシーバ、無線周波数トランシーバ、GPS受信機、または情報を送信および/または受信することができる任意の他の種類の装置を含む。通信ユニット44の他の例は、モバイル装置に見られるブルートゥース(登録商標)、GPS、3G、4G、WiFi(登録商標)無線機、およびユニバーサルシリアルバス(USB)コントローラなどを含んでもよい。
【0054】
コンピューティング装置2内の1つ以上の記憶装置48は、コンピューティング装置2の動作中に処理される情報を記憶することができる。いくつかの例において、記憶装置48は、一時的なメモリであり、これは、記憶装置48の主な目的が長期記憶ではないことを意味する。コンピューティング装置2上の記憶装置48は、情報を短期記憶する揮発性メモリとして構成されてもよく、したがって、非活動化された場合、記憶されたコンテンツを保持しない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で公知の他の揮発性メモリを含む。
【0055】
また、いくつかの例において、記憶装置48は、1つ以上のコンピュータ可読記憶媒体を含む。記憶装置48は、揮発性メモリよりも大量の情報を記憶するように構成されてもよい。さらに、記憶装置48は、情報を長期記憶する不揮発性メモリとして構成され、起動/停止サイクル後に情報を保持することができる。不揮発性メモリの例は、磁気ハードディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュメモリ、または電気的にプログラム可能なメモリ(EPROM)もしくは電気的に消去可能且つプログラム可能なメモリ(EEPROM)を含む。記憶装置48は、UIモジュール20、アプリケーションモジュール12、オペレーティングシステム26、および文法チェックモジュール10に関連するプログラム命令および/またはデータを記憶することができる。
【0056】
図2に示すように、コンピューティング装置2は、1つ以上のセンサ56を含むことができる。センサ56は、加速度計データを生成する加速度計を含んでもよい。加速度計データは、コンピューティング装置2の加速度および/または加速度の変化を示すことができる。センサ56は、ジャイロメータデータを生成するジャイロメータを含んでもよい。ジャイロメータデータは、コンピューティング装置2の物理的な向きおよび/または物理的な向きの変化を示すことができる。いくつかの例において、向きは、1つ以上の基準点に対するものであってもよい。センサ56は、磁力計データを生成する磁力計を含んでもよい。磁力計データは、コンピューティング装置2に接触しているまたは近接している物体の磁化を示すことができる。磁力計データは、地球の磁場を示すことができ、いくつかの例において、コンパスの指向機能を提供することができる。センサ56は、環境光データを生成する環境光センサを含んでもよい。環境光データは、コンピューティング装置2が曝される光の強度を示すことができる。センサ56は、近接データを生成する近接センサを含んでもよい。近接データは、物体がコンピューティング装置2に近接しているか否かを示すことができる。いくつかの例において、近接データは、物体がコンピューティング装置2に近接する度合いを示すことができる。いくつかの例において、センサ56は、日付および時刻を生成する時計を含んでもよい。日付および時刻は、現在の日付および時刻であってもよい。
【0057】
図2に示すように、コンピューティング装置2は、電源57を含んでもよい。いくつかの例において、電源57は、電池であってもよい。電源57は、コンピューティング装置2の1つ以上の構成要素に電力を供給することができる。電源57の例は、亜鉛-炭素、鉛-酸、ニッケルカドミウム(NiCd)、ニッケル金属水素化物(NiMH)、リチウムイオン(Li-ion)、および/またはリチウムイオンポリマ(Li-ionポリマ)の化学的性質を有する電池を含むが、必ずしもこれらに限定されなくてもよい。いくつかの例において、電源57は、一定の容量(例えば、1000~3000mAh)を有することができる。
【0058】
本開示の技術によれば、コンピューティング装置2は、1つ以上のプロセッサ40を含んでもよい。1つ以上のプロセッサ40は、例えば、文法チェックモジュール10を実行することによって、1つ以上の入力装置42を介してコンピューティング装置2に入力されたテキスト、例えば、1つ以上のプロセッサ40上で実行されているアプリケーション12のテキストフィールドまたはコンピューティング装置2のオペレーティングシステム26によって提供されたテキストフィールドに入力されたテキストの文法チェックを実行するように構成されている。いくつかの例において、文法チェックモジュール10は、コンピューティング装置2のユーザがコンピューティング装置2にテキストを入力することを可能にするユーザ制御を提供するために、1つ以上のプロセッサ40上で実行されるインプットメソッドエディタ(IME)の一部、例えば仮想キーボードIMEであってもよい。
【0059】
ユーザがコンピューティング装置2にテキストを入力すると、文法チェックモジュール10は、1つ以上のプロセッサ40上で実行され、ユーザによって入力された単語シーケンスに対して文法チェックを実行することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスに対して文法チェックを定期的に実行することができる。例えば、文法チェックモジュール10は、ユーザがコンピューティング装置2に入力した各文に対して文法チェックを実行することができる。
【0060】
このような文レベルの文法チェックを実行するために、文法チェックモジュール10は、ユーザが文の入力を完了したと判断し、その判断に応じて、完了したばかりの文に対して文法チェックを実行することができる。文法チェックモジュール10は、任意の適切な技術を用いてユーザが文の入力を完了したことを判断することができる。
【0061】
例えば、文法チェックモジュール10は、ユーザが終了記号(例えば、終止符、疑問符、または感嘆符)を入力したとの判断に応答して、ユーザが文の入力を完了したと判断することができる。別の例において、文法チェックモジュール10は、ユーザによって入力されたテキストに長い休止、例えば1秒または3秒よりも長い休止を検出したことに応答して、ユーザが文の入力を完了したと判断することができる。別の例において、文法チェックモジュール10は、ユーザがテキストを入力していたテキスト入力フィールドとは異なるテキスト入力フィールド選択したとの判断に応答して、ユーザが文の入力を完了したと判断することができる。
【0062】
文レベルの文法チェックを実行する他に、文法チェックモジュール10は、ユーザによって入力された文フラグメントまたは任意の他の単語シーケンスに対して文法チェックを実行することができる。文フラグメントに対して文法チェックを実行することは、(ユーザによって入力されたテキストが、かなり短く、典型的には複数の文から構成されない可能性がある)インスタントメッセージングアプリケーションまたはチャットアプリケーションにテキストを入力するなどのシナリオにおいて有用であり、ユーザが文の途中でタイピングミスをしたときに、即時のフィードバックをユーザに提供するためにも有用であり得る。例えば、文法チェックモジュール10は、ユーザが全ての単語を入力した後、ユーザがN個(Nは、3、5、10などの整数)の単語を入力した後、またはユーザによって入力されたテキストに長い休止を検出すると、ユーザによって入力されたテキストの文法チェックを実行することができる。文法チェックモジュール10が文法チェックを実行する頻度は、1つ以上のプロセッサ40の利用可能な処理能力、電源57の利用可能な電力、およびユーザによって入力されたテキストを受信しているアプリケーションなどのハードウェアリソースに依存してもよい。いくつかの例において、文法チェックモジュール10は、キャッシングを実行することによって、部分文の文法チェックをより迅速に実行することができる。例えば、文法チェックモジュール10は、部分文のエンコーダ表現を再計算する代わりに、以前にチェックした部分文のエンコーダ表現をキャッシュして再利用することができる。
【0063】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを生成することによって、ユーザによって入力された単語シーケンスの文法チェック、例えば、文レベルの文法チェックを実行するときに文を構成する単語シーケンスまたは文フラグメントを構成する単語シーケンスの文法チェックを実行することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスを、単語シーケンスの文法的に正しいバージョンと比較することによって、ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致する(例えば、同じである)か否かを判断することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断した場合、ユーザによって入力された単語シーケンスが文法的に正しいものではないと決定し、1つ以上の出力装置46で、単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。
【0064】
いくつかの例において、文法チェックモジュール10は、単語シーケンスの文法的に正しいバージョンをユーザによって入力された単語シーケンスの推奨置換として出力する代わりに、ユーザによって入力された単語シーケンスを文法的に正しくするように、ユーザによって入力された単語シーケンス中の1つ以上の単語の推奨置換を出力することができる。例えば、「He think he’s right」という単語シーケンスが与えられた場合、文法チェックモジュール10は、「He thinks he’s right」という文法的に正しい文を推奨置換として出力する代わりに、単語シーケンス「He think he’s right」中の単語「think」の推奨置換として単語「thinks」を出力し、推奨置換によって置換されるように単語シーケンス「He think he’s right」中の単語「think」をハイライトすることができる。
【0065】
いくつかの例において、文法チェックモジュール10は、単語シーケンスの複数の文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスに対して、複数の単語シーケンスの各々が、ユーザによって入力された単語シーケンスの文法的に正しいバージョンである確率を決定することができる。文法チェックモジュール10は、単語シーケンスの上位M個(Mは、整数である)の最も可能性の高い文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができ、またはユーザによって入力された単語シーケンスの文法的に正しいバージョンである確率が特定の確率閾値(例えば、0.7、0.8などの確率閾値)よりも高い複数の単語シーケンスをそれぞれ出力することができる。
【0066】
文法モジュール10は、1つ以上のプロセッサ40上で実行される1つ以上のニューラルネットワークを実装し、使用することによって、ユーザによって入力されたテキストに対してオンデバイス文法チェックを実行することができる。文法チェックモジュール10は、1つ以上のプロセッサ40上で実行される1つ以上のニューラルネットワークを用いて文法チェックを実行することによって、ユーザによって入力されたテキストに対して文法チェックを実行するために、テキストを外部の装置に、例えばクラウドコンピューティングシステムで動作する1つ以上のニューラルネットワークに送信しない。
【0067】
ユーザによって入力された単語シーケンスに対して文法チェックを実行するために、文法チェックモジュール10は、単語シーケンスを1つ以上のニューラルネットワーク58に入力することができる。1つ以上のニューラルネットワーク58は、それに応答して、1つ以上のニューラルネットワーク58に入力された単語シーケンスに対応する単語シーケンスを出力することができる。すなわち、文法チェックモジュール10は、単語シーケンスを1つ以上のニューラルネットワーク58に入力することができ、1つ以上のニューラルネットワーク58は、それに応答して、1つ以上のニューラルネットワーク58に入力された単語シーケンスの文法的に正しいバージョンである単語シーケンスを出力することができる。
【0068】
1つ以上のニューラルネットワーク58は、機械翻訳を実行するためのニューラルネットワークと同様に、入力として第1の単語シーケンスを取り込み、応答として、1つ以上のニューラルネットワーク58に入力された第1の単語シーケンスに対応する第2の単語シーケンスを出力する、1つ以上のシーケンス対シーケンス(seq2seq)ニューラルネットワークとして実装されてもよい。具体的には、1つ以上のニューラルネットワーク58は、入力として第1の単語シーケンスを取り込み、応答として、第1の単語シーケンスの文法的に正しいバージョンを推論して出力するように訓練されてもよい。
【0069】
いくつかの例において、1つ以上のニューラルネットワーク58の各々は、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含んでもよく、LSTMエンコーダおよびLSTMデコーダは各々、2つの層と256個のノードとを有してもよい。1つ以上のニューラルネットワーク58の各々への入力は、4000の語彙を有するワードピース(例えば、文字の任意の組み合わせ)モデルを用いて変換され、1つ以上のニューラルネットワーク58のモデル重みは、オンデバイス文法チェックを実行するための記憶およびメモリのオーバーヘッドを節約するように8ビットに圧縮される。1つ以上のニューラルネットワーク58がLSTMエンコーダおよびLSTMデコーダを含むものとして説明されているが、1つ以上のニューラルネットワーク58は、ゲート再帰ユニット(GRU)などの任意の適切な再帰ニューラルネットワーク、または畳み込みニューラルネットワーク(CNN)などの任意の他の適切なニューラルネットワークを含むまたはそれを利用することができる。
【0070】
1つ以上のニューラルネットワーク58は、外部の装置で訓練されてもよい。すなわち、1つ以上のニューラルネットワーク58は、コンピューティング装置2の外部のコンピューティングシステム、例えばクラウドベースのコンピューティングシステム上で訓練され、その後、文法チェックを実行するためにコンピューティング装置2上にインストールされてもよい。
【0071】
1つ以上のニューラルネットワーク58は、文などの単語シーケンスを入力として取り込み、入力された単語シーケンスの文法的に正しいバージョンである単語シーケンスを出力する蒸留または知識蒸留と呼ばれる技術を用いて、訓練されてもよい。1つ以上のニューラルネットワーク58を訓練するためのコンピューティングシステムは、1つ以上のニューラルネットワーク58を訓練するために、サーバ側文法エラー修正モデルなどの教師モデルから開始してもよく、ウィキペディア記事、掲示板、ソーシャルメディアウェブサイトなどのユーザ生成コンテンツを含むウェブページに対して教師モデルを実行してもよい。コンピューティングシステムは、このようなウェブページからの各文を教師モデルに入力して、入力された文の文法的に正しいバージョンの1つ以上の仮説を生成し、1つ以上の仮説のうちの上位1つの仮説を、入力された文の正解として選択することができる。
【0072】
教師モデルを訓練するこのプロセスを通して、コンピューティングシステムは、数百万の修正例(すなわち、入力文の文法的に正しいバージョンが入力文と一致しない例)および数百万の無演算例(すなわち、入力文に文法エラーがなく、入力文の文法的に正しいバージョンが入力文と一致する例)の訓練セットを生成することができる。必要な場合、コンピューティングシステムは、無演算例をサブサンプリングすることによって、修正例と無演算例との間にバランスが概ねとれたデータセットを作成し、作成したデータセットを用いて1つ以上のニューラルネットワーク58を訓練することができる。このようにして、1つ以上のニューラルネットワーク58は、文などの単語シーケンスを入力として取り込み、入力された単語シーケンスの文法的に正しいバージョンである単語シーケンスを出力するように訓練されてもよい。
【0073】
いくつかの例において、1つ以上のニューラルネットワーク58は、文に対して文法チェックを実行するためおよび文フラグメントに対して文法チェックを実行するための別個のニューラルネットワークを含んでもよい。例えば、1つ以上のニューラルネットワーク58は、文に対して文法チェックを実行するためのニューラルネットワークモデルであり得る文モデル52と、部分文または他の文フラグメントに対して文法チェックを実行するためのニューラルネットワークモデルであり得る接頭辞モデル54とを含んでもよい。また、1つ以上のニューラルネットワーク58は、任意の他の好適なニューラルネットワーク、例えば、単語の段落に対して文法チェックを実行するための段落レベルモデルを含んでもよい。コンピューティングシステムは、上述した技術を用いて文モデル52を訓練することができ、異なる訓練技術を用いて接頭辞モデル54を訓練することができる。
【0074】
上述した訓練技術と同様に、接頭辞モデル54は、コンピューティング装置2の外部のコンピューティングシステム上で訓練されてもよい。コンピューティングシステムは、文をランダムに切り捨てた結果である文接頭辞の入力例を用いて接頭辞モデル54を訓練することができる。切り捨てられた文は、文法エラーを含む可能性があり、これらの文法エラーは、得られた文接頭辞を修正することによって訂正することができる。
【0075】
いくつかの例において、コンピューティングシステムは、文ペア<bad, good>を用いて接頭辞モデル54を訓練することができる。このような文ペアは、文法エラーを含む「bad」文と、「bad」文の文法的に正しいバージョンである「good」文とを含むもの、例えば文ペア<[I am go to the store], [I am going to the store]>であってもよい。コンピューティングシステムは、文ペアを整列させ、整列された両文のランダム接頭辞(例えば、同じ数の単語を有する接頭辞)を決定して、<bad, good>文接頭辞ペアを決定することができる。この<bad, good>文接頭辞ペアは、文法エラーを含む「bad」文接頭辞と、「bad」文接頭辞の文法的に正しいバージョンである「good」文接頭辞とを含むもの、例えば<[I am go], [I am going]>であってよい。したがって、コンピューティングシステムは、整列されたランダム接頭辞ペアを訓練データとして用いて、接頭辞モデル54を訓練することによって、部分文に対して文法チェックを実行することができる。
【0076】
いくつかの例において、コンピューティングシステムは、<bad, good>文接頭辞ペアが文法エラーを含む「bad」文接頭辞を本当に含むか否かを判断することができる。例えば、文ペア<[He goes to the store yesterday.], [He went to the store yesterday.]>の場合、整列された両文のランダム接頭辞は、<bad, good>文接頭辞ペア<[He goes to], [He went to]>であってもよい。この例において、「bad」文接頭辞[He goes to]は、実際には、文法的に正しい接頭辞である。「bad」文接頭辞が文法的に正しいか否かを検査するために、コンピューティングシステムは、「bad」文接頭辞を文完成モデルに入力して、「bad」文接頭辞を有する文、例えば文[He goes to bed.]を生成し、完成した文に対して全文文法チェックを実行することができる。
【0077】
完成した「bad」文接頭辞が文法的に正しい場合、コンピューティングシステムは、<bad, bad>文接頭辞ペアを生成し、<bad prefix, good>文接頭辞ペアの代わりに、生成した<bad, good>文接頭辞ペアを用いて接頭辞モデル54を訓練することができる。例えば、文法的に正しいと判断された「bad」文接頭辞、例えば「bad」文接頭辞[He goes to]に対して、コンピューティングシステムは、<bad, bad>文接頭辞ペア<[He goes to], [He goes to]>を生成し、<bad, bad>文接頭辞ペア<[He goes to], [He goes to]>を用いて、接頭辞モデル54を訓練することができる。このようにして、コンピューティングシステムは、文法的に正しい文フラグメントを生成するように、接頭辞モデル54を訓練することができる。
【0078】
いくつかの例において、文法チェックモジュール10は、文モデル52または接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するかを判断することができる。例えば、文法チェックモジュール10は、例えば上述した技術を介して、文法チェックされている単語シーケンスが文であると判断した場合、文モデル52を用いて単語シーケンスに対して文法チェックを実行すると決定することができる。別の例において、文法チェックモジュール10は、例えば上述した技術を介して、文法チェックされている単語シーケンスが文フラグメントであると判断した場合、接頭辞モデル54を用いて単語シーケンスに対して文法チェックを実行すると決定することができる。
【0079】
いくつかの例において、文法チェックモジュール10は、単語シーケンスを受信したアプリケーションに基づいて、文モデル52または接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するかを判断することができる。例えば、文法チェックモジュール10は、単語シーケンスがテキストメッセージングアプリケーションに入力されたと判断した場合、接頭辞モデル54を用いて単語シーケンスに対して文法チェックを実行すると決定することができる。別の例において、文法チェックモジュール10は、単語シーケンスが電子メールクライアントに入力されたと判断した場合、文モデル52を用いて単語シーケンスに対して文法チェックを実行すると決定することができる。いくつかの例において、文モデル52使用するかまたは接頭辞モデル54を使用するかは、ユーザによって定義されてもよい。文法チェックモジュール10は、アプリケーションに対して、ユーザによって入力された単語の典型的な入力長さ(例えば、入力された単語の数)を追跡および/または他の方法で決定して、ユーザによって入力された単語の予想入力長さを決定することができる。予想入力長さが特定の閾値未満である場合、文法チェックモジュール10は、接頭辞モデル54を用いて文法チェックを実行すると決定することができる。そうではなく、予想入力長さが特定の閾値以上である場合、文法チェックモジュール10は、文モデル52を用いて文法チェックを実行すると決定することができる。
【0080】
いくつかの例において、別個の文モデル52または接頭辞モデル54を用いて単語シーケンスの文法チェックを実行する代わりに、単一のモデルを用いて文および文フラグメントの両方の文法チェックを実行するように、1つ以上のニューラルネットワーク58を訓練することができる。例えば、上述したように、文モデル52は、大きな文モデルおよび大きな接頭辞モデルを蒸留用の教師モデルとして用いて、訓練されてもよい。例えば、大きな接頭辞モデルは、接頭辞モデル54の訓練に関して上述した技術に従って訓練されてもよい。接頭辞モデル54の訓練と同様に、<bad, good>文ペアを用いて、悪い文(すなわち、文法的に正しくない文)に対応する良い文(すなわち、文法的に正しい文)を学習するように大きな文モデルを訓練することができる。したがって、ニューラルネットワーク58は、文および文フラグメントの両方の文法チェックを実行するための単一モデルを生成するように、大きな文モデルおよび大接頭辞モデルを蒸留用の教師モデルとして用いて訓練されてもよい。単一のモデルを用いて文および文フラグメントの両方の文法チェックを実行することは、別個のモデルを用いて文および文フラグメントの両方の文法チェックを実行することと比較して、コンピューティング装置2のより少ないメモリを潜在的に利用することができ、またはコンピューティング装置2の同様の量のメモリを使用しながら、より良質な文法チェックを潜在的に提供することができる。
【0081】
文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定することができる。例えば、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。別の例において、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行して、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することができ、1つ以上のニューラルネットワーク58によって出力され且つ修正された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0082】
いくつかの例において、文法チェックモジュール10は、ヒューリスティックまたは1つ以上の他のニューラルネットワークを利用して、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行し、1つ以上のニューラルネットワーク58によって出力され且つ後処理された単語シーケンスに基づいて、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定することができる。文法チェックモジュール10は、そのような後処理を実行することによって、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを決定するために、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正するか否かを判断することができる。さらに、文法チェックモジュール10は、そのような後処理を実行することによって、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力するか否かを判断することができる。
【0083】
文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の代名詞の性別を、ユーザによって入力された単語シーケンス中の代名詞の性別と一致させるように、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行することができる。例えば、ユーザによって入力された単語シーケンスが「she」および「her」などの女性代名詞を含む場合、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の「he」および「him」などの男性代名詞を、対応する女性代名詞に置換することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の代名詞の性別を、ユーザによって入力された単語シーケンス中の代名詞の性別と一致させることができる。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力され且つ修正された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0084】
文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の主語を、ユーザによって入力された単語シーケンス中の主語と一致させるように、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行することができる。例えば、ユーザによって入力された単語シーケンスが単数の主語を含む場合、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することによって、複数の主語を対応する単数の主語に置換し、複数の動詞を単数の動詞に置換することができる。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された修正された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0085】
1つ以上のニューラルネットワーク58によって出力された単語シーケンスは、1つ以上の絵文字を含んでもよい。したがって、文法チェックモジュール10はまた、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の1つ以上の絵文字の色調を、ユーザによって入力された単語シーケンス中の代名詞の性別の1つ以上の絵文字の色調と一致させるように、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行することができる。例えば、ユーザによって入力された単語シーケンスが、中程度の暗い色調を有する1つ以上の絵文字を含む場合、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の1つ以上の絵文字を、ユーザによって入力された単語シーケンス中の1つ以上の絵文字と一致させるように、1つ以上のニューラルネットワーク58によって出力された単語シーケンスを修正することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンス中の中程度の暗い色調以外の色調を有する1つ以上の絵文字を、対応する中程度の暗い色調を有する1つ以上の絵文字に置換することができる。したがって、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力され且つ修正された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンであると決定することができる。
【0086】
いくつかの例において、1つ以上のニューラルネットワーク58によって出力された単語シーケンスの後処理の一部として、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して1つ以上のサニティチェックを実行することができる。文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスが1つ以上のサニティチェックに合格しないと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力しない。一般的に、文法チェックモジュール10は、1つ以上のサニティチェックを実行することによって、1つ以上のニューラルネットワーク58によって出力された単語シーケンスが理解可能な単語シーケンスとして有意義であることを保証する。例えば、文法チェックモジュール10は、1つ以上のニューラルネットワーク58によって出力された単語シーケンスが主語および動詞を含むか否かを判断することができる。
【0087】
いくつかの例において、文法チェックモジュール10は、敏感なトピック分類器または任意の他の好適な技術を用いて、1つ以上のニューラルネットワーク58によって出力された単語シーケンスに対して後処理を実行することによって、単語シーケンスが敏感な内容を含むか否かを判断することができる。いくつかの例示的な敏感な内容としては、死亡、葬式、犯罪、失業、就職不合格、学業不合格などを含むが、これらに限定されない。文法チェックモジュール10は、単語シーケンスが敏感な内容を含むと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力しない。
【0088】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力すると決定した場合、ユーザによって入力された単語シーケンスが単語シーケンスの文法的に正しいバージョンに一致するか否かを判断することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンと一致すると判断した場合、ユーザによって入力された単語シーケンスが文法的に正しいと決定し、単語シーケンスの文法的に正しいバージョンを出力しない。
【0089】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスがユーザによって入力された単語シーケンスの文法的に正しいバージョンと一致しないと判断した場合、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。ユーザがユーザによって入力された単語シーケンスの推奨置換を選択した場合、文法チェックモジュール10は、ユーザによって編集されているテキストにおいて、ユーザによって入力された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンに置換することができる。このようにして、コンピューティング装置2は、文法チェックモジュール10を用いて、ユーザによって編集されているテキストの文法チェックを実行することができる。
【0090】
文法チェックモジュール10は、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力すると決定した場合、ユーザによって入力され且つ文法チェックモジュール10によって文法チェックされた単語シーケンスが、文法チェックモジュール10によって生成された単語シーケンスの文法的に正しいバージョンと一致するか否かを判断することができる。文法チェックモジュール10は、ユーザによって入力された単語シーケンスが文法チェックモジュール10によって生成された単語シーケンスの文法的に正しいバージョンと一致すると判断した場合、ユーザによって入力された単語シーケンスが文法的に正しいと決定し、単語シーケンスの文法的に正しいバージョンを、ユーザによって入力され且つ文法チェックモジュール10によって文法チェックされた単語シーケンスの推奨置換として出力しない。
【0091】
文法チェックモジュール10は、ユーザによって入力され且つ文法チェックモジュール10によってチェックされた単語シーケンスが、文法チェックモジュール10によって出力された単語シーケンスの文法的に正しいバージョンと一致しないと判断した場合、1つ以上の出力装置46で、ユーザによって入力された単語シーケンスの文法的に正しいバージョンを、ユーザによって入力された単語シーケンスの推奨置換として出力することができる。ユーザがユーザによって入力された単語シーケンスの推奨置換を選択した場合、文法チェックモジュール10は、ユーザによって編集されているテキストにおいて、ユーザによって入力された単語シーケンスを、ユーザによって入力された単語シーケンスの文法的に正しいバージョンに置換することができる。このようにして、コンピューティング装置2は、文法チェックモジュール10を用いて、ユーザによって編集されているテキストの文法チェックを実行することができる。
【0092】
文法チェックモジュール10は、コンピューティング装置2のユーザによって入力されたテキストの文法チェックを実行するように、コンピューティング装置2の1つ以上のプロセッサ40上で実行される場合、文法チェックを実行した結果および文法チェックモジュール10によって出力された推奨置換とのユーザの対話に基づいて、1つ以上のニューラルネットワーク58をさらに再訓練および/または微調整することができる。文法チェックモジュール10は、文法チェックモジュール10によって出力された推奨置換とのユーザの対話に基づいて、1つ以上のニューラルネットワーク58の1つ以上の重みを調整することによって、1つ以上のニューラルネットワーク58を再訓練することができる。例えば、文法チェックモジュール10によって文法チェックされた第1の単語シーケンスと、第1の単語シーケンスに対応する推奨置換であると文法チェックモジュール10によって決定された第2の単語シーケンスとが与えられ、ユーザが推奨置換を用いて第1の単語シーケンスを置換することを拒否した場合、文法チェックモジュール10は、第1の単語シーケンスを第2の単語シーケンスに置換するという提案の確率を下げるように、1つ以上の重みを更新することができる。
【0093】
文法チェックモジュール10は、1つ以上のニューラルネットワーク58の再訓練および/または微調整を実行することによって1つ以上の更新済みモデルを生成する場合、1つ以上の更新済みモデルを外部コンピューティングシステムに送信して、1つ以上の更新済みモデルを他のコンピューティング装置に配布することができる。ユーザのプライバシーを保護するために、文法チェックモジュール10は、1つ以上のニューラルネットワーク58を再訓練および更新するために使用されるデータサンプルを外部コンピューティングシステムに送信しない。代わりに、文法チェックモジュール10は、例えば、いくつかの例にわたって集約された更新済み重みを外部コンピューティングシステムに送信することができる。
【0094】
いくつかの例において、文法チェックモジュール10は、1つ以上のニューラルネットワーク58の訓練を、同じくニューラルネットワークを利用して文法チェックを実行する他のコンピューティング装置と協調することによって、1つ以上のニューラルネットワーク58の共同訓練を実行することができる。共同訓練を実行することによって、文法チェックモジュール10は、更新済み文法チェックモデルを、同じくニューラルネットワークを利用して文法チェックを実行する他のコンピューティング装置と共有することができ、他のコンピューティング装置から更新済み文法チェックモデルを受信することもできる。例えば、コンピューティング装置2および他のコンピューティング装置は、外部コンピューティングシステムと通信することによって、更新済みモデルを外部コンピューティングシステムに送信することができ、外部コンピューティングシステムから更新済みモデルを受信することができる。文法チェックモジュール10は、別のコンピューティング装置または外部コンピューティングシステムから更新済みモデルを受信すると、例えば、更新済みモデルの重みを用いて1つ以上のニューラルネットワーク58の重みを置換することによってまたは更新済みモデルの重みを用いて1つ以上のニューラルネットワーク58の重みを平均化することによって、更新済みモデルを用いて1つ以上のニューラルネットワーク58を更新することができる。
【0095】
いくつかの例において、文法チェックモジュール10は、1つ以上のコンピューティング装置の1つ以上の特性に基づいて、共同学習を実行することができる1つ以上のコンピューティング装置を選択することができる。例えば、文法チェックモジュール10は、1つ以上のコンピューティング装置の位置に基づいて、1つ以上のコンピューティング装置を選択することができる。例えば、文法チェックモジュール10は、同じ場所(例えば、同じ都市)または同じ地域(例えば、同じ国)に位置する1つ以上のコンピューティング装置を選択することができる。例えば、文法チェックモジュール10が主にロシア語テキストに対して文法チェックを実行するために使用される場合、文法チェックモジュール10は、共同学習を実行することができるロシア語圏に位置する1つ以上のコンピューティング装置を選択することができる。
【0096】
図3は、本開示の1つ以上の技術に従って、リモート装置に表示するためのグラフィカルコンテンツを出力する例示的なコンピューティング装置を示すブロック図である。グラフィカルコンテンツの例は、一般的に、表示のために出力され得る任意の視覚情報、例えばテキスト、画像、一連の動画などを含んでもよい。
図3に示された例は、コンピューティング装置60と、存在感知ディスプレイ64と、通信ユニット70と、プロジェクタ80と、プロジェクタスクリーン82と、モバイル装置86と、視覚ディスプレイ装置90とを含む。いくつかの例において、存在感知ディスプレイ64は、
図1および2に示された存在感知ディスプレイであってもよい。例示の目的で
図1および2においてスタンドアロンのコンピューティング装置2として示されているが、コンピューティング装置60などのコンピューティング装置は、一般的に、ソフトウェア命令を実行するためのプロセッサまたは他の適切なコンピューティング環境を含む任意のコンポーネントまたはシステムであってよく、存在感知ディスプレイを含む必要がない。
【0097】
図3の例に示すように、コンピューティング装置60は、
図1および2の例示的なコンピューティング装置2であってもよく、
図2の1つ以上のプロセッサ40に関して説明した機能を含むプロセッサを含んでもよい。このような例において、コンピューティング装置60は、システムバスまたは他の適切な接続であり得る通信チャネル62Aを介して、存在感知ディスプレイ64に動作可能に接続されてもよい。また、コンピューティング装置60は、以下でさらに説明するように、システムバスまたは他の適切な接続であり得る通信チャネル62Bを介して、通信ユニット70に動作可能に接続されてもよい。
図3には例示として単独なものとして示されているが、コンピューティング装置60は、任意の数の1つ以上の通信チャネルを介して、存在感知ディスプレイ64および通信ユニット70に動作可能に接続されてもよい。
【0098】
他の例において、
図1および2のコンピューティング装置2によって示されたように、コンピューティング装置は、(スマートフォンを含む)モバイルフォン、ラップトップコンピュータなどのポータブルまたはモバイル装置であってもよい。いくつかの例において、コンピューティング装置は、デスクトップコンピュータ、タブレットコンピュータ、スマートテレビプラットフォーム、カメラ、携帯情報端末(PDA)、サーバ、またはメインフレームであってもよい。
【0099】
存在感知ディスプレイ64は、ディスプレイ装置66と存在感知入力装置68とを含むことができる。ディスプレイ装置66は、例えば、コンピューティング装置60からデータを受信し、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知入力装置68は、容量認識技術、誘導認識技術、および/または光学認識技術を用いて、存在感知ディスプレイ64内の1つ以上のユーザ入力(例えば、連続ジェスチャ、マルチタッチジェスチャ、シングルタッチジェスチャ)を決定し、通信チャネル62Aを用いてユーザ入力指示をコンピューティング装置60に送信することができる。いくつかの例において、存在感知入力装置68は、ディスプレイ装置66の上部に物理的に配置されてもよい。これによって、ユーザがディスプレイ装置66によって表示されるグラフィカル要素の上方に入力ユニットを配置すると、存在感知入力装置68の位置は、グラフィカル要素が表示されるディスプレイ装置66の位置に対応する。
【0100】
図3に示すように、コンピューティング装置60は、さらに、通信ユニット70を含んでもよく、および/またはそれと動作可能に接続されてもよい。通信ユニット70は、
図2に示された通信ユニット44の機能を含んでもよい。通信ユニット70の例は、ネットワークインターフェイスカード、イーサネット(登録商標)カード、光トランシーバ、無線周波数トランシーバ、または情報を送受信することができる任意の他の種類の装置を含んでもよい。このような通信ユニットの他の例は、ブルートゥース(登録商標)、3G、WiFi(登録商標)無線機、およびユニバーサルシリアルバス(USB)インターフェイスなどを含んでもよい。コンピューティング装置60はまた、簡略化および例示のために
図3に示されていない1つ以上の他の装置(例えば、入力装置、出力装置、メモリ、記憶装置)を含んでもよく、および/またはそれと動作可能に接続されてもよい。
【0101】
また、
図3は、プロジェクタ80およびプロジェクタスクリーン82を示している。投影装置の他の例は、電子ホワイトボード、ホログラフィックディスプレイ装置、およびグラフィカルコンテンツを表示するための任意の他の好適な装置を含んでもよい。プロジェクタ80およびプロジェクタスクリーン82は、それぞれの装置がコンピューティング装置60と通信することを可能にする1つ以上の通信ユニットを含んでもよい。いくつかの例において、1つ以上の通信ユニットは、プロジェクタ80とプロジェクタスクリーン82との間の通信を可能にすることができる。プロジェクタ80は、コンピューティング装置60から、グラフィカルコンテンツを含むデータを受信することができる。プロジェクタ80は、データの受信に応答して、グラフィカルコンテンツをプロジェクタスクリーン82に投影することができる。いくつかの例において、プロジェクタ80は、光学認識または他の好適な技術を用いて、プロジェクタスクリーン内の1つ以上のユーザ入力(例えば、連続ジェスチャ、マルチタッチジェスチャ、シングルタッチジェスチャ)を決定し、1つ以上の通信ユニットを用いて、ユーザ入力指示をコンピューティング装置60に送信することができる。このような例において、プロジェクタスクリーン82は、必要ではなく、プロジェクタ80は、グラフィカルコンテンツを任意の好適な媒体上に投影し、光学認識または他の好適な技術を用いて1つ以上のユーザ入力を検出することができる。
【0102】
いくつかの例において、プロジェクタスクリーン82は、存在感知ディスプレイ84を含んでもよい。存在感知ディスプレイ84は、本開示に記載された存在感知ディスプレイ84および/または64の一部の機能または全ての機能を含んでもよい。いくつかの例において、存在感知ディスプレイ84は、追加の機能を含んでもよい。プロジェクタスクリーン82(例えば、電子ホワイトボード)は、コンピューティング装置60からデータを受信し、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ84は、容量認識技術、誘導認識技術、および/または光学認識技術を用いて、プロジェクタスクリーン82内の1つ以上のユーザ入力(例えば、連続ジェスチャ、マルチタッチジェスチャ、シングルタッチジェスチャ)を決定し、1つ以上の通信ユニットを用いて、ユーザ入力指示をコンピューティング装置60に送信することができる。
【0103】
また、
図3は、モバイル装置86および視覚ディスプレイ装置90を示す。モバイル装置86および視覚ディスプレイ装置90はそれぞれ、計算能力および接続能力を含んでもよい。モバイル装置86の例は、電子書籍リーダ装置、コンバーチブルノートブック装置、ハイブリッドスレート装置などを含んでもよい。視覚ディスプレイ装置90の例は、テレビ、コンピュータモニタなどの他の半定置型装置を含んでもよい。
図3に示すように、モバイル装置86は、存在感知ディスプレイ88を含んでもよい。視覚ディスプレイ装置90は、存在感知ディスプレイ92を含んでもよい。存在感知ディスプレイ88、92は、本開示に記載された存在感知ディスプレイ84および/または64の一部の機能または全ての機能を含んでもよい。いくつかの例において、存在感知ディスプレイ88、92は、追加の機能を含んでもよい。いずれの場合、存在感知ディスプレイ92は、例えば、コンピューティング装置60からデータを受信し、グラフィカルコンテンツを表示することができる。いくつかの例において、存在感知ディスプレイ92は、容量認識技術、誘導認識技術、および/または光学認識技術を用いて、プロジェクタスクリーン内の1つ以上のユーザ入力(例えば、連続ジェスチャ、マルチタッチジェスチャ、シングルタッチジェスチャ)を決定し、1つ以上の通信ユニットを用いて、ユーザ入力指示をコンピューティング装置60に送信することができる。
【0104】
上述したように、いくつかの例において、コンピューティング装置60は、システムバスまたは他の適切な通信チャネルを介してコンピューティング装置60に接続されている存在感知ディスプレイ64に表示するためのグラフィカルコンテンツを出力することができる。また、コンピューティング装置60は、プロジェクタ80、プロジェクタスクリーン82、モバイル装置86、および視覚ディスプレイ装置90などの1つ以上のリモート装置に表示するためのグラフィカルコンテンツを出力することができる。例えば、コンピューティング装置60は、本開示の技術に従って、1つ以上の命令を実行することによって、グラフィカルコンテンツを生成するおよび/または修正することができる。コンピューティング装置60は、グラフィカルコンテンツを含むデータを、コンピューティング装置60の通信ユニット、例えば通信ユニット70に出力することができる。通信ユニット70は、データを1つ以上のリモート装置、例えばプロジェクタ80、プロジェクタスクリーン82、モバイル装置86、および/または視覚ディスプレイ装置90に送信することができる。このようにして、コンピューティング装置60は、1つ以上のリモート装置に表示するためのグラフィカルコンテンツを出力することができる。いくつかの例において、1つ以上のリモート装置は、それぞれのリモート装置内に含まれるおよび/またはそれぞれのリモート装置に動作可能に接続されている存在感知ディスプレイにグラフィカルコンテンツを出力することができる。
【0105】
いくつかの例において、コンピューティング装置60は、コンピューティング装置60に動作可能に接続されている存在感知ディスプレイ64にグラフィカルコンテンツを出力しないことがある。他の例において、コンピューティング装置60は、通信チャネル62Aを介してコンピューティング装置60に接続されている存在感知ディスプレイ64と1つ以上のリモート装置の両方に表示するためのグラフィカルコンテンツを出力することができる。このような例において、グラフィカルコンテンツは、それぞれの装置に実質的に同時に表示されてもよい。例えば、グラフィカルコンテンツを含むデータをリモート装置に送信するために、通信待ち時間によっていくらかの遅延が生じることがある。いくつかの例において、コンピューティング装置60によって生成され、表示するためにプレゼンス感知ディスプレイ64に出力されたグラフィカルコンテンツは、表示するために1つ以上のリモート装置に出力されたグラフィカルコンテンツとは異なる場合がある。
【0106】
コンピューティング装置60は、任意の適切な通信技術を用いてデータを送受信することができる。例えば、コンピューティング装置60は、ネットワークリンク72Aを介して外部ネットワーク74に動作可能に接続されてもよい。
図3に示されたリモート装置の各々は、ネットワークリンク72B、72Cまたは72Dのうち、対応するネットワークリンクを介して外部ネットワーク74に動作可能に接続されてもよい。外部ネットワーク74は、動作可能に相互接続されているネットワークハブ、ネットワークウォッチ、ネットワークルータなどを含み、コンピューティング装置60と
図3に示されたリモート装置との間の情報交換を提供することができる。いくつかの例において、ネットワークリンク72A~72Dは、イーサネット(登録商標)、ATMまたは他のネットワーク接続であってもよい。これらの接続は、無線接続および/または有線接続であってもよい。
【0107】
いくつかの例において、コンピューティング装置60は、直接な装置通信78を介して、
図3に記載された1つ以上のリモート装置に動作可能に接続されてもよい。直接な装置通信78は、有線通信または無線通信を用いて、コンピューティング装置60がリモート装置とデータを直接に送受信する通信を含んでもよい。すなわち、直接な装置通信78のいくつかの例において、コンピューティング装置60によって送信されたデータは、リモート装置によって受信される前に1つ以上の追加の装置によって転送されることがなく、その逆も同様である。直接な装置通信78の例は、ブルートゥース(登録商標)、近距離無線通信、ユニバーサルシリアルバス、WiFi(登録商標)、赤外線などを含んでもよい。
図3に示された1つ以上のリモート装置は、通信リンク76A~76Dを介してコンピューティング装置60に動作可能に接続されてもよい。いくつかの例において、通信リンク76A~76Dは、ブルートゥース(登録商標)、近距離無線通信、ユニバーサルシリアルバス、赤外線などを使用する接続であってもよい。これらの接続は、無線接続および/または有線接続であってもよい。
【0108】
本開示の技術によれば、コンピューティング装置60は、存在感知ディスプレイ64、存在感知ディスプレイ84、存在感知ディスプレイ88、または存在感知ディスプレイ92に入力されたテキストを受信し、それに応答して、入力されたテキスト中の第1の単語シーケンスの文法チェックを実行することができる。第1の単語シーケンスの文法チェックを実行するために、コンピューティング装置60は、単語シーケンスを1つ以上のニューラルネットワークに入力することができる。1つ以上のニューラルネットワークは、それに応答して、第1の単語シーケンスに対応する第2の単語シーケンスを生成することができる。コンピューティング装置60は、第2の単語シーケンスに基づいて、第1の単語シーケンスの文法的に正しいバージョンを決定し、存在感知ディスプレイ64、存在感知ディスプレイ84、存在感知ディスプレイ88、または存在感知ディスプレイ92において、第1の単語シーケンスの文法的に正しいバージョンを、入力テキスト中の第1の単語シーケンスの推奨置換として出力することができる。コンピューティング装置60は、存在感知ディスプレイ64、存在感知ディスプレイ84、存在感知ディスプレイ88、または存在感知ディスプレイ92において、第1の単語シーケンスの文法的に正しいバージョンを選択するユーザ入力を受信したことに応答して、第1の単語シーケンスを第1の単語シーケンスの文法的に正しいバージョンに置換するように入力テキストを更新することができる。
【0109】
図4は、本開示の1つ以上の技術に従って、コンピューティング装置が入力テキストのオンデバイス文法チェックを実行するための例示的な動作モードを示すフローチャートである。以下、
図1および2のコンピューティング装置2に関連して
図4を説明する。
図4に示すように、コンピューティング装置2は、例えば、1つ以上の入力装置42を介して、入力テキストを受信することができる(102)。コンピューティング装置2は、1つ以上のニューラルネットワーク58を用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することができる(104)。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、1つ以上のニューラルネットワーク58を用いて、単語シーケンスの文法的に正しいバージョンを決定すること(104A)と、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断すること(104B)とを含む。コンピューティング装置2は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したに応答して、1つ以上の出力装置46などのディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することができる(106)。
【0110】
いくつかの例において、コンピューティング装置2は、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、入力テキスト中の単語シーケンスの少なくとも一部を、単語シーケンスの文法的に正しいバージョンの少なくとも一部に置換する。
【0111】
いくつかの例において、単語シーケンスの文法的に正しいバージョンを決定するために、コンピューティング装置2は、単語シーケンスを1つ以上のニューラルネットワーク58に入力することによって、単語シーケンスに対応する第2の単語シーケンスを生成し、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することができる。
【0112】
いくつかの例において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、コンピューティング装置2は、単語シーケンス中の代名詞の性別と一致するように第2の単語シーケンス中の代名詞を修正し、修正された代名詞を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定することができる。
【0113】
いくつかの例において、第2の単語シーケンスの後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、コンピューティング装置2は、単語シーケンス中の主語と一致するように第2の単語シーケンス中の主語を修正し、修正された主語を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定することができる。
【0114】
いくつかの例において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、コンピューティング装置2は、単語シーケンス中の1つ以上の第2の絵文字と一致するように1つ以上の第1の絵文字を第2の単語シーケンスに挿入し、1つ以上の第1の絵文字を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定することができる。
【0115】
いくつかの例において、コンピューティング装置2は、1つ以上のニューラルネットワーク58を用いて、入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックをさらに実行することができる。入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することは、第3の単語シーケンスを1つ以上のニューラルネットワークに入力することによって、第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、第3の単語シーケンスが敏感なトピックを含むと判断することとを含む。コンピューティング装置2は、第3の単語シーケンスが敏感なトピックを含むと判断したことに応答して、入力テキスト中の第3の単語シーケンスの推奨置換を出力しない。
【0116】
いくつかの例において、1つ以上のニューラルネットワーク58は、文の文法チェックを実行するための文モデル52と、文フラグメントの文法チェックを実行するための接頭辞モデル54とを含む。いくつかの例において、コンピューティング装置2は、単語シーケンスが文であるかまたは単語シーケンスが文フラグメントであるか否かという判断に少なくとも部分的に基づいて、文モデル52を用いてまたは接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するか否かを判断することができる。いくつかの例において、コンピューティング装置2は、単語シーケンスを含む入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、文モデル52を用いてまたは接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するか否かを判断することができる。
【0117】
いくつかの例において、1つ以上のニューラルネットワーク58は、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む。
【0118】
いくつかの例において、1つ以上のニューラルネットワーク58は、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、複数の修正例の各々は、第1の入力文と、第1の入力文と一致しない第1の入力文の第1の文法的に正しいバージョンとを含み、複数の無演算例の各々は、第2の入力文と、第2の入力文と一致する第2の入力文の第2の文法的に正しいバージョンとを含む。いくつかの例において、訓練セットは、蒸留技術を用いて決定される。いくつかの例において、訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される。
【0119】
いくつかの例において、接頭辞モデル54は、複数の文接頭辞ペアを用いて訓練され、複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む。
【0120】
いくつかの例において、コンピューティング装置2は、単語シーケンスの文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として受け入れるか否かに少なくとも部分的に基づいて、1つ以上のニューラルネットワーク58を更新することができる。
【0121】
いくつかの例において、コンピューティング装置2は、1つ以上のニューラルネットワーク58の共同訓練を実行することによって、1つ以上のコンピューティング装置から受信したデータを用いて1つ以上のニューラルネットワーク58を更新することができる。いくつかの例において、コンピューティング装置2は、1つ以上のコンピューティング装置の場所に少なくとも部分的に基づいて、1つ以上のニューラルネットワーク58の共同訓練を実行する1つ以上のコンピューティング装置を選択することができる。
【0122】
いくつかの例において、1つ以上のニューラルネットワーク58を用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するために、コンピューティング装置2は、1つ以上のニューラルネットワーク58を含むシステム全体のインプットメソッドエディタ(IME)を実行することができる。
【0123】
いくつかの例において、単語シーケンスの文法的に正しいバージョンを決定するために、コンピューティング装置2は、1つ以上のニューラルネットワーク58を用いて、単語シーケンスの複数の文法的に正しいバージョンを決定することができる。いくつかの例において、コンピューティング装置2は、単語シーケンスが単語シーケンスの複数の文法的バージョンのいずれか1つと一致しないと判断することによって、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと決定することができる。いくつかの例において、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部に対する推奨置換として出力するために、コンピューティング装置2は、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンいずれか1つと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの複数の文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として出力することができる。
【0124】
本開示は、以下の例を含む。
例1
方法は、コンピューティング装置が、入力テキストを受信することと、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、コンピューティング装置が、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。方法は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することを含む。
【0125】
例2
例1に記載の方法は、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、コンピューティング装置が、入力テキスト中の単語シーケンスの少なくとも一部を、単語シーケンスの文法的に正しいバージョンの少なくとも一部に置換することをさらに含む。
【0126】
例3
例1および2のいずれかに記載の方法において、単語シーケンスの文法的に正しいバージョンを決定することは、コンピューティング装置が、単語シーケンスを1つ以上のニューラルネットワークに入力することによって、単語シーケンスに対応する第2の単語シーケンスを生成することと、コンピューティング装置が、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することとをさらに含む。
【0127】
例4
例3に記載の方法において、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することは、コンピューティング装置が、単語シーケンス中の代名詞の性別と一致するように第2の単語シーケンス中の代名詞を修正することと、コンピューティング装置が、修正された代名詞を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定することとをさらに含む。
【0128】
例5
例3および4のいずれかに記載の方法において、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することは、コンピューティング装置が、単語シーケンス中の主語と一致するように第2の単語シーケンス中の主語を修正することと、コンピューティング装置が、修正された主語を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定することとをさらに含む。
【0129】
例6
例3から5のいずれかに記載の方法において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、コンピューティング装置2は、単語シーケンス中の1つ以上の第2の絵文字と一致するように1つ以上の第1の絵文字を第2の単語シーケンスに挿入し、1つ以上の第1の絵文字を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定することができる。
【0130】
例7
例1から6のいずれかに記載の方法は、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することをさらに含む。入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、第3の単語シーケンスを1つ以上のニューラルネットワークに入力することによって、第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、コンピューティング装置が、第3の単語シーケンスが敏感なトピックを含むと判断することとを含む。方法は、第3の単語シーケンスが敏感なトピックを含むと判断したことに応答して、コンピューティング装置が、入力テキスト中の第3の単語シーケンスの推奨置換を出力しないことをさらに含む。
【0131】
例8
例1から7のいずれかに記載の方法において、1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む。
【0132】
例9
例8の方法は、コンピューティング装置が、単語シーケンスが文であるかまたは単語シーケンスが文フラグメントであるかという判断に少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて単語シーケンスの文法チェックを実行するかを判断することをさらに含む。
【0133】
例10
例8および9のいずれかに記載の方法は、コンピューティング装置が、単語シーケンスを含む入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて、単語シーケンスの文法チェックを実行するか否かを判断することをさらに含む。
【0134】
例11
例1から10のいずれかに記載の方法において、1つ以上のニューラルネットワークは、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む。
【0135】
例12
例1から10のいずれかに記載の方法において、1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、複数の修正例の各々は、第1の入力文と、第1の入力文と一致しない第1の入力文の第1の文法的に正しいバージョンとを含み、複数の無演算例の各々は、第2の入力文と、第2の入力文と一致する第2の入力文の第2の文法的に正しいバージョンとを含む。
【0136】
例13
例12に記載の方法において、訓練セットは、蒸留技術を用いて決定される。
【0137】
例14
例13に記載の方法において、訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される。
【0138】
例15
例8から14のいずれかに記載の方法において、接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む。
【0139】
例16
例1から15のいずれかに記載の方法は、コンピューティング装置が、単語シーケンスの文法的に正しいバージョンが入力テキスト中の単語シーケンスの推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、1つ以上のニューラルネットワークを更新することをさらに含む。
【0140】
例17
例1から16のいずれかに記載の方法は、コンピューティング装置が、1つ以上のニューラルネットワークの共同訓練を実行することによって、1つ以上のコンピューティング装置から受信したデータを用いて1つ以上のニューラルネットワークを更新することをさらに含む。
【0141】
例18
例17の方法は、コンピューティング装置が、1つ以上のコンピューティング装置の場所に少なくとも部分的に基づいて、1つ以上のニューラルネットワークの共同訓練を実行する1つ以上のコンピューティング装置を選択することをさらに含む。
【0142】
例19
例1から18のいずれかに記載の方法において、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行することをさらに含む。
【0143】
例20
例1から19のいずれかに記載の方法において、単語シーケンスの文法的に正しいバージョンを決定することは、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、単語シーケンスの複数の文法的に正しいバージョンを決定することを含み、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することは、コンピューティング装置が、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断することを含み、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することは、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの複数の文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として出力することを含む。
【0144】
例21
コンピューティング装置が、メモリと、1つ以上のプロセッサとを含む。1つ以上のプロセッサは、入力テキストを受信し、1つ以上のプロセッサ上で動作する1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するように構成されている。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。1つ以上のプロセッサは、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力するように構成されている。
【0145】
例22
例21に記載のコンピューティング装置において、1つ以上のプロセッサは、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、入力テキスト中の単語シーケンスの少なくとも一部を、単語シーケンスの文法的に正しいバージョンの少なくとも一部に置換するようにさらに構成されている。
【0146】
例23
例21および22のいずれかに記載のコンピューティング装置において、1つ以上のプロセッサは、単語シーケンスの文法的に正しいバージョンを決定するために、単語シーケンスを1つ以上のニューラルネットワークに入力することによって、単語シーケンスに対応する第2の単語シーケンスを生成し、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成するようにさらに構成されている。
【0147】
例24
例23に記載のコンピューティング装置において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、1つ以上のプロセッサは、単語シーケンス中の代名詞の性別と一致するように第2の単語シーケンス中の代名詞を修正し、修正された代名詞を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定するようにさらに構成されている。
【0148】
例25
例23および24のいずれかに記載のコンピューティング装置において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、1つ以上のプロセッサは、単語シーケンス中の主語と一致するように第2の単語シーケンス中の主語を修正し、修正された主語を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定するようにさらに構成されている。
【0149】
例26
例23から25のいずれかに記載のコンピューティング装置において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを生成するために、1つ以上のプロセッサは、単語シーケンス中の1つ以上の第2の絵文字と一致するように1つ以上の第1の絵文字を第2の単語シーケンスに挿入し、1つ以上の第1の絵文字を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定するようにさらに構成されている。
【0150】
例27
例21から26のいずれかに記載のコンピューティング装置において、1つ以上のプロセッサは、1つ以上のニューラルネットワークを用いて、入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックをさらに実行するように構成されている。入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することは、第3の単語シーケンスを1つ以上のニューラルネットワークに入力することによって、第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、第3の単語シーケンスが敏感なトピックを含むと判断することとを含む。1つ以上のプロセッサは、第3の単語シーケンスが敏感なトピックを含むと判断したことに応答して、入力テキスト中の第3の単語シーケンスの推奨置換を出力しないように構成されている。
【0151】
例28
例21から27のいずれかに記載のコンピューティング装置において、1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む。
【0152】
例29
例28のコンピューティング装置において、1つ以上のプロセッサは、単語シーケンスが文であるかまたは単語シーケンスが文フラグメントであるかという判断に少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて単語シーケンスの文法チェックを実行するかを判断するようにさらに構成されている。
【0153】
例30
例28および29のいずれかに記載のコンピューティング装置において、1つ以上のプロセッサは、単語シーケンスを含む入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて単語シーケンスの文法チェックを実行するかを判断するようにさらに構成されている。
【0154】
例31
例21から30のいずれかに記載のコンピューティング装置において、1つ以上のニューラルネットワークは、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む。
【0155】
例32
例21から31のいずれかに記載のコンピューティング装置において、1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、複数の修正例の各々は、第1の入力文と、第1の入力文と一致しない第1の入力文の第1の文法的に正しいバージョンとを含み、複数の無演算例の各々は、第2の入力文と、第2の入力文と一致する第2の入力文の第2の文法的に正しいバージョンとを含む。
【0156】
例33
例32に記載のコンピューティング装置において、訓練セットは、蒸留技術を用いて決定される。
【0157】
例34
例33に記載のコンピューティング装置において、訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される。
【0158】
例35
例28から34のいずれかに記載のコンピューティング装置において、接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む。
【0159】
例36
例21から35のいずれかに記載のコンピューティング装置において、1つ以上のプロセッサは、単語シーケンスの文法的に正しいバージョンが入力テキスト中の単語シーケンスの推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、1つ以上のニューラルネットワークを更新するようにさらに構成されている。
【0160】
例37
例21から36のいずれかに記載のコンピューティング装置において、1つ以上のプロセッサは、1つ以上のニューラルネットワークの共同訓練を実行することによって、1つ以上のコンピューティング装置から受信したデータで1つ以上のニューラルネットワークを更新するようにさらに構成されている。
【0161】
例38
例37のコンピューティング装置において、1つ以上のプロセッサは、1つ以上のコンピューティング装置の場所に少なくとも部分的に基づいて、1つ以上のニューラルネットワークの共同訓練を実行する1つ以上のコンピューティング装置を選択するようにさらに構成されている。
【0162】
例39
例21から38のいずれかに記載のコンピューティング装置において、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行するために、1つ以上のプロセッサは、1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行するようにさらに構成されている。
【0163】
例40
例21から39のいずれかに記載のコンピューティング装置において、単語シーケンスの文法的に正しいバージョンを決定するために、1つ以上のプロセッサは、1つ以上のニューラルネットワークを用いて、単語シーケンスの複数の文法的に正しいバージョンを決定するようにさらに構成されている。単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断するために、1つ以上のプロセッサは、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断するようにさらに構成されている。ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力するために、1つ以上のプロセッサは、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの複数の文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として出力するようにさらに構成されている。
【0164】
例41
実行されると、コンピューティング装置の少なくとも1つのプロセッサに以下の動作を実行されせる命令を含むコンピュータ可読記憶媒体が記載される。これらの動作は、入力テキストを受信することと、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。また、動作は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することを含む。
【0165】
例42
例41に記載のコンピュータ可読記憶媒体において、命令は、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、入力テキスト中の単語シーケンスの少なくとも一部を、単語シーケンスの文法的に正しいバージョンの少なくとも一部に置換することを1つ以上のプロセッサにさらに実行させる。
【0166】
例43
例41および42のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のプロセッサに単語シーケンスの文法的に正しいバージョンを決定させる命令は、単語シーケンスを1つ以上のニューラルネットワークに入力することによって、単語シーケンスに対応する第2の単語シーケンスを生成することと、コンピューティング装置が、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することとを1つ以上のプロセッサにさらに実行させる。
【0167】
例44
例43に記載のコンピュータ可読記憶媒体において、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することを1つ以上のプロセッサに実行させる命令は、単語シーケンス中の代名詞の性別と一致するように第2の単語シーケンス中の代名詞を修正することと、修正された代名詞を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定することとを1つ以上のプロセッサにさらに実行させる。
【0168】
例45
例43および44のいずれかに記載のコンピュータ可読記憶媒体において、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することを1つ以上のプロセッサに実行させる命令は、単語シーケンス中の主語と一致するように第2の単語シーケンス中の主語を修正することと、修正された主語を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定することとを1つ以上のプロセッサにさらに実行させる。
【0169】
例46
例43から45のいずれかに記載のコンピュータ可読記憶媒体において、第2の単語シーケンスに対して後処理を実行することによって単語シーケンスの文法的に正しいバージョンを1つ以上のプロセッサに生成させる命令は、単語シーケンス中の1つ以上の第2の絵文字と一致するように1つ以上の第1の絵文字を第2の単語シーケンスに挿入し、1つ以上の第1の絵文字を有する第2の単語シーケンスを単語シーケンスの文法的に正しいバージョンとして決定することを1つ以上のプロセッサにさらに実行させる。
【0170】
例47
例43から46のいずれかに記載のコンピュータ可読記憶媒体において、命令は、1つ以上のニューラルネットワーク58を用いて、入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを1つ以上のプロセッサにさらに実行させる。入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することは、第3の単語シーケンスを1つ以上のニューラルネットワークに入力することによって、第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、第3の単語シーケンスが敏感なトピックを含むと判断することとを含む。命令は、第3の単語シーケンスが敏感なトピックを含むと判断したことに応答して、入力テキスト中の第3の単語シーケンスの推奨置換を出力しないことを1つ以上のプロセッサにさらに実行させる。
【0171】
例48
例43から47のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む。
【0172】
例49
例48に記載のコンピュータ可読記憶媒体において、単語シーケンスが文であるかまたは単語シーケンスが文フラグメントであるか否かという判断に少なくとも部分的に基づいて、文モデル52を用いてまたは接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するか否かを判断することを1つ以上のプロセッサにさらに実行させる。
【0173】
例50
例48および49のいずれかに記載のコンピュータ可読記憶媒体において、命令は、単語シーケンスを含む入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、文モデル52を用いてまたは接頭辞モデル54を用いて単語シーケンスの文法チェックを実行するか否かを判断することを1つ以上のプロセッサにさらに実行させる。
【0174】
例51
例41から50のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のニューラルネットワーク58は、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む。
【0175】
例52
例41から51のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、複数の修正例の各々は、第1の入力文と、第1の入力文と一致しない第1の入力文の第1の文法的に正しいバージョンとを含み、複数の無演算例の各々は、第2の入力文と、第2の入力文と一致する第2の入力文の第2の文法的に正しいバージョンとを含む。
【0176】
例53
例52に記載のコンピュータ可読記憶媒体において、訓練セットは、蒸留技術を用いて決定される。
【0177】
例54
例53に記載のコンピュータ可読記憶媒体において、訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される。
【0178】
例55
例48から54のいずれかに記載のコンピュータ可読記憶媒体において、接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む。
【0179】
例56
例41から55のいずれかに記載のコンピュータ可読記憶媒体において、命令は、単語シーケンスの文法的に正しいバージョンが入力テキスト中の単語シーケンスの推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、1つ以上のニューラルネットワークを更新することを1つ以上のプロセッサにさらに実行させる。
【0180】
例57
例41から55のいずれかに記載のコンピュータ可読記憶媒体において、命令は、1つ以上のニューラルネットワークの共同訓練を実行することによって、1つ以上のコンピューティング装置から受信したデータで1つ以上のニューラルネットワークを更新することを1つ以上のプロセッサにさらに実行させる。
【0181】
例58
例57に記載のコンピュータ可読記憶媒体において、命令は、1つ以上のコンピューティング装置の場所に少なくとも部分的に基づいて、1つ以上のニューラルネットワークの共同訓練を実行する1つ以上のコンピューティング装置を選択することを1つ以上のプロセッサにさらに実行させる。
【0182】
例59
例41から55のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを1つ以上のプロセッサに実行される命令は、1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行することを1つ以上のプロセッサにさらに実行させる。
【0183】
例60
例41から59のいずれかに記載のコンピュータ可読記憶媒体において、1つ以上のプロセッサに単語シーケンスの文法的に正しいバージョンを決定させる命令は、1つ以上のニューラルネットワークを用いて、単語シーケンスの複数の文法的に正しいバージョンを決定することを1つ以上のプロセッサにさらに実行させ、1つ以上のプロセッサに単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断させる命令は、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断することを1つ以上のプロセッサにさらに実行させ、ディスプレイ装置に表示するために、1つ以上のプロセッサに単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力させる命令は、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、ディスプレイ装置に表示するために、単語シーケンスの複数の文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として出力することを1つ以上のプロセッサにさらに実行させる。
【0184】
例61
方法は、コンピューティング装置が、入力テキストを受信することと、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含む。入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、単語シーケンスの文法的に正しいバージョンを決定することと、コンピューティング装置が、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することとを含む。方法は、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することを含む。
【0185】
例62
例61に記載の方法は、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、コンピューティング装置が、入力テキスト中の単語シーケンスの少なくとも一部を、単語シーケンスの文法的に正しいバージョンの少なくとも一部に置換することをさらに含む。
【0186】
例63
例61および62のいずれかに記載の方法において、単語シーケンスの文法的に正しいバージョンを決定することは、コンピューティング装置が、単語シーケンスを1つ以上のニューラルネットワークに入力することによって、単語シーケンスに対応する第2の単語シーケンスを生成することと、コンピューティング装置が、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することとをさらに含む。
【0187】
例64
例63に記載の方法において、第2の単語シーケンスに対して後処理を実行することによって、単語シーケンスの文法的に正しいバージョンを生成することは、コンピューティング装置が、単語シーケンス中の代名詞の性別と一致するように第2の単語シーケンス中の代名詞を修正することと、コンピューティング装置が、修正された代名詞を有する第2の単語シーケンスを、単語シーケンスの文法的に正しいバージョンとして決定することとをさらに含む。
【0188】
例65
例61から64のいずれかに記載の方法は、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することをさらに含む。入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、第3の単語シーケンスを1つ以上のニューラルネットワークに入力することによって、第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、コンピューティング装置が、第3の単語シーケンスが敏感なトピックを含むと判断することとを含む。方法は、第3の単語シーケンスが敏感なトピックを含むと判断したことに応答して、コンピューティング装置が、入力テキスト中の第3の単語シーケンスの推奨置換を出力しないことをさらに含む。
【0189】
例66
例61から65のいずれかに記載の方法において、1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む。
【0190】
例67
例66の方法は、コンピューティング装置が、単語シーケンスが文であるかまたは単語シーケンスが文フラグメントであるかという判断に少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて単語シーケンスの文法チェックを実行するかを判断することをさらに含む。
【0191】
例68
例66および67のいずれかに記載の方法は、コンピューティング装置が、単語シーケンスを含む入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、文モデルを用いてまたは接頭辞モデルを用いて、単語シーケンスの文法チェックを実行するか否かを判断することをさらに含む。
【0192】
例69
例61から68のいずれかに記載の方法において、1つ以上のニューラルネットワークは、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む。
【0193】
例70
例61から69のいずれかに記載の方法において、1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、複数の修正例の各々は、第1の入力文と、第1の入力文と一致しない第1の入力文の第1の文法的に正しいバージョンとを含み、複数の無演算例の各々は、第2の入力文と、第2の入力文と一致する第2の入力文の第2の文法的に正しいバージョンとを含む。
【0194】
例71
例70に記載の方法において、訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される。
【0195】
例72
例66から71のいずれかに記載の方法において、接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む。
【0196】
例73
例61から72のいずれかに記載の方法は、コンピューティング装置が、単語シーケンスの文法的に正しいバージョンが入力テキスト中の単語シーケンスの推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、1つ以上のニューラルネットワークを更新することをさらに含む。
【0197】
例74
例61から73のいずれかに記載の方法において、1つ以上のニューラルネットワークを用いて、入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することは、コンピューティング装置が、1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行することをさらに含む。
【0198】
例75
例61から74のいずれかに記載の方法において、単語シーケンスの文法的に正しいバージョンを決定することは、コンピューティング装置が、1つ以上のニューラルネットワークを用いて、単語シーケンスの複数の文法的に正しいバージョンを決定することを含み、単語シーケンスが単語シーケンスの文法的に正しいバージョンと一致しないと判断することは、コンピューティング装置が、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断することを含み、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの文法的に正しいバージョンの少なくとも一部を、入力テキスト中の単語シーケンスの少なくとも一部の推奨置換として出力することは、単語シーケンスが単語シーケンスの複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、コンピューティング装置が、ディスプレイ装置に表示するために、単語シーケンスの複数の文法的に正しいバージョンを、入力テキスト中の単語シーケンスの推奨置換として出力することを含む。
【0199】
例76
例61から75に記載の方法のいずれかを実行するための手段を備えるコンピューティング装置。
【0200】
例77
実行されると、コンピューティング装置の1つ以上のプロセッサに例61から75に記載の方法のいずれかを実行させる命令を記憶するコンピュータ可読記憶媒体。
【0201】
限定ではなく例として、このようなコンピュータ可読記憶媒体は、命令またはデータ構造の形にした所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得るRAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶装置、フラッシュメモリ、または任意の他の記憶媒体を含むことができる。また、いかなる接続もコンピュータ可読媒体として適切に呼ばれる。例えば、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を用いて、命令をウェブサイト、サーバ、または他のリモートソースから送信する場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線などのワイヤレス技術、およびマイクロ波は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な有形記憶媒体を含む。ディスク(diskおよびdisc)は、本明細書に使用された場合、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスクおよびブルーレイ(登録商標)ディスクを含む。ディスク(Disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザでデータを光学的に再生する。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【0202】
命令は、1つ以上のプロセッサ、例えば、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路によって実行されてもよい。したがって、「プロセッサ」という用語は、本明細書に使用された場合、前述した構造、または本明細書に記載の技法の実装に好適な任意の他の構造のいずれかを指してもよい。さらに、いくつかの態様において、本明細書に記載の機能は、専用ハードウェアおよび/またはソフトウェアモジュール内で実装されてもよい。また、本明細書に記載の技法は、1つ以上の回路または論理要素内で完全に実装されてもよい。
【0203】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICセット(例えば、チップセット)を含む多種多様な装置または設備において実装されてもよい。本開示において、開示された技法を実行するように構成された装置の機能的特徴を強調するように、様々な要素、モジュール、またはユニットを説明したが、これらの要素、モジュール、またはユニットの実現は、必ずしも異なるハードウェアユニットを必要するとは限らない。むしろ、上述したように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアと共に、ハードウェアユニットに組み合わせられてもよく、または上述した1つ以上のプロセッサを含む相互動作ハードウェアユニットの集合によって提供されてもよい。
【0204】
様々な実施形態を説明した。これらの実施形態および他の実施形態は、以下の特許請求の範囲内にある。
【手続補正書】
【提出日】2023-12-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
コンピューティング装置が、入力テキストを受信することと、
前記コンピューティング装置が、1つ以上のニューラルネットワークを用いて、前記入力テキスト中の単語シーケンスのオンデバイス文法チェックを実行することとを含み、
前記入力テキスト中の前記単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記単語シーケンスの文法的に正しいバージョンを決定することと、
前記コンピューティング装置が、前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断することとを含み、前記方法は、
前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断したことに応答して、前記コンピューティング装置が、ディスプレイ装置に表示するために、前記単語シーケンスの前記文法的に正しいバージョンの少なくとも一部を、前記入力テキスト中の前記単語シーケンスの少なくとも一部の推奨置換として出力することを含む、方法。
【請求項2】
前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部を、前記入力テキスト中の前記単語シーケンスの前記少なくとも一部の前記置換として受け入れることに対応するユーザ入力指示を受信したことに応答して、前記コンピューティング装置が、前記入力テキスト中の前記単語シーケンスの前記少なくとも一部を、前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部に置換することをさらに含む、請求項1に記載の方法。
【請求項3】
前記単語シーケンスの前記文法的に正しいバージョンを決定することは、
前記コンピューティング装置が、前記単語シーケンスを前記1つ以上のニューラルネットワークに入力することによって、前記単語シーケンスに対応する第2の単語シーケンスを生成することと、
前記コンピューティング装置が、前記第2の単語シーケンスに対して後処理を実行することによって、前記単語シーケンスの前記文法的に正しいバージョンを生成することとをさらに含む、請求項1および2のいずれかに記載の方法。
【請求項4】
前記第2の単語シーケンスに対して前記後処理を実行することによって、前記単語シーケンスの前記文法的に正しいバージョンを生成することは、
前記コンピューティング装置が、前記単語シーケンス中の代名詞の性別と一致するように前記第2の単語シーケンス中の代名詞を修正することと、
前記コンピューティング装置が、前記修正された代名詞を有する前記第2の単語シーケンスを、前記単語シーケンスの前記文法的に正しいバージョンとして決定することとをさらに含む、請求項3に記載の方法。
【請求項5】
前記方法は、前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記入力テキスト中の第3の単語シーケンスのオンデバイス文法チェックを実行することをさらに含み、
前記入力テキスト中の前記第3の単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記第3の単語シーケンスを前記1つ以上のニューラルネットワークに入力することによって、前記第3の単語シーケンスに対応する第4の単語シーケンスを生成することと、
前記コンピューティング装置が、前記第3の単語シーケンスが敏感なトピックを含むと判断することとを含み、
前記方法は、前記第3の単語シーケンスが前記敏感なトピックを含むと判断したことに応答して、前記コンピューティング装置が、前記入力テキスト中の前記第3の単語シーケンスの推奨置換を出力しないことをさらに含む、請求項1から4のいずれかに記載の方法。
【請求項6】
前記1つ以上のニューラルネットワークは、文の文法チェックを実行するための文モデルと、文フラグメントの文法チェックを実行するための接頭辞モデルとを含む、請求項1から5のいずれかに記載の方法。
【請求項7】
前記コンピューティング装置が、前記単語シーケンスが文であるかまたは前記単語シーケンスが文フラグメントであるかという判断に少なくとも部分的に基づいて、前記文モデルを用いてまたは前記接頭辞モデルを用いて前記単語シーケンスの文法チェックを実行するかを判断することをさらに含む、請求項6に記載の方法。
【請求項8】
前記コンピューティング装置が、前記単語シーケンスを含む前記入力テキストを受信したアプリケーションに少なくとも部分的に基づいて、前記文モデルを用いてまたは前記接頭辞モデルを用いて前記単語シーケンスの文法チェックを実行するかを判断することをさらに含む、請求項6に記載の方法。
【請求項9】
前記1つ以上のニューラルネットワークは、長短期記憶(LSTM)エンコーダと注意付きLSTMデコーダとを含むシーケンス対シーケンスモデルを含む、請求項1から8のいずれかに記載の方法。
【請求項10】
前記1つ以上のニューラルネットワークは、複数の修正例と複数の無演算例とを含む訓練セットを用いて訓練され、
前記複数の修正例の各々は、第1の入力文と、前記第1の入力文と一致しない前記第1の入力文の第1の文法的に正しいバージョンとを含み、
前記複数の無演算例の各々は、第2の入力文と、前記第2の入力文と一致する前記第2の入力文の第2の文法的に正しいバージョンとを含む、請求項1から9のいずれかに記載の方法。
【請求項11】
前記訓練セットは、ユーザ生成コンテンツを含むウェブページに対して、サーバ側文法エラー訂正モデルを教師モデルとして使用することによって決定される、請求項10に記載の方法。
【請求項12】
前記接頭辞モデルは、複数の文接頭辞ペアを用いて訓練され、
前記複数の文接頭辞ペアの各文接頭辞ペアは、文法的に正しくない第1の文の第1の文接頭辞と、前記第1の文の文法的に正しいバージョンである第2の文の第2の文接頭辞とを含む、請求項6から
8のいずれかに記載の方法。
【請求項13】
前記コンピューティング装置が、前記単語シーケンスの前記文法的に正しいバージョンが前記入力テキスト中の前記単語シーケンスの前記推奨置換として受け入れられるか否かに少なくとも部分的に基づいて、前記1つ以上のニューラルネットワークを更新することをさらに含む、請求項1から12のいずれかに記載の方法。
【請求項14】
前記1つ以上のニューラルネットワークを用いて、前記入力テキスト中の前記単語シーケンスのオンデバイス文法チェックを実行することは、
前記コンピューティング装置が、前記1つ以上のニューラルネットワークを含むシステム全体のインプットメソッドエディタ(IME)を実行することをさらに含む、請求項1から13のいずれかに記載の方法。
【請求項15】
前記単語シーケンスの前記文法的に正しいバージョンを決定することは、前記コンピューティング装置が、前記1つ以上のニューラルネットワークを用いて、前記単語シーケンスの複数の文法的に正しいバージョンを決定することを含み、
前記単語シーケンスが前記単語シーケンスの前記文法的に正しいバージョンと一致しないと判断することは、前記コンピューティング装置が、前記単語シーケンスが前記単語シーケンスの前記複数の文法的に正しいバージョンのいずれか1つと一致しないと判断することを含み、
前記コンピューティング装置が、前記ディスプレイ装置に表示するために、前記単語シーケンスの前記文法的に正しいバージョンの前記少なくとも一部を、前記入力テキスト中の単語シーケンスの少なくとも一部の前記推奨置換として出力することは、前記単語シーケンスが前記単語シーケンスの前記複数の文法的に正しいバージョンのいずれか1つと一致しないと判断したことに応答して、前記コンピューティング装置が、前記ディスプレイ装置に表示するために、前記単語シーケンスの前記複数の文法的に正しいバージョンを、前記入力テキスト中の前記単語シーケンスの前記推奨置換として出力することを含む、請求項1から14のいずれかに記載の方法。
【請求項16】
請求項1から15のいずれかに記載の前記方法を実行するための手段を備えるコンピューティング装置。
【請求項17】
実行されると、コンピューティング装置の1つ以上のプロセッサに請求項1から15のいずれかに記載の前記方法を実行させる命令を
備える、プログラム。
【国際調査報告】