特許法第30条第2項適用 令和2年6月1日 https://prtimes.jp/main/html/rd/p/000000006.000048611.htmlを通じて発表、令和2年6月3日、令和2年6月17日、令和2年6月24日、令和2年7月1日、令和2年7月15日、令和2年8月13日、令和2年9月30日、令和2年10月7日、令和2年11月4日、令和2年12月2日、令和3年1月21日、令和3年2月24日、令和3年3月3日、令和3年3月10日、令和3年3月31日、令和3年4月7日、令和3年4月14日、令和3年4月21日、令和3年4月28日、令和3年5月12日、令和3年5月19日別紙の個別営業先を通じて公開、令和2年6月23日 https://miraicolabo.willsmart.co.jp/news/2986/を通じて発表、令和2年7月31日 https://www.ipros.jp/product/detail/2000540560/を通じて発表、令和2年8月4日 https://youtu.be/9syu9W2D2Wsを通じて発表、令和2年8月5日 https://youtu.be/elgOy4ePhKgを通じて発表、令和2年8月25日 https://prtimes.jp/main/html/rd/p/000000007.000048611.htmlを通じて発表、令和2年9月14日 https://ledge.ai/ledge-ai-expo-starting/ https://ledge-expo.com/2020-at/product/mirasenses/を通じて発表、
特許法第30条第2項適用 令和2年12月22日、令和3年2月24日、令和3年4月28日、令和3年5月31日別紙の個別販売先を通じて公開、令和3年2月17日 https://prtimes.jp/main/html/rd/p/000000009.000048611.htmlを通じて発表、令和3年2月19日 https://ascii.jp/elem/000/004/044/4044700/を通じて発表、令和3年3月27日 https://www.ai-editor.jp/index.htmlを通じて発表、令和3年4月5日 株式会社IRISが運営するタクシー・サイネージメディア「Tokyo Prime」を通じて公開、令和3年4月10日 https://youtu.be/AypBPiJCHS8 https://youtu.be/2GfeZyIBMusを通じて発表
以下、検査装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、ユーザに対応付けて、文章等の検査ルールを管理し、ユーザに対応する検査ルールに基づいて、文章等の検査を行う検査装置について説明する。
また、本実施の形態において、登録した正解用語に対する誤記を検出する検査装置について説明する。
また、本実施の形態において、誤字や脱字等を検出する検査装置について説明する。
また、本実施の形態において、エラーの種類も取得し、出力する検査装置について説明する。
また、本実施の形態において、登録した画像に対する擬似画像を検出する検査装置について説明する。
また、本実施の形態において、エラーの種類に基づいて、メニュー等の選択インターフェイスを構成し、出力する検査装置について説明する。
さらに、本実施の形態において、エラーの種類を視覚的に把握できる態様で検査結果を出力する検査装置について説明する。
図1は、本実施の形態における情報システムAの概念図である。情報システムAは、検査装置1、および1または2以上の端末装置2を備える。
検査装置1は、文章を含む検査情報を検査する装置である。検査装置1は、通常、いわゆるサーバであり、例えば、クラウドサーバ、ASPサーバ等である。なお、検査装置1の種類は問わない。なお、検査装置1は、スタンドアロンで動作しても良い。
端末装置2は、ユーザが使用する端末である。ユーザは、例えば、検査情報の検査結果を得るユーザである。端末装置2は、例えば、いわゆるパーソナルコンピュータ、タブレット端末、スマートフォン等であり、その種類は問わない。
図2は、本実施の形態における情報システムAのブロック図である。検査装置1は、格納部11、受付部12、処理部13、および出力部14を備える。格納部11は、ユーザ情報格納部111、ルール格納部112、および学習器格納部113を備える。受付部12は、検査情報受付部121、および選択受付部122を備える。処理部13は、ルール取得部131、検査部132、検査結果構成部133、および選択インターフェイス構成部134を備える。検査部132は、形態素解析手段1321、比較文字列取得手段1322、差異程度情報取得手段1323、判断手段1324、予測手段1325、および画像判断手段1326を備える。出力部14は、結果出力部141、および選択インターフェイス出力部142を備える。
端末装置2は、端末格納部21、端末受付部22、端末処理部23、端末送信部24、端末受信部25、および端末出力部26を備える。
検査装置1を構成する格納部11には、各種の情報が格納される。各種の情報とは、例えば、後述するユーザ情報、後述する検査ルール、後述する学習器、正例画像である。
正例画像は、正しい画像である。正例画像は、通常、ユーザが登録した画像である。正例画像は、例えば、企業の図形商標、画像商標、ロゴである。
ユーザ情報格納部111には、1または2以上のユーザ情報が格納される。ユーザ情報は、検査装置1を利用するユーザに関する情報である。ユーザ情報は、通常、ユーザ識別子を有する。ユーザ識別子は、ユーザを識別する情報である、例えば、ID、メールアドレス、電話番号、氏名等である。また、ユーザは、組織でも良い。組織は、例えば、企業、地方公共団体である。ユーザが組織である場合、ユーザ識別子は、組織識別子でも良い。
ルール格納部112には、ユーザ識別子ごとに、1以上の検査ルールが格納される。検査ルールは、検査対象を検査するためのルールである。検査対象は、エラーの検査の対象である。検査対象は、文章を含む。文章は、1以上の文からなる。検査対象は、画像を含んでも良い。
検査ルールは、検査対象のエラーの検出ための情報である。検査ルールは、検査のためのプログラムでも良い。検査ルールは、例えば、(1)誤記用語ルール、(2)誤字脱字ルール、(3)不適切用語集合ルール、(4)擬似画像ルール、がある。
(1)誤記用語ルール
誤記用語ルールとは、正解用語に対して誤記用語を検出するための情報である。誤記用語ルールは、1以上の正解用語を含む正解用語辞書を有する。正解用語は、例えば、ユーザが登録した用語である。正解用語は、1つの単語または2以上の連続する単語の文字列である。誤記用語ルールは、例えば、正解用語と誤記用語との距離に関する条件を含む。距離に関する条件は、例えば、「0<距離<=閾値X」「0<距離<閾値X」である。また、距離とは、例えば、編集距離であるが、レーベンシュタイン距離、最小編集距離などでも良い。
(2)誤字脱字ルール
誤字脱字ルールは、誤字や脱字等を検出するための情報である。誤字脱字ルールは、正例文と負例文とに基づく情報であり、例えば、後述する学習装置3が取得する学習器、正解用語と誤字脱字用語とのセットの集合である。誤字脱字用語は、正解用語に対して、誤字や脱字等がある用語である。
(3)不適切用語集合ルール
不適切用語集合ルールとは、2以上の用語が位置条件を満たす位置に配置されていることを検査するための情報である。位置条件は、2以上の用語の相対的な位置に関する条件である。不適切用語集合ルールは、例えば、「用語1と用語2とがN単語以内(Nは自然数)に存在すること」「用語1の後に用語2がN単語以内(Nは自然数)に存在すること」である。不適切用語集合ルールは、例えば、「”絶対”の後の5単語以内に”痩せる”が存在すること」である。
不適切用語集合ルールにより、誇張表現、誤解を生む可能性のある表現等の、ユーザが作成する文として不適切な表現を含む文を検出できる。
(4)擬似画像ルール
擬似画像ルールとは、正例画像に対して、検査対象の画像が擬似画像であると判断するための擬似画像条件を含む。擬似画像ルールは、1以上の正例画像を含む。正例画像とは、ユーザにとっての正しい画像である。正例画像は、例えば、企業のロゴ、企業が保有する図形商標である。なお、擬似画像とは、正例画像に似ている画像である。正例画像と全く異なる画像は擬似画像条件を満たさない。
擬似画像条件は、例えば、検査対象の画像と正例画像との類似度についての条件であり、「閾値Y<類似度<1」「閾値Y<=類似度<1」(類似度が1の場合には一致している場合)である。
擬似画像条件は、例えば、画像の1または2以上の特徴量に関する条件である。特徴量は、例えば、形状に関する特徴量、色に関する特徴量、構成に関する特徴量である。形状に関する特徴量は、例えば、縦横比である。色に関する特徴量は、例えば、モノクロかカラーか、各色の構成の割合である。構成に関する特徴量は、文字列の有無、特定の図形(例えば、三角形、矩形)の有無である。
擬似画像条件は、類似度についての条件および特徴量に関する条件の両方を含むことは好適である。
学習器格納部113は、1または2以上の学習器が格納される。学習器も、ユーザごとに格納されていても良い。つまり、学習器は、ユーザ識別子に対応付いていても良い。
学習器は、後述する学習装置3が取得した情報である。なお、学習器は、学習モデル、モデル等と言っても良い。ここでの学習器は、正例文と当該正例文に対応する1または2以上の負例文とを有する2以上の教師データに対して、機械学習の学習処理を行い取得された情報である。また、正例文は、正しい文である。負例文は、正例文の一部に誤りを含む文である。また、教師データは、誤記パターンを特定するパターン識別子を有することは好適である。なお、パターン識別子は、種類識別子でも良い。
受付部12は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、検査情報、選択である。ここで、受け付けとは、通常、端末装置2からの受信であるが、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
検査情報受付部121は、検査情報を受け付ける。検査情報受付部121は、通常、端末装置2から検査情報を受信する。検査情報は、通常、ユーザ識別子に対応付いている。
選択受付部122は、選択インターフェイス(以下、適宜、「選択IF」と言う。)が有する選択項目に対する選択を受け付ける。選択受付部122は、通常、端末装置2から選択を受信する。選択は、選択項目の項目識別子を有する。項目識別子は、選択項目を特定する情報であれば、何でも良い。
処理部13は、各種の処理を行う。各種の処理は、ルール取得部131、検査部132、検査結果構成部133、選択インターフェイス構成部134が行う処理である。
ルール取得部131は、検査情報受付部121が受け付けた検査情報に対応するユーザ識別子に対応する1以上の検査ルールをルール格納部112から取得する。
ルール取得部131は、例えば、学習器格納部113から学習器を取得する。なお、学習器も検査ルールを構成する情報としても良い。
検査部132は、検査情報受付部121が受け付けた検査情報に対して、ルール取得部131が取得した1以上の各検査ルールを用いて検査を行う。
検査部132は、エラーに関するエラー情報を含む検査の結果を取得することは好適である。エラー情報は、箇所情報と種類識別子とを有する。箇所情報は、エラーの箇所を特定する情報である。箇所情報は、例えば、検査対象内のオフセット、開始アドレスと終了アドレス、文字、文字列、画像のIDなどである。種類識別子は、エラーの種類を識別する情報である。
検査部132は、例えば、2以上の用語が位置条件を満たす位置に配置されていることを検査する検査ルールを用いて、不適切な表現を検出する。
形態素解析手段1321は、検査情報が有する文章に対して形態素解析を行い、2以上の形態素を取得する。形態素解析手段1321は、通常、検査情報が有する文章が有する1以上の各文に対して、形態素解析を行い、2以上の形態素を取得する。形態素解析の技術は公知技術であるので、詳細な説明を省略する。
比較文字列取得手段1322は、形態素解析手段1321が取得した2以上の形態素から、2以上の比較文字列を取得する。比較文字列は、一つの形態素、または連続する2以上の形態素の文字列である。
文「高いカスタマイズ性を実現」を、形態素解析手段1321が「高い|カスタマイズ|性|を|実現」と5つの形態素に分けた場合、比較文字列取得手段1322は、例えば、比較文字列「高い」「高いカスタマイズ」「高いカスタマイズ性」「高いカスタマイズ性を」「高いカスタマイズ性を実現」「カスタマイズ」「カスタマイズ性」「カスタマイズ性を」「カスタマイズ性を実現」「性」「性を」「性を実現」「を」「を実現」「実現」を取得する。
差異程度情報取得手段1323は、比較文字列と正解用語との差異程度情報を取得する。差異程度情報取得手段1323は、比較文字列取得手段1322が取得した2以上の各比較文字列に対する、1以上の各正解用語との差異程度情報を取得する。差異程度情報は、差異の程度を特定する情報である。差異程度情報は、例えば、距離である。差異程度情報は、編集距離が好適であるが、レーベンシュタイン距離、最小編集距離等でも良い。差異程度情報は、例えば、差異の文字数でも良い。
差異程度情報取得手段1323は、比較文字列の文字数と正解用語の文字数との差が閾値以上または閾値より大きい場合には、当該比較文字列と当該正解用語との差異程度情報を取得しないことは好適である。つまり、文字数の差が大きな2つの文字列間の差異程度情報を算出しないことにより、処理速度を速くすることができる。文字数の差が大きな2つの文字列は、誤記等ではなく、無関係な文字列である、として処理を進めることは好適である。
差異程度情報取得手段1323は、比較文字列または比較文字列と比較する正解用語の文字数を取得し、当該文字数に応じた差異程度情報を取得することは好適である。文字数に応じた差異程度情報とは、通常、文字数が多いほど、1文字の差異が差異程度情報に及ぼす差異の程度に影響されにくい。文字数に応じた差異程度情報とは、通常、文字数が少ないほど、1文字の差異が差異程度情報に及ぼす差異の程度に対する影響が大きくなる。
判断手段1324は、差異程度情報が特定する差異の程度が0ではなく、閾値以内または閾値より小さい場合に、対応する比較文字列が誤記であると判断する。なお、ここでの誤記は、誤っていることを示し、脱字等も含む、とする。
予測手段1325は、検査情報が有する1以上の各文と学習器とを用いて、機械学習の予測処理を行い、1以上の各文ごとに、誤字または脱字の箇所を特定する箇所情報を取得する。箇所情報は、文章内における箇所を特定する情報である。箇所情報は、例えば、検査対象内のオフセット、検査対象内の開始アドレスと終了アドレス、文字、文字列等である。予測手段1325は、箇所情報と種類情報とを有するエラー情報を取得することは好適である。
予測手段1325は、検査情報が有する1以上の各文と学習器とを用いて、機械学習の予測処理を行い、1以上の各文ごとに、パターン識別子をも取得することは好適である。機械学習の予測処理のアルゴリズムは問わない。機械学習は、例えば、深層学習が好適であるが、ランダムフォレスト、決定木等でも良い。
画像判断手段1326は、検査情報が有する1以上の画像を取得し、当該1以上の各画像と正例画像との差異に関する画像差異情報を取得する。そして、画像判断手段1326は、画像差異情報が特定する差異に関する情報が、擬似画像条件を満たすか否かを判断する。画像差異情報は、例えば、2つの画像の類似度、2つの画像の各特徴量の差異である。特徴量は、例えば、縦横比、色分布、文字列の有無であるが、問わない。
画像判断手段1326は、例えば、正例画像と検査画像との類似度を算出する。なお、検査画像は、検査対象の画像である。
そして、画像判断手段1326は、例えば、当該類似度が、擬似画像条件に含まれる類似度についての条件を満たすか否かを判断する。類似度についての条件を満たす場合、画像判断手段1326は、例えば、正例画像の1種類以上の特徴量と検査画像の1種類以上の特徴量とを取得する。そして、画像判断手段1326は、例えば、種類ごとに、2つの特徴量を比較し、検査画像が擬似画像であるか否かを判断する。
画像判断手段1326は、検査画像が擬似画像である場合、例えば、検査情報の中の当該画像の箇所を特定する箇所情報を取得する。また、画像判断手段1326は、例えば、種類識別子「擬似画像」を取得する。
検査結果構成部133は、検査部132における検査の結果を用いて、出力する検査結果を構成する。
検査結果構成部133は、例えば、誤記であると判断された比較文字列を特定する検査結果を構成する。検査結果構成部133は、例えば、誤記であると判断された比較文字列を特定する箇所を視覚的に認識可能な検査結果を構成する。
検査結果構成部133は、例えば、誤字または脱字の箇所を特定する箇所情報を有する検査結果を構成する。
検査結果構成部133は、例えば、パターン識別子に対応する種類識別子をも有する検査結果を構成する。
検査結果構成部133は、例えば、検査情報が有する画像が擬似画像条件を満たす場合に、画像がエラーである旨の検査結果を構成する。
検査結果構成部133は、例えば、選択に対する選択項目に対応する種類識別子と対になる1以上の箇所情報に対応するエラーを、他の箇所情報に対応するエラーと比較して、視覚的に異なる検査結果を構成する。また、視覚的に異なる検査結果とは、当該種類識別子と対になる1以上の箇所情報に対応するエラーのみを含む検査結果でも良い。
検査結果構成部133は、例えば、箇所情報および種類識別子を視覚的に明示する態様の検査結果を構成する。
選択インターフェイス構成部134は、選択インターフェイスを構成する。選択インターフェイスは、1または2以上の選択項目を有するインターフェイスである。選択インターフェイスは、検査結果が有する種類識別子をユニーク処理した結果の1以上の各種類識別子を選択項目として有し、検査結果が有さない種類識別子を選択項目として有さないインターフェイスである。選択インターフェイスは、例えば、メニュー、ボタンの集合、チェックボックスの集合などである。選択項目とは、選択可能な項目である。選択項目は、例えば、メニュー項目、ボタン、チェックボックスなどである。
選択インターフェイス構成部134は、通常、検査結果が有する種類識別子をすべて取得し、当該種類識別子に対してユニーク処理をし、各々異なる1以上の各種類識別子を選択項目とする選択インターフェイスを構成する。選択インターフェイスは、検査結果が有するすべての種類識別子に対応する選択項目(例えば、「すべて」)を有しても良い。選択インターフェイスは、検査結果が有さない種類識別子に対応する選択項目は有さない。
出力部14は、各種の情報を出力する。各種の情報とは、例えば、検査結果である。ここで、出力とは、通常、端末装置2への送信であるが、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念であっても良い。
結果出力部141は、検査結果構成部133が構成した検査結果を出力する。結果出力部141は、例えば、端末装置2に検査結果を送信する。
選択インターフェイス出力部142は、選択インターフェイスを出力する。
端末装置2を構成する端末格納部21には、各種の情報が格納される。各種の情報は、例えば、ユーザ識別子、検査情報である。
端末受付部22は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、検査情報、選択指示である。なお、選択指示は、選択項目を選択する指示である。
端末処理部23は、各種の処理を行う。各種の処理とは、例えば、端末受付部22が受け付けた指示や情報を、送信するデータ構造の指示や情報にする処理である。各種の処理とは、例えば、端末受信部25が受信した情報を、出力するデータ構造の情報にする処理である。
端末送信部24は、各種の指示や情報を送信する。各種の指示や情報は、例えば、検査情報、ユーザ識別子、選択項目の選択の指示である。
端末受信部25は、各種の情報を受信する。各種の情報は、例えば、検査結果、選択インターフェイスである。
端末出力部26は、各種の情報を出力する。各種の情報は、例えば、検査情報、検査結果、選択インターフェイスである。
格納部11、ユーザ情報格納部111、ルール格納部112、学習器格納部113、および端末格納部21は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。
受付部12、ルール取得部131、検査部132、検査結果構成部133、選択インターフェイス構成部134、および端末受信部25は、通常、無線または有線の通信手段で実現される。
処理部13、ルール取得部131、検査部132、検査結果構成部133、選択インターフェイス構成部134、形態素解析手段1321、比較文字列取得手段1322、差異程度情報取得手段1323、判断手段1324、予測手段1325、画像判断手段1326、および端末処理部23は、通常、プロセッサやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、MPU、CPU、GPU等であり、その種類は問わない。
出力部14、結果出力部141、選択インターフェイス出力部142、および端末送信部24は、通常、無線または有線の通信手段で実現される。
端末受付部22は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部26は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部26は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムAの動作例について説明する。まず、検査装置1の動作例について、図3のフローチャートを用いて説明する。
(ステップS301)検査情報受付部121は、検査情報等を受け付けたか否かを判断する。検査情報等を受け付けた場合はステップS302に行き、検査情報等を受け付けなかった場合はステップS301に戻る。なお、ここでの受け付けは、通常、端末装置2からの受信であるが、ユーザの入力の受け付けでも良い。また、検査情報等とは、例えば、検査情報とユーザ識別子である。ただし、検査情報とユーザ識別子とは、同時に受け付けなくても良い。
(ステップS302)処理部13は、検査情報に対する検査処理を行う。検査処理の例について、図4のフローチャートを用いて説明する。
(ステップS303)検査結果構成部133は、検査結果構成処理を行う。検査結果構成処理の例について、図9のフローチャートを用いて説明する。
(ステップS304)結果出力部141は、ステップS303で構成された検査結果を出力する。なお、ここでの出力は、通常、端末装置2への送信であるが、ディスプレイへの表示、記録媒体への蓄積等でも良い。
(ステップS305)受付部12は、ステップS304で出力された検査結果に対して、選択IF出力指示を受け付けたか否かを判断する。選択IF出力指示を受け付けた場合はステップS306に行き、選択IF出力指示を受け付けなかった場合はステップS313に行く。なお、ここでの受け付けは、通常、端末装置2からの受信であるが、ユーザの入力の受け付けでも良い。
(ステップS306)選択インターフェイス構成部134は、選択インターフェイス構成処理を行う。選択IF構成処理の例について、図10のフローチャートを用いて説明する。
(ステップS307)選択インターフェイス出力部142は、ステップS306で構成された選択インターフェイスを出力する。ここでの出力は、通常、端末装置2への送信である。
(ステップS308)選択受付部122は、ステップS307で出力された選択インターフェイスにおいて、1以上の選択項目が選択されたか否かを判断する。選択項目が選択された場合はステップS309に行き、選択項目が選択されなかった場合はステップS311に行く。なお、ここでの受け付けは、通常、端末装置2からの受信であるが、ユーザの入力の受け付けでも良い。
(ステップS309)検査結果構成部133は、選択された選択項目に対応する検査結果を構成する。かかる選択検査結果構成処理の例について、図11のフローチャートを用いて説明する。
(ステップS310)結果出力部141は、ステップS309で取得された検査結果を出力する。なお、ここでの出力は、通常、端末装置2への送信であるが、ディスプレイへの表示、記録媒体への蓄積等でも良い。
(ステップS311)受付部12は、検査結果の出力終了の指示を受け付けたか否かを判断する。出力終了の指示を受け付けた場合はステップS312に行き、出力終了の指示を受け付けなかった場合はステップS308に戻る。
(ステップS312)処理部13は、検査結果の出力を終了するための処理を行う。ステップS301に戻る。なお、かかる処理は、例えば、端末装置2との通信の切断、ユーザのログアウト処理等である。
(ステップS313)受付部12は、検査結果の出力終了の指示を受け付けたか否かを判断する。出力終了の指示を受け付けた場合はステップS314に行き、出力終了の指示を受け付けなかった場合はステップS305に戻る。
(ステップS314)処理部13は、検査結果の出力を終了するための処理を行う。ステップS301に戻る。
なお、図3のフローチャートにおいて、後述するように、ステップS305からS314の処理は、端末装置2が行っても良い。
また、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS302の検査処理の例について、図4のフローチャートを用いて説明する。
(ステップS401)ルール取得部131は、受け付けられた検査情報に対応するユーザ識別子を取得する。
(ステップS402)ルール取得部131は、ステップS401で取得したユーザ識別子と対になる1以上の検査ルールをルール格納部112から取得する。なお、ルール取得部131は、2以上のユーザが共通に使用する1以上の検査ルールをもルール格納部112から取得しても良い。
(ステップS403)検査部132は、カウンタiに1を代入する。
(ステップS404)検査部132は、受け付けられた検査情報の中に、i番目の文が存在するか否かを判断する。i番目の文が存在する場合はステップS405に行き、i番目の文が存在しない場合はステップS411に行く。
(ステップS405)検査部132は、検査情報からi番目の文を取得する。
(ステップS406)検査部132は、カウンタjに1を代入する。
(ステップS407)検査部132は、ステップS402で取得された1以上の検査ルールの中から、j番目の文に対応する検査ルールが存在するか否かを判断する。j番目の文に対応する検査ルールが存在する場合はステップS408に行き、存在しない場合はステップS410に行く。
(ステップS408)検査部132は、j番目の文に対応する検査ルールを用いて、i番目の文を検査する。かかる文検査処理の例について、図5、図6、図7のフローチャートを用いて説明する。なお、検査部132は、図5、図6、図7のすべてのフローチャートにおける検査を行うことは好適である。
(ステップS409)検査部132は、カウンタjを1、インクリメントする。ステップS407に戻る。
(ステップS410)検査部132は、カウンタiを1、インクリメントする。ステップS404に戻る。
(ステップS411)検査部132は、カウンタkに1を代入する。
(ステップS412)検査部132は、検査情報の中に、k番目の検査画像が存在するか否かを判断する。k番目の検査画像が存在する場合はステップS413に行き、存在しない場合は上位処理にリターンする。
(ステップS413)検査部132は、カウンタlに1を代入する。
(ステップS414)検査部132は、l番目の正例画像に対応する検査ルールが存在するか否かを判断する。かかる検査ルールが存在する場合はステップS415に行き、存在しない場合はステップS417に行く。なお、正例画像は、1または2以上、存在し得る。また、検査ルールも、1または2以上、存在し得る。
(ステップS415)検査部132は、l番目の正例画像に対応する検査ルールを用いて、k番目の検査対象の画像に対する画像検査処理を行う。画像検査処理の例について、図8のフローチャートを用いて説明する。
(ステップS416)検査部132は、カウンタlを1、インクリメントする。ステップS414に戻る。
(ステップS417)検査部132は、カウンタkを1、インクリメントする。ステップS412に戻る。
次に、ステップS408の文検査処理の第一の例について、図5、図6、図7のフローチャートを用いて説明する。第一の例(文検査1)は、正解用語に対する誤記を検査である。
(ステップS501)形態素解析手段1321は、対象となる文に対して形態素解析し、文を形態素に分ける。なお、ここで、検査部132は、対象となる文を1または2以上の単語に分けても良い。
(ステップS502)比較文字列取得手段1322は、カウンタiに1を代入する。
(ステップS503)比較文字列取得手段1322は、ステップS501で取得した1以上の形態素の中で、i番目の形態素が存在するか否かを判断する。i番目の形態素が存在する場合はステップS504に行き、i番目の形態素が存在しない場合は上位処理にリターンする。
(ステップS504)比較文字列取得手段1322は、カウンタjに1を代入する。
(ステップS505)比較文字列取得手段1322は、i番目の形態素を先頭に含むj番目の比較文字列が存在するか否かを判断する。j番目の比較文字列が存在する場合はステップS506に行き、j番目の比較文字列が存在しない場合はステップS519に行く。なお、j番目の比較文字列は、i番目の形態素を先頭に含む文字列であり、1または2以上の連続する形態素からなる文字列である。
(ステップS506)比較文字列取得手段1322は、i番目の形態素を先頭に含むj番目の比較文字列を取得する。
(ステップS507)差異程度情報取得手段1323は、ステップS506で取得した比較文字列の文字数(N1)を取得する。
(ステップS508)差異程度情報取得手段1323は、カウンタkに1を代入する。
(ステップS509)差異程度情報取得手段1323は、k番目の正解用語が、ルール格納部112の中の正解用語辞書の中に存在するか否かを判断する。k番目の正解用語が存在する場合はステップS510に行き、存在しない場合はステップS518に行く。
(ステップS510)差異程度情報取得手段1323は、k番目の正解用語を正解用語辞書から取得する。
(ステップS511)差異程度情報取得手段1323は、ステップS510で取得した正解用語の文字数(N2)を取得する。
(ステップS512)差異程度情報取得手段1323は、N1とN2とが予め決められた条件を満たすか否かを判断する。条件を満たす場合はステップS513に行き、条件を満たさない場合はステップS517に行く。なお、予め決められた条件は、例えば、N1とN2との差に関する条件であり、通常、差が小さいことであり、例えば、「|N1-N2|<閾値」「|N1-N2|<=閾値」である。
(ステップS513)差異程度情報取得手段1323は、k番目の正解用語とステップS506で取得した比較文字列との差異程度情報を取得する。なお、差異程度情報は、例えば、2つの文字列の編集距離である。
(ステップS514)判断手段1324は、条件を取得する。なお、検査部132は、N1、またはN2、またはN1とN2に応じた条件を取得することは好適である。
(ステップS515)判断手段1324は、差異程度情報がステップS514で取得した条件を満たすか否かを判断する。条件を満たす場合はステップS516に行き、条件を満たさない場合はステップS517に行く。
(ステップS516)判断手段1324は、j番目の比較文字列の箇所情報と、エラーの種類を特定する種類識別子(ここでは、例えば、「表現のゆらぎ」)とを取得し、図示しないバッファに蓄積する。ステップS518に行く。
(ステップS517)差異程度情報取得手段1323は、カウンタkを1、インクリメントする。ステップS509に戻る。
(ステップS518)比較文字列取得手段1322は、カウンタjを1、インクリメントする。ステップS503に戻る。
(ステップS519)比較文字列取得手段1322は、カウンタiを1、インクリメントする。ステップS505に戻る。
次に、ステップS408の文検査処理の第二の例について、図6、図7のフローチャートを用いて説明する。第二の例(文検査2)は、複数の用語を用いた不適切な表現に対する検査である。ここでの検査ルールは、『「用語1」「相対位置」「用語2」』の構造を有するルールである。ここでの検査ルールは、例えば、『用語1の後のN用語以内に用語2が存在すること』である。例えば、検査ルールは、『「絶対」の後「5」単語以内に「痩せる」が存在する』である。
(ステップS601)形態素解析手段1321は、対象となる文に対して形態素解析し、文を形態素に分ける。
(ステップS602)検査部132は、カウンタiに1を代入する。
(ステップS603)検査部132は、ステップS601で取得した1以上の形態素の中で、i番目の形態素が存在するか否かを判断する。i番目の形態素が存在する場合はステップS504に行き、i番目の形態素が存在しない場合は上位処理にリターンする。
(ステップS604)検査部132は、カウンタjに1を代入する。
(ステップS605)検査部132は、j番目の検査ルールが存在するか否かを判断する。j番目の検査ルールが存在する場合はステップS606に行き、j番目の検査ルールが存在しない場合はステップS615に行く。
(ステップS606)検査部132は、i番目の形態素を取得する。なお、i番目の形態素を「用語1」とする。
(ステップS607)検査部132は、ステップS606で取得した「用語1」がj番目の検査ルールの「用語1」と一致するか否かを判断する。一致する場合はステップS608に行き、一致しない場合はステップS614に行く。
(ステップS608)検査部132は、「用語1」に対して、j番目の検査ルールの相対位置に対応する1以上の「用語2」を取得する。なお、検査ルールが『「絶対」の後「5」単語以内に「痩せる」が存在する』である場合、相対位置は、用語1の後の1つ目から5つ目までの形態素を取得する。
(ステップS609)検査部132は、カウンタkに1を代入する。
(ステップS610)検査部132は、ステップS608で取得した「用語2」の中で、k番目の形態素が存在するか否かを判断する。k番目の形態素が存在する場合はステップS607に行き、k番目の形態素が存在しない場合はステップS614に行く。
(ステップS611)検査部132は、k番目の形態素(用語2)が、j番目の検査ルールの「用語2」と一致するか否かを判断する。一致する場合はステップS612に行き、一致しない場合はステップS613に行く。
(ステップS612)検査部132は、「用語1」「用語2」に対応する箇所情報と種類識別子(ここでは、例えば、「不適切表現」)とを取得し、図示しないバッファに蓄積する。
(ステップS613)検査部132は、カウンタkを1、インクリメントする。ステップS610に戻る。
(ステップS614)検査部132は、カウンタjを1、インクリメントする。ステップS605に戻る。
(ステップS615)検査部132は、カウンタiを1、インクリメントする。ステップS603に戻る。
次に、ステップS408の文検査処理の第三の例について、図7のフローチャートを用いて説明する。第三の例(文検査3)は、誤字脱字の検査である。
(ステップS701)予測手段1325は、学習器格納部113から学習器を取得する。
(ステップS702)予測手段1325は、検査対象の文を取得する。
(ステップS703)予測手段1325は、学習器と文とを用いて、予測処理を行い、予測結果を取得する。
(ステップS704)予測手段1325は、カウンタiに1を代入する。
(ステップS705)予測手段1325は、ステップS703で取得された予測結果の中に、i番目のエラーが存在するか否かを判断する。i番目のエラーが存在する場合はステップS706に行き、存在しない場合は上位処理にリターンする。
(ステップS706)予測手段1325は、i番目のエラーに対応する箇所情報とi番目のエラー含まれる種類識別子とを取得し、図示しないバッファに蓄積する。
(ステップS707)予測手段1325は、カウンタiを1、インクリメントする。ステップS705に戻る。
次に、ステップS415の画像検査処理の例について、図8のフローチャートを用いて説明する。
(ステップS801)画像判断手段1326は、検査画像または正例画像のサイズを調整する。なお、サイズの調整とは、例えば、縦または横のサイズを合わせることである。
(ステップS802)画像判断手段1326は、検査画像と正例画像との類似度を算出する。なお、類似度は、画像差異情報の一例である。
(ステップS803)画像判断手段1326は、ステップS802で取得した類似度が、擬似画像条件を満たすか否かを判断する。条件を満たす場合はステップS804に行き、条件を満たさない場合は上位処理にリターンする。
(ステップS804)画像判断手段1326は、正例画像の1以上の特徴量を取得する。
(ステップS805)画像判断手段1326は、検査画像の1以上の特徴量を取得する。
(ステップS806)画像判断手段1326は、カウンタiに1を代入する。
(ステップS807)画像判断手段1326は、i番目の種類の特徴量が存在するか否かを判断する。i番目の種類の特徴量が存在する場合はステップS808に行き、存在しない場合は上位処理にリターンする。
(ステップS808)画像判断手段1326は、正例画像のi番目の種類の特徴量と検査画像のi番目の種類の特徴量とが条件を満たすか否かを判断する。条件を満たす場合はステップS809に行き、条件を満たさない場合はステップS810に行く。
(ステップS809)画像判断手段1326は、検査画像の位置を特定する箇所情報と、i番目の種類の特徴量に対応する種類識別子とを取得し、図示しないバッファに蓄積する。
(ステップS810)画像判断手段1326は、カウンタlを1、インクリメントする。ステップS807に行く。
次に、ステップS303の検査結果構成処理の例について、図9のフローチャートを用いて説明する。
(ステップS901)検査結果構成部133は、検査情報を取得する。
(ステップS902)検査結果構成部133は、カウンタiに1を代入する。
(ステップS903)検査結果構成部133は、図示しないバッファに、i番目のエラー情報が存在するか否かを判断する。i番目のエラー情報が存在すればステップS904に行き、存在しなければ上位処理にリターンする。なお、エラー情報は、箇所情報と種類識別子とを有する。
(ステップS904)検査結果構成部133は、i番目のエラー情報から箇所情報を取得する。
(ステップS905)検査結果構成部133は、i番目のエラー情報から種類識別子を取得する。
(ステップS906)検査結果構成部133は、検査情報を含む検査結果において、箇所情報に対応する情報に対して、種類識別子に対応するエラーの種類を特定できる表示とする。
(ステップS907)検査結果構成部133は、カウンタiを1、インクリメントする。ステップS903に戻る。
次に、ステップS306の選択IF構成処理の例について、図10のフローチャートを用いて説明する。
(ステップS1001)選択インターフェイス構成部134は、図示しないバッファのすべてのエラー情報から種類識別子を取得する。
(ステップS1002)選択インターフェイス構成部134は、種類識別子ごとのエラー数を取得する。種類識別子ごとのエラー数は、種類識別子ごとのエラー情報の数である。
(ステップS1003)選択インターフェイス構成部134は、ステップS1001で取得した種類識別子をユニーク処理する。
(ステップS1004)選択インターフェイス構成部134は、種類識別子をソートする。なお、選択インターフェイス構成部134は、例えば、ステップS1002で取得したエラー数をキーとして、降順に、種類識別子をソートする。また、選択インターフェイス構成部134は、例えば、予め決められた種類識別子の優先順位に従って、種類識別子をソートする。
(ステップS1005)選択インターフェイス構成部134は、種類識別子に対応する文字列または画像を選択項目として有する選択インターフェイスを構成する。上位処理にリターンする。
なお、図10のフローチャートにおいて、選択インターフェイス構成部134は、予め決められた選択項目(例えば、「すべて」)をも有する選択インターフェイスを構成しても良い。
次に、ステップS309の選択検査結果構成処理の例について、図11のフローチャートを用いて説明する。
(ステップS1101)検査結果構成部133は、検査情報を取得する。
(ステップS1102)検査結果構成部133は、選択に対応する種類識別子を取得する。
(ステップS1103)検査結果構成部133は、カウンタiに1を代入する。
(ステップS1104)検査結果構成部133は、ステップS1102で取得した種類識別子を含むi番目のエラー情報が図示しないバッファに存在するか否かを判断する。i番目のエラー情報が存在する場合はステップS1105に行き、存在しない場合は上位処理にリターンする。
(ステップS1105)検査結果構成部133は、i番目のエラー情報が有する箇所情報を取得する。
(ステップS1106)検査結果構成部133は、検査情報を含む検査結果において、ステップS1105で取得した箇所情報に対応する情報に対して、他と異なる表示とする。他と異なる表示とは、例えば、強調すること、他の種類識別子のエラーについては表示しないこと等である。
(ステップS1107)検査結果構成部133は、カウンタiを1、インクリメントする。ステップS1104に戻る。
次に、端末装置2の動作例について、図12のフローチャートを用いて説明する。図12のフローチャートにおいて、図3のフローチャートと同一のステップについて、説明は省略する。
(ステップS1201)端末受付部22は、検査情報を受け付けたか否かを判断する。検査情報を受け付けた場合はステップS1202に行き、検査情報を受け付けなかった場合はステップS1201に戻る。
(ステップS1202)端末処理部23は、端末格納部21のユーザ識別子を取得する。また、端末処理部23は、ユーザ識別子と検査情報とを対応付ける。端末送信部24は、ユーザ識別子と検査情報とを検査装置1に送信する。
(ステップS1203)端末受信部25は、検査装置1から検査結果を受信したか否かを判断する。検査結果を受信した場合はステップS1204に行き、検査結果を受信しなかった場合はステップS1203に戻る。
(ステップS1204)端末処理部23は、ステップS1203で受信された検査結果を出力する構造にする。端末出力部26は、当該検査結果を出力する。ステップS305に行く。
なお、図12のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報システムAの具体的な動作例について説明する。
ユーザ識別子「U001」のユーザAを含む2以上の各ユーザは、自社の特有の検査ルールを、端末装置2に入力し、検査装置1に登録した、とする。その結果、検査装置1のルール格納部112には、図13に示すルール管理表が格納された、とする。なお、ユーザが端末装置2に検査ルールを入力するインターフェイス等は問わない。
また、図13のルール管理表は、ユーザごとの検査ルールを管理する表である。ルール管理表は、「ID」「検査ルール」「種類識別子」「ユーザ識別子」を有する1以上のレコードを管理する。
また、学習器格納部113には、後述する学習装置3が取得した学習器が格納されている。また、ここでは、学習器は、例えば、学習器1、学習器2等であり、ユーザ識別子に対応付いている、とする。ただし、学習器は、2以上のユーザに共通の情報でも良い。
また、図13の「ID=57」の検査ルールは、擬似画像の検出のためのルールであり、正例画像1301に対して、条件「<縦横比>一致 <文字列>有 <色>一致」を含む。「<縦横比>一致 <文字列>有 <色>一致」は、正例画像1301に対して、縦横比が一致し、かつ画像だけでは無く文字列(ここでは、「MIRASENSES」)を有し、かつ色も一致する画像以外を擬似画像として、エラー検出することを示す。
かかる状況において、以下の4つの具体例について説明する。具体例1は、各種の文の検査を行う場合である。具体例2は、検査結果から選択インターフェイスを構成し、出力する場合である。具体例3は、選択インターフェイスを用いて、選択された項目に対応するエラーのみを出力する場合である。具体例4は、擬似画像を検知する場合である。
(具体例1)
今、ユーザ識別子「U001」のユーザAは、検査して欲しい検査情報を端末装置2に入力した、とする。すると、端末装置2から当該検査情報とユーザ識別子「U001」とが検査装置1に送信される。
次に、検査装置1の検査情報受付部121は、当該検査情報とユーザ識別子「U001」とを受信する。
次に、処理部13は、以下のように、検査情報に対する検査処理を行う。まず、ルール取得部131は、受信されたユーザ識別子「U001」と対になる1以上の検査ルールを、図13のルール管理表から取得する。
次に、検査部132は、まず、「ID=1」の検査ルールを検査情報に適用し、図5のフローチャートを用いて説明した動作により、「インターフェース」の表記揺れを検知し、その箇所情報と種類識別子「表記揺れ」とを有するエラー情報を、図示しないバッファに蓄積する。
また、検査部132は、「ID=2」の検査ルールを検査情報に適用し、図5のフローチャートを用いて説明した動作により、「データベース」の表記揺れを検知し、その箇所情報と種類識別子「表記揺れ」とを有するエラー情報を、図示しないバッファに蓄積する。
また、検査部132は、「ID=28」の検査ルールを検査情報に適用し、図6のフローチャートを用いて説明した動作により、用語1「絶対」の後5単語以内に用語2「痩せる」を含む表現が存在するか否かを判断する。存在すれば、当該用語1と当該用語2の箇所情報および種類識別子「誇張表現」とを有するエラー情報を、図示しないバッファに蓄積する。
同様に、検査部132は、「ID=29」の検査ルールを検査情報に適用し、図6のフローチャートを用いて説明した動作により、用語1「完全」の後3単語以内に用語2「消える」を含む表現が存在するか否かを判断する。存在すれば、当該用語1と当該用語2の箇所情報および種類識別子「誇張表現」とを有するエラー情報を、図示しないバッファに蓄積する。
さらに、検査部132は、「ID=56」の検査ルールを検査情報に適用し、図7のフローチャートを用いて説明した動作により、ユーザ識別子「U001」と対になる学習器1を、学習器格納部113から取得する。また、検査部132は、学習器1と検査装置の各文とを用いて、予測処理を行い、予測結果を取得する。また、検査部132は、予測結果に含まれる1以上のエラー情報を図示しないバッファに蓄積する。なお、この予測結果は、誤字または脱字の箇所情報と種類識別子「誤字脱字」とを有する1以上のエラー情報を含む、とする。
以上のような検査処理が完了した後、検査結果構成部133は、図9のフローチャートを用いて説明した検査結果構成処理を行う。次に、結果出力部141は、構成された検査結果を端末装置2に送信する。
次に、端末装置2は、検査結果を受信し、出力する。かかる出力例は、図14である。図14において、1401は、検査情報の文章である。また、図14において、エラーの箇所、エラーの種類(種類識別子)が視覚的に認識可能に、検査情報が表示されている。図14において、エラーの箇所の文字列の背景が、種類識別子に応じた色になっている。また、図14の1402は、エラー情報ごとに、エラーの内容を明示する態様で、エラー情報の集合が出力されている。
(具体例2)
具体例1における処理の後、ユーザAは、端末装置2に表示された図14における1403を指示した、とする。すると、端末装置2は、選択IF出力指示を受け付けた、とする。そして、端末装置2は、選択IF出力指示を検査装置1に送信する。
次に、検査装置1の受付部12は、選択IF出力指示を受信する。そして、選択インターフェイス構成部134は、以下のように選択インターフェイス構成処理を行う。つまり、選択インターフェイス構成部134は、図示しないバッファのすべてのエラー情報から種類識別子を取得する。ここで、選択インターフェイス構成部134は、複数の「表記揺れ」、多数の「誤字脱字」、および「表記揺れグループ表示」を取得した、とする。なお、図示しないバッファのエラー情報(具体例1で検出されたエラーのエラー情報)は、「擬似画像」を有さなかった、とする。
次に、選択インターフェイス構成部134は、取得した種類識別子ごとのエラー数を取得する。
次に、選択インターフェイス構成部134は、取得した種類識別子をユニーク処理し、「表記揺れ」、「誤字脱字」、および「表記揺れグループ表示」を取得する。次に、選択インターフェイス構成部134は、例えば、取得したエラー数をキーとして、降順に、種類識別子をソートし、種類識別子を「誤字脱字」、「表記揺れ」、「表記揺れグループ表示」の順に取得した、とする。
次に、選択インターフェイス構成部134は、デフォルトの選択項目「すべて」「ユーザー定義-ルール」「ユーザー定義-正誤表」「その他ルール」を格納部11から取得する。そして、選択インターフェイス構成部134は、デフォルトの選択項目の下に、選択項目「誤字脱字」、「表記揺れ」、「表記揺れグループ表示」を順に配置した選択インターフェイス(ここでは、メニュー)を構成する。
次に、選択インターフェイス出力部142は、構成されたメニューを端末装置2に送信する。
次に、端末装置2は、メニューを受信し、出力する。かかる出力例は、図15である。また、選択インターフェイスであるメニューの例は、図15の1501である。1501は、エラーとして検知されなかった種類識別子に対応するメニュー項目「擬似画像」を有さない。
なお、選択インターフェイス構成処理、および選択インターフェイスの出力処理は、検査装置1ではなく、端末装置2が行っても良い。かかる場合、選択インターフェイス構成処理のための端末装置2と検査装置1との通信は発生せず、好適である。
(具体例3)
次に、ユーザAは、図15の1501のメニューから選択項目「誤字脱字」を選択した、とする。すると、端末装置2は、選択項目「誤字脱字」の選択を受け付ける。次に、端末装置2は、当該選択項目「誤字脱字」を特定する選択を検査装置1に送信する。
次に、検査装置1の選択受付部122は、選択項目「誤字脱字」を特定する選択の指示を受信する。
そして、検査結果構成部133は、選択された選択項目「誤字脱字」に対応する種類識別子「誤字脱字」と対になる多数の箇所情報を、エラー情報から取得する。そして、検査結果構成部133は、取得した箇所情報に対応する情報のみをエラーの箇所として明示する検査結果を構成する。次に、結果出力部141は、取得された検査結果を端末装置2に送信する。
端末装置2は、当該検査結果を受信し、出力する。かかる検査結果は、「誤字脱字」に対応するエラーのみが明示された検査結果である。
(具体例4)
ここで、ユーザAは、図16の検査情報を端末装置2に入力した、とする。そして、端末装置2は、ユーザ識別子「U001」と対にして、当該検査情報を検査装置1に送信する。
次に、検査装置1の検査情報受付部121は、ユーザ識別子「U001」と当該検査情報とを受信する。
次に、ルール取得部131は、受信されたユーザ識別子「U001」と対になる1以上の検査ルールを、図13のルール管理表から取得する。
次に、検査部132は、図16の検査情報の中の各文に対して、上述した検査を行う。ここで、図16の検査情報の中の各文に対する検査の結果、検査部132は、エラー情報を取得しなかった、とする。
次に、検査部132は、図13の「ID=57」の検査ルールを用いた擬似画像の検査を以下のように行う。
つまり、まず、検査部132は、図16の検査情報の中の検査画像1601を取得する。次に、検査部132は、検査画像1601の縦のサイズを正例画像の縦のサイズと同じになり、かつ検査画像1601の縦横比を代えないように、検査画像1601を、拡大または縮小する。
次に、検査部132は、検査画像1601と正例画像との類似度「S1」を算出した、とする。次に、検査部132は、類似度「S1」は、擬似画像条件(ここでは、「0.8<=類似度(S)<1」)を満たす、と判断した、とする。
次に、検査部132は、正例画像の3つの特徴量(<縦横比>AR0 <文字列>有 <色分布>色分布情報0)を取得した、とする。なお、「AR0」は、縦横比の数値であり、「色分布情報0」は、色分布を特定する情報である、とする。
次に、検査部132は、検査画像1601の3つの特徴量(<縦横比>AR0 <文字列>有 <色分布>色分布情報1)を取得した、とする。
次に、検査部132は、検査画像1601について、<縦横比>と<文字列>とは条件を満たす(一致する)、と判断する。一方、検査部132は、検査画像1601について、<色分布>が一致しないので、「色が異なる」と判断する。つまり、検査部132は、検査画像1601が擬似画像であり、「色が異なる」との検査結果を取得する。
ここで、検査部132は、検査画像1601の検査情報内における箇所を特定する箇所情報、種類識別子「擬似画像」、およびエラーの内容「色が異なる」を有するエラー情報を取得し、図示しないバッファに一時蓄積した、とする。
次に、検査部132は、図16の検査情報の中の検査画像1602を取得する。次に、検査部132は、検査画像1602の縦のサイズを正例画像の縦のサイズと同じになり、かつ検査画像1602の縦横比を代えないように、検査画像1602を、拡大または縮小する。
次に、検査部132は、検査画像1602と正例画像との類似度「S2」を算出した、とする。次に、検査部132は、類似度「S2」は、擬似画像条件(ここでは、「0.8<=類似度(S)<1」)を満たす、と判断した、とする。
次に、検査部132は、検査画像1602の3つの特徴量(<縦横比>AR1 <文字列>有 <色分布>色分布情報0)を取得した、とする。
次に、検査部132は、検査画像1602について、<色分布>と<文字列>とは条件を満たす、と判断する。一方、検査部132は、検査画像1601について、<縦横比>が一致しないので、「縦横比が異なる」と判断する。つまり、検査部132は、検査画像1602が擬似画像であり、「縦横比が異なる」との検査結果を取得する。
ここで、検査部132は、検査画像1602の検査情報内における箇所を特定する箇所情報、種類識別子「擬似画像」、およびエラーの内容「縦横比が異なる」を有するエラー情報を取得し、図示しないバッファに一時蓄積した、とする。
次に、検査部132は、図16の検査情報の中の検査画像1603を取得する。次に、検査部132は、検査画像1603の縦のサイズを正例画像の縦のサイズと同じになり、かつ検査画像1603の縦横比を代えないように、検査画像1603を、拡大または縮小する。
次に、検査部132は、検査画像1603と正例画像との類似度「S3」を算出した、とする。次に、検査部132は、類似度「S3」は、擬似画像条件(ここでは、「0.8<=類似度(S)<1」)を満たさない、と判断した、とする。つまり、検査部132は、検査画像1603が擬似画像ではない、と判断する。
次に、検査部132は、図16の検査情報の中の検査画像1604を取得する。次に、検査部132は、検査画像1604の縦のサイズを正例画像の縦のサイズと同じになり、かつ検査画像1604の縦横比を代えないように、検査画像1604を、拡大または縮小する。
次に、検査部132は、検査画像1604と正例画像との類似度「S4」を算出した、とする。次に、検査部132は、類似度「S4」は、擬似画像条件(ここでは、「0.8<=類似度(S)<1」)を満たす、と判断した、とする。
次に、検査部132は、検査画像1604の3つの特徴量(<縦横比>AR0 <文字列>無 <色分布>色分布情報0)を取得した、とする。
次に、検査部132は、検査画像1602について、<縦横比>と<色分布>とは条件を満たす、と判断する。一方、検査部132は、検査画像1601について、<文字列>が一致しないので、「文字列がない」と判断する。つまり、検査部132は、検査画像1602が擬似画像であり、「文字列がない」との検査結果を取得する。
ここで、検査部132は、検査画像1604の検査情報内における箇所を特定する箇所情報、種類識別子「擬似画像」、およびエラーの内容「文字列がない」を有するエラー情報を取得し、図示しないバッファに一時蓄積した、とする。
次に、検査結果構成部133は、検査画像1601、1602、1604に対応するエラー情報を含む検査結果を構成する。次に、結果出力部141は、構成された検査結果を端末装置2に送信する。
次に、端末装置2は、検査結果を受信し、出力する。かかる出力例は、図17である。図17において、正例画像に対する3つの擬似画像が明示されている。なお、擬似画像のエラーについて、図16の検査情報の中で、明示されることは好適である。つまり、検査結果構成部133は、検査情報の中で、擬似画像を明示する検査結果を取得することは好適である。
以上、本実施の形態によれば、ユーザごとの検査ルールに基づいた文章の検査を行える。
また、本実施の形態によれば、ユーザが登録した正解用語に対する誤記等を検査できる。
また、本実施の形態によれば、誤字脱字等を適切に検査できる。
また、本実施の形態によれば、エラーの箇所やエラーの種類も提示できる。
また、本実施の形態によれば、擬似画像のエラーも検査できる。
さらに、本実施の形態によれば、エラーの種類に応じた選択インターフェイスを使用して、高い操作性で検査結果を閲覧できる。
なお、本実施の形態において、検査装置1は、スタンドアロンの装置でも良い。また、本実施の形態において、検査ルールは、ユーザごとに管理されなくても良い。また、本実施の形態において、検査ルールは、2以上のユーザに対して共通のルールでも良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、文章を含む検査情報を、ユーザ識別子に対応付けて受け付ける検査情報受付部と、ユーザ識別子ごとに、当該ユーザ識別子に対応付けて、文章を検査するための1以上の検査ルールが格納されるルール格納部から、前記検査情報に対応する前記ユーザ識別子に対応する1以上の検査ルールを取得するルール取得部と、前記検査情報に対して、前記1以上の各検査ルールを用いて検査を行う検査部と、前記検査部における検査の結果を用いて、出力する検査結果を構成する検査結果構成部と、前記検査結果を出力する結果出力部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、上述した学習器を構成する学習装置について説明する。
図18は、本実施の形態における学習装置3のブロック図である。学習装置3は、学習格納部31、学習受付部32、および学習処理部33を備える。学習格納部31は、正例文格納部311、およびパターン情報格納部312を備える。学習処理部33は、正例文取得部331、負例文取得部332、学習部333、および蓄積部334を備える。
学習格納部31には、各種の情報が格納される。各種の情報とは、例えば、後述する正例文、後述する負例文、後述するパターン情報、学習器である。
正例文格納部311には、1または2以上の正例文が格納される。正例文は、正しい文である。
パターン情報格納部312には、1以上のパターン情報が格納される。パターン情報は、誤記のパターンに関する情報である。パターン情報は、通常、パターン識別子に対応付いている。パターン識別子は、例えば、「同音異義語」「Typo」「類似文字」である。パターン識別子は、種類識別子でも良い。
パターン識別子「同音異義語」に対応するパターン情報は、例えば、正しい用語に対する同音異義語を生成するプログラム、または/および正しい用語と1以上の同音異義語の1以上のセットである同音異義語辞書である。なお、同音異義語辞書のセットの例(正しい用語:同音異義語[誤った用語])は、(書類:諸類)(記入:帰入)である。
なお、同音異義語を生成するプログラムは、例えば、漢字と読みとの組を多数、有する漢字辞書を参照し、用語が有する漢字の1字を、同じ読みの漢字に置き換えた同音異義語を生成するプログラムである。
パターン識別子「Typo」に対応するパターン情報は、例えば、正しい文字に対するタイプミスの1以上の文字を生成するプログラム、または/および正しい文字とタイプミスの1以上の文字の1以上のセットであるTypo辞書である。Typo辞書のセットの例(正しい文字:タイプミスの1以上の文字)は、(ま:mま)である。
なお、タイプミスの文字を生成するプログラムは、例えば、ひらがなの文字とローマ字(子音+母音)との組を多数、有するローマ字辞書を参照し、正しい文字の子音を取得し、当該子音を正しい文字の前に配置するプログラムである。
パターン識別子「類似文字」に対応するパターン情報は、例えば、正しい文字に対する類似文字を生成するプログラム、または/および正しい文字と類似文字の1以上のセットである類似文字辞書である。類似文字辞書のセットの例(正しい文字:類似文字)は、(ま:め)である。
なお、類似文字を生成するプログラムは、例えば、類似文字辞書を参照し、文の中の任意のひらがなを、当該ひらがなと対になる類似文字に置き代えるプログラムである。
学習受付部32は、各種の情報や指示を受け付ける。各種の情報や指示は、例えば、正例文、学習指示である。学習指示は、学習の開始の指示である。
学習処理部33は、学習処理を行う。学習処理は、例えば、正例文取得部331、負例文取得部332、学習部333、および蓄積部334が行う処理である。ただし、負例文は、自動生成されることは好適であるが、自動生成されなくても良い。
正例文取得部331は、1以上の正例文を取得する。正例文取得部331は、例えば、正例文格納部311から1以上の正例文を取得する。正例文取得部331は、例えば、学習受付部32が受け付けた正例文を取得する。
負例文取得部332は、1以上の負例文を取得する。負例文取得部332は、正例文を用いて、1以上の負例文を自動生成することは好適である。負例文は、誤記を含む文である。負例文は、正例文に対応付いている。
負例文取得部332は、例えば、1以上の各正例文に対して、1以上の各パターン情報を用いて、1以上の負例文を取得する。負例文取得部332が負例文を取得する処理例の詳細については、後述する。
学習部333は、2以上の教師データに対して、機械学習の学習処理を行い、学習器を取得する。教師データは、正例文と1以上の負例文とを有する。教師データは、1つの正例文と1つの負例文とを有することは好適である。教師データは、エラーの種類を特定する種類識別子を有することは好適である。種類識別子は、例えば、「同音異義語」「Typo」「類似文字」である。
学習部333は、例えば、BERTにより、2以上の教師データを用いて、機械学習の学習処理を行い、学習器を取得することは好適である。なお、BERT「Bidirectional Encoder Representations from Transformers」については、URL「https://arxiv.org/pdf/1810.04805.pdf」を参照のこと。
また、学習部333が使用する機械学習のアルゴリズムは、問わない。学習部333は、例えば、深層学習、ランダムフォレスト、決定木等のうちのいずれかの機械学習のアルゴリズムにより、2以上の教師データに対して学習処理を行い、学習器を取得する。
蓄積部334は、学習部333が取得した学習器を蓄積する。
学習格納部31、正例文格納部311、およびパターン情報格納部312は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
学習格納部31等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が学習格納部31等で記憶されるようになってもよく、通信回線等を介して送信された情報が学習格納部31等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が学習格納部31等で記憶されるようになってもよい。
学習受付部32は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
学習処理部33、正例文取得部331、負例文取得部332、学習部333、および蓄積部334は、通常、プロセッサやメモリ等から実現され得る。学習処理部33等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、MPU、CPU、GPU等であり、その種類は問わない。
次に、学習装置3の動作例について、図19のフローチャートを用いて説明する。
(ステップS1901)学習受付部32は、学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップS1902に行き、学習指示を受け付けなかった場合はステップS1901に戻る。
(ステップS1902)学習処理部33は、カウンタiに1を代入する。
(ステップS1903)学習処理部33は、i番目の正例文が正例文格納部311に存在するか否かを判断する。i番目の正例文が存在する場合はステップS1904に行き、存在しない場合はステップS1907に行く。
(ステップS1904)正例文取得部331は、i番目の正例文を正例文格納部311から取得する。
(ステップS1905)学習処理部33は、i番目の正例文を用いて、教師データを取得する。教師データ取得処理の例について、図20のフローチャートを用いて説明する。
(ステップS1906)学習処理部33は、カウンタiを1、インクリメントする。ステップS1903に戻る。
(ステップS1907)学習処理部33は、ステップS1905で取得された2以上の教師データに対して、学習処理を行い、学習器を取得する。
(ステップS1908)蓄積部334は、ステップS1907で取得された学習器を蓄積する。ステップS1901に戻る。
なお、図19のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS1905の教師データ取得処理の例について、図20のフローチャートを用いて説明する。
(ステップS2001)負例文取得部332は、取得された正例文を形態素解析する。
(ステップS2002)負例文取得部332は、カウンタiに1を代入する。
(ステップS2003)負例文取得部332は、i番目の形態素が存在するか否かを判断する。i番目の形態素が存在する場合はステップS2004に行き、存在しない場合は上位処理にリターンする。
(ステップS2004)負例文取得部332は、i番目の形態素を取得する。
(ステップS2005)負例文取得部332は、カウンタjに1を代入する。
(ステップS2006)負例文取得部332は、i番目の形態素に対応するj番目の同音異義語を取得する。ここで、j番目の同音異義語が取得できた場合はステップS2007に行き、取得できなかった場合はステップS2010に行く。
負例文取得部332は、例えば、i番目の形態素と対になる同音異義語を同音異義語辞書から取得する。負例文取得部332は、例えば、i番目の形態素が有する任意の漢字と読みが同じ漢字を漢字辞書から取得し、当該任意の漢字を取得した漢字に置き換えた同音異義語を取得する。
(ステップS2007)負例文取得部332は、正例文のi番目の形態素を、j番目の同音異義語に置き換えた負例文を取得する。
(ステップS2008)負例文取得部332は、正例文と、ステップS2007で取得した負例文と種類識別子「同音異義語」とを有する教師データを構成し、図示しないバッファに蓄積する。
(ステップS2009)カウンタjを1、インクリメントする。ステップS2006に戻る。
(ステップS2010)負例文取得部332は、カウンタkに1を代入する。
(ステップS2011)負例文取得部332は、i番目の形態素の中に、k番目の文字が存在するか否かを判断する。k番目の文字が存在する場合はステップS2012に行き、k番目の文字が存在しない場合はステップS2023に行く。
(ステップS2012)負例文取得部332は、カウンタlに1を代入する。
(ステップS2013)負例文取得部332は、i番目の形態素の中のk番目の文字に対するl番目のタイプミスを取得する。ここで、j番目のタイプミスが取得できた場合はステップS2014に行き、取得できなかった場合はステップS2017に行く。
負例文取得部332は、例えば、k番目の文字と対になるタイプミスの1以上の文字をTypo辞書から取得する。
負例文取得部332は、例えば、k番目の文字の先頭の子音をローマ字辞書から取得し、当該子音をk番目の文字の前に付加した2文字を取得する。
(ステップS2014)負例文取得部332は、正例文のi番目の形態素の中のk番目の文字をj番目のタイプミスに置き換えた負例文を取得する。
(ステップS2015)負例文取得部332は、正例文と、ステップS2014で取得した負例文と種類識別子「Typo」とを有する教師データを構成し、図示しないバッファに蓄積する。
(ステップS2016)カウンタlを1、インクリメントする。ステップS2013に戻る。
(ステップS2017)負例文取得部332は、カウンタmに1を代入する。
(ステップS2018)負例文取得部332は、i番目の形態素の中のk番目の文字に対すm番目の擬似文字を取得する。ここで、m番目の擬似文字が取得できた場合はステップS2019に行き、取得できなかった場合はステップS2022に行く。
負例文取得部332は、例えば、k番目の文字と対になる擬似文字を、類似文字辞書から取得する。
(ステップS2019)負例文取得部332は、正例文のi番目の形態素の中のk番目の文字をm番目の擬似文字に置き換えた負例文を取得する。
(ステップS2020)負例文取得部332は、正例文と、ステップS2019で取得した負例文と種類識別子「擬似文字」とを有する教師データを構成し、図示しないバッファに蓄積する。
(ステップS2021)カウンタmを1、インクリメントする。ステップS2018に戻る。
(ステップS2022)カウンタkを1、インクリメントする。ステップS2011に戻る。
(ステップS2023)カウンタiを1、インクリメントする。ステップS2003に戻る。
以下、本実施の形態における学習装置3の具体的な動作例について説明する。
今、学習装置3の正例文格納部311には、正例文「書類に記入をしました」が格納されている、とする。
また、学習装置3のパターン情報格納部312には、パターン識別子「同音異義語」に対応付いた同音異義語辞書が格納されている。また、同音異義語辞書は、正しい用語と同音異義語のセット(書類:諸類)(記入:帰入)」を含む。
また、パターン情報格納部312には、パターン識別子「Typo」に対応付いたTypo辞書が格納されている。また、Typo辞書は、正しい文字とタイプミスの1以上の文字のセット(ま:mま)を含む。
さらに、パターン情報格納部312には、パターン識別子「擬似文字」に対応付いた類似文字辞書が格納されている。また、類似文字辞書は、正しい文字と類似文字のセット(ま:め)を含む。
かかる状況において、ユーザは、学習指示を学習装置3に入力した、とする。すると、学習装置3の学習受付部32は、学習指示を受け付ける。
次に、正例文取得部331は、正例文「書類に記入をしました」を正例文格納部311から取得する。
次に、負例文取得部332は、図20のフローチャートに従って、正例文「書類に記入をしました」に含まれる用語「書類」に対する同音異義語「諸類」を同音異義語辞書から取得する。そして、負例文取得部332は、正例文の「書類」を同音異義語「諸類」に置き換えた負例文「諸類に記入をしました」を取得する。そして、負例文取得部332は、当該正例文と当該負例文と種類識別子「同音異義語」とを有する教師データを取得し、図示しないバッファに蓄積する。かかる教師データは、図21の教師データ管理表の「ID=1」のレコードである。
また、負例文取得部332は、図20のフローチャートに従って、正例文「書類に記入をしました」に含まれる用語「記入」に対する同音異義語「帰入」を同音異義語辞書から取得する。そして、負例文取得部332は、正例文の「記入」を同音異義語「帰入」に置き換えた負例文「書類に帰入をしました」を取得する。そして、負例文取得部332は、当該正例文と当該負例文と種類識別子「同音異義語」とを有する教師データを取得し、図示しないバッファに蓄積する。かかる教師データは、図21の教師データ管理表の「ID=2」のレコードである。
また、負例文取得部332は、図20のフローチャートに従って、正例文「書類に記入をしました」に含まれる文字「ま」に対するミスタイプ「mま」をTypo辞書から取得する。そして、負例文取得部332は、正例文の「ま」をミスタイプ「mま」に置き換えた負例文「書類に記入をしmました」を取得する。そして、負例文取得部332は、当該正例文と当該負例文と種類識別子「Typo」とを有する教師データを取得し、図示しないバッファに蓄積する。かかる教師データは、図21の教師データ管理表の「ID=3」のレコードである。
また、負例文取得部332は、図20のフローチャートに従って、正例文「書類に記入をしました」に含まれる文字「ま」に対する擬似文字「め」を擬似文字辞書から取得する。そして、負例文取得部332は、正例文の「ま」を擬似文字「め」に置き換えた負例文「書類に記入をしめした」を取得する。そして、負例文取得部332は、当該正例文と当該負例文と種類識別子「擬似文字」とを有する教師データを取得し、図示しないバッファに蓄積する。かかる教師データは、図21の教師データ管理表の「ID=4」のレコードである。
以上のような処理を、他の正例文に対しても行い、負例文取得部332は、膨大な数の教師データを取得した、とする。
次に、学習処理部33は、図21の2以上の教師データに対して、BERTによる学習処理を行い、学習器を取得する。そして、蓄積部334は、取得された学習器を、検査装置1の学習器格納部113に蓄積する。なお、かかる学習器は、検査装置1が誤字脱字の検出のために使用する学習器である。
また、検査装置1が、例えば、検査情報「・・・・。諸類に記入しました。・・・」を受け付けた場合、検査部132は、当該検査情報の文「諸類に記入しました」と当該学習器とを用いて、機械学習の予測処理を行い、図22の2201に示す検査結果を得た、とする。ここでの検査結果は、各文字に対して、種類識別子ごとの確率を示す情報を含む。
そして、検査部132は、確率が閾値(ここでは、0.50)以上であれば、当該文字が、当該確率に該当する種類識別子で識別されるエラーである、と判断する。つまり、検査部132は、確率「0.86」の文字「諸」が種類識別子「同音異義語」に対応するエラーである、と判断する。
なお、図22において、例えば、検査部132は、BERTによる学習器2202のFully Connected Layer(全結合層)を用いて、深層学習のアルゴリズムによる予測処理を行うモジュールに、文「諸類に記入しました」を与え、当該モジュールを実行し、2201の検査結果を得ることを示す。
そして、検査結果構成部133は、検査情報「・・・・。諸類に記入しました。・・・」のうちの文字「諸」が種類識別子「同音異義語」に対応するエラーであることを明示する検査結果を構成する。
次に、結果出力部141は、当該検査結果を出力する。
以上、本実施の形態によれば、誤字や脱字等をチェックする学習器を構成できる。また、本実施の形態によれば、学習器を用いて、誤字や脱字等をチェックできる。
なお、本実施の形態における学習装置3を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、誤記パターンに関する1以上のパターン情報が格納されるパターン情報格納部にアクセス可能なコンピュータを、正しい文である1以上の各正例文を取得する正例文取得部と、前記1以上の各正例文に対して、前記1以上の各パターン情報を用いて、誤記を含む文である1以上の負例文を取得する負例文取得部と、
前記正例文と前記1以上の負例文とを有する2以上の教師データに対して、機械学習の学習処理を行い、学習器を取得する学習部と、前記学習器を蓄積する蓄積部として機能させるためのプログラムである。
また、図23は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の検査装置1等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図23は、このコンピュータシステム300の概観図であり、図24は、システム300のブロック図である。
図23において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図24において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の検査装置1等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の検査装置1等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。