(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022180866
(43)【公開日】2022-12-07
(54)【発明の名称】情報処理装置及びプログラム
(51)【国際特許分類】
G06V 30/242 20220101AFI20221130BHJP
【FI】
G06K9/62 610Z
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021087600
(22)【出願日】2021-05-25
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】西田 篤史
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064AB19
5B064DA11
(57)【要約】 (修正有)
【課題】ルビに対応する文字列を特定することが可能な情報処理装置及びプログラムを提供する。
【解決手段】情報処理装置(コンピュータ)1は、文章中の本文の単語ごとのルビのまとまりを抽出する抽出部10aと、抽出部10aが抽出した各ルビのまとまりに対応する文章中の被ルビ文字列を特定する特定部10bと、を備える。
【選択図】
図12
【特許請求の範囲】
【請求項1】
文章中の本文の単語ごとのルビのまとまりを抽出する抽出部と、
前記抽出部が抽出した各ルビのまとまりに対応する前記文章中の被ルビ文字列を特定する特定部と
を備える情報処理装置。
【請求項2】
前記抽出部は、文章中から本文とルビとを判別し、
判別したルビに基づいて前記ルビのまとまりを抽出する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記特定部は、前記ルビのまとまりの先頭ルビの座標値、末尾ルビの座標値、各座標値に対応する本文中の座標値または文字種に基づき、被ルビ文字列を特定する
ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記抽出部が抽出したルビのまとまりと、前記特定部が特定した被ルビ文字列とを対応付けて記憶する
ことを特徴とする請求項1から3までのいずれかひとつに記載の情報処理装置。
【請求項5】
前記抽出部は、文章中の本文の単語ごとのルビのまとまりを学習した学習モデルに、文章を入力して、前記文章中の本文の単語ごとのルビのまとまりを抽出する
ことを特徴とする請求項1から4までのいずれかひとつに記載の情報処理装置。
【請求項6】
前記抽出部は、前記ルビの文字サイズから本文とルビとを判別し、
相互に隣接するルビ同士の間隔に基づき、前記ルビのまとまりを抽出する
ことを特徴とする請求項1から5までのいずれかひとつに記載の情報処理装置。
【請求項7】
前記特定部は、文字列と、他の文字列とを対応付けた辞書を参照して、前記抽出部が抽出した各ルビのまとまりに対応する前記文章中の被ルビ文字列を特定する
を備える請求項1から6までのいずれかひとつに記載の情報処理装置。
【請求項8】
前記特定部は、ウェブサーバ上の辞書を参照して、前記抽出部が抽出した各ルビのまとまりに対応する前記文章中の被ルビ文字列を特定する
を備える請求項1から7までのいずれかひとつに記載の情報処理装置。
【請求項9】
文章中の本文の単語ごとのルビのまとまりを抽出し、
抽出した各ルビのまとまりに対応する前記文章中の被ルビ文字列を特定する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【0002】
近年、PDF(Portable Document Format)ファイル等の画像データである文書(非構造化データ)内の文字を認識することにより、XML(Extensible Markup Language)ファイル等の文書(構造化データ)に変換する技術が広く使われるようになってきている。例えば特許文献1には、文書画像から文書内の文字を認識する識別部と、文書画像の各要素の構造を特定する特定部と、特定部が特定した構造に基づき、識別部が認識した文字の誤りを検出して正しい文字に補正する文字処理部とを備える情報処理装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、ルビに対応する文字列を特定することができないという問題がある。
【0005】
一つの側面では、ルビに対応する文字列を特定することが可能な情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの側面に係る情報処理装置は、文章中の本文の単語ごとのルビのまとまりを抽出する抽出部と、前記抽出部が抽出した各ルビのまとまりに対応する前記文章中の被ルビ文字列を特定する特定部とを備える。
【発明の効果】
【0007】
一つの側面では、ルビに対応する文字列を特定することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】コンピュータの構成例を示すブロック図である。
【
図2】ルビのまとまりの抽出処理及び被ルビ文字列の特定処理を説明する説明図である。
【
図3】構造化データを出力する処理を説明する説明図である。
【
図4】文章の構造化処理を行う際の処理手順を示すフローチャートである。
【
図5】ルビのまとまりを抽出する処理のサブルーチンの処理手順を示すフローチャートである。
【
図6】被ルビ文字列を特定する処理のサブルーチンの処理手順を示すフローチャートである。
【
図7】実施形態2のコンピュータの構成例を示すブロック図である。
【
図8】ルビ辞書のレコードレイアウトの一例を示す説明図である。
【
図10】実施形態2の文章の構造化処理を行う際の処理手順を示すフローチャートである。
【
図11】実施形態2の被ルビ文字列を特定する処理のサブルーチンの処理手順を示すフローチャートである。
【
図12】上述した形態のコンピュータの動作を示す機能ブロック図である。
【発明を実施するための形態】
【0009】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、ルビが含まれる文章の構造化処理を行う形態に関する。
【0011】
本実施形態のシステムは、情報処理装置1を含む。情報処理装置1は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置1は、例えばサーバ装置、パーソナルコンピュータまたは汎用のタブレットPC(パソコン)等である。本実施形態において、情報処理装置1は、ルビを含む文章の構造化を行うパーソナルコンピュータであるものとし、以下では簡潔のためコンピュータ1と読み替える。
【0012】
本実施形態に係るコンピュータ1は、ルビが含まれる文章を取得し、取得した文章からルビのまとまりを抽出する。コンピュータ1は、抽出した各ルビのまとまりに対応する該文章の中の被ルビ文字列を特定する。コンピュータ1は、抽出した各ルビのまとまり、及び各ルビのまとまりに対応する被ルビ文字列に基づき、該文章の構造化処理を行う。コンピュータ1は、構造化処理を行って得られた構造化データを出力する。
【0013】
図1は、コンピュータ1の構成例を示すブロック図である。コンピュータ1は、制御部11、記憶部12、通信部13、入力部14、表示部15及び読取部16を含む。各構成はバスBで接続されている。
【0014】
制御部11はCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等の演算処理装置を含み、記憶部12に記憶された制御プログラム1Pを読み出して実行することにより、コンピュータ1に係る種々の情報処理、制御処理等を行う。なお、制御プログラム1Pは、単一のコンピュータ上で、または1つのサイトにおいて配置されるか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。なお、
図1では制御部11を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0015】
記憶部12はRAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部11が処理を実行するために必要な制御プログラム1P又はデータ等を記憶している。また、記憶部12は、制御部11が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部13は通信に関する処理を行うための通信モジュールである。
【0016】
入力部14は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部11へ出力する。表示部15は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、制御部11の指示に従い各種情報を表示する。
【0017】
読取部16は、CD(Compact Disc)-ROM又はDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体1aを読み取る。制御部11が読取部16を介して、制御プログラム1Pを可搬型記憶媒体1aより読み取り、記憶部12に記憶しても良い。また、ネットワーク等を介して他のコンピュータから制御部11が制御プログラム1Pをダウンロードし、記憶部12に記憶しても良い。さらにまた、半導体メモリ1bから、制御部11が制御プログラム1Pを読み込んでも良い。
【0018】
コンピュータ1はコンピュータ単体で実行しても良いし、複数のコンピュータで分散して実行しても良いし、仮想マシンで分散して実行しても良い。
【0019】
図2は、ルビのまとまりの抽出処理及び被ルビ文字列の特定処理を説明する説明図である。ルビのまとまりは、文章中の文字に対し、単語単位または文字単位で振られるルビである。例えば、「文京区」である被ルビ文字列に対しては、ルビのまとまりが「ぶんきょうく」となる。
【0020】
図2Aは、ルビのまとまりを抽出する処理を説明する説明図である。先ず、コンピュータ1の制御部11は、ルビを含む文章の非構造化データを取得する。非構造化データは、テキストデータ(文字コード等)が付与されていない文章画像、または文章をスキャナで読み取ったPDFファイル等である。なお、非構造化データは予め記憶部12に記憶されても良く、または外部装置から取得されても良い。また、本実施形態では、非構造化データがPDFファイルである例を説明するが、他の非構造化データにも同様に適用することができる。
【0021】
本実施形態では、ルビを含む文章のPDFファイルの例を説明するが、これに限るものではない。例えば制御部11は、雑誌・書籍等の版面データを取得した場合、取得した版面データに対して構造要素(タイトル、本文及びキャプション等)を特定する。制御部11は、特定した構造要素に基づいて文章を抽出しても良い。
【0022】
制御部11は、例えば、「ぶんきょうく きょういくきかん ちいき」ルビのまとまりが含まれる「文京区には、多くの教育機関がある地域である。」文章を取得した場合、例えば光学文字認識(OCR:Optical Character Recognition)技術を用いて該文章をそのまま読み取る。この場合、制御部11は、「文ぶん京きょう区くには、多くの教きょう育いく機き関かんがある地ち域いきである」となった読取結果を出力するため、ルビと被ルビ文字との区別が付かなくなり、文章の構造化処理を実行することができないという問題がある。このような問題は、
図2Aに示す処理によって解決することができる。
【0023】
具体的には、制御部11は、OCR技術を用いて、取得したPDFファイルに含まれている文章の書字方向(縦書き及び横書き等)、及び文章内の文字を認識する。制御部11は、OCR技術を用いて、認識した各文字の位置情報(例えば、座標)を検出する。
【0024】
図示のように、「ぶんきょうく きょういくきかん ちいき」ルビのまとまりが含まれる「文京区には、多くの教育機関がある地域である。」文章に対し、制御部11はOCR技術を用いて、文章に含まれる各文字(ルビ及び被ルビ文字)の座標値を検出する。なお、
図2では、紙面の左から右への方向がx軸の正方向であり、且つ、紙面の上から下への方向がy軸の正方向であるものとして説明する。例えば制御部11は、(x1,y1)である「ぶ」の左上の座標値、及び(x1’,y1’)である「ぶ」の右下の座標値を検出する。制御部11は、(x2,y2)である「ん」の左上の座標値、及び(x2’,y2’)である「ん」の右下の座標値を検出する。制御部11は、(x3,y3)である「文」の左上の座標値、及び(x3’,y3’)である「文」の右下の座標値を検出する。
【0025】
次に、制御部11は、文章内の文字の座標値に基づいてルビのまとまりを抽出する。具体的には、制御部11は、各文字の左上の座標値と右下の座標値とに基づき、各文字の大きさ(文字サイズ)を算出する。例えば制御部11は、「ぶ」に対し、計算式「x1’-x1」と「y1’-y1」とに基づき、「ぶ」の大きさ(横及び縦の長さ)を算出する。制御部11は、算出した文字の大きさが他の文字(例えば、「文」)の大きさよりも所定の範囲以下である場合に、該文字をルビと判定する。例えば制御部11は、算出した文字の大きさが他の文字の大きさの半分以下である場合、該文字をルビと判定しても良い。
【0026】
制御部11は、該文字がルビと判定した場合、該ルビを含むルビのまとまりを抽出する。具体的には、制御部11はルビの座標値に基づいて、該ルビと次のルビとのルビ同士の間隔を算出し、算出したルビ同士の間隔に基づいてルビのまとまりを抽出する。
【0027】
例えば制御部11は、ルビ「ん」の左上のx座標値(x2)と、ルビ「ん」の前のルビ「ぶ」の右上のx座標値(x1’)との差(x2-x1’)を、「ぶ」と「ん」との間隔として算出する。制御部11は、算出したルビ同士の間隔と、所定のルビ同士の間隔の距離閾値(例えば、1pt)とを比較する。制御部11は、算出したルビ同士の間隔が所定の距離閾値以下である場合、「ぶ」及び「ん」が同一のルビのまとまりに含まれることを判定する。
【0028】
制御部11は、ルビ「ん」とルビ「ん」の次のルビ「き」との間隔を算出し、「き」が同一のルビのまとまりに含まれるか否かを判定する。制御部11は、ルビ同士の間隔が所定の距離閾値を超えるまで上述の処理を行い、ルビ同士の間隔が所定の距離閾値以下である複数のルビをルビのまとまりとして抽出する。
【0029】
なお、ルビのまとまりの抽出処理に関しては、上述した処理に限るものではない。例えば制御部11は、ルビ同士の間隔それぞれを算出する。制御部11は、算出したそれぞれのルビ同士の間隔から、間隔が小さいルビ同士をルビのまとまりとして抽出しても良い。
【0030】
なお、ルビのまとまりの抽出処理に関しては、上述したルビのまとまりの文字サイズ及び文字間隔を用いた抽出処理の方式に限るものではない。例えば、後述する実施形態2での学習モデルを用いる抽出処理の方式であっても良い。
【0031】
図2Bは、ルビのまとまりに対応する被ルビ文字列を特定する処理を説明する説明図である。コンピュータ1の制御部11は、文章の書字方向、ルビのまとまりの先頭ルビの座標値、末尾ルビの座標値、及び各座標値に対応する本文中の座標値に基づき、ルビのまとまりに対応する被ルビ文字列を特定する。
【0032】
文章の書字方向が横書きである場合、ルビのまとまりの下側に所定の閾値により設定された範囲から被ルビ文字列を特定する。ます、制御部11は、ルビのまとまりの先頭ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値(例えば、1pt)に基づき、先頭ルビに対応する被ルビ文字を特定する。例えば、抽出されたルビのまとまりが「ぶんきょうく」である場合、制御部11は、先頭ルビ「ぶ」の左下のy座標値(y1’)と、該先頭ルビの下側の文字「文」の左上のy座標値(y3)との差(y3-y1’)を算出する。制御部11は、算出した座標値の差と、ルビと被ルビ文字との所定の距離閾値とを比較する。制御部11は、算出した座標値の差が所定の距離閾値以下である場合、文字「文」を「ぶ」に対応する被ルビ文字として特定する。
【0033】
次に、制御部11は、ルビのまとまりの末尾ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値に基づき、末尾ルビに対応する被ルビ文字を特定する。上述したルビのまとまりが「ぶんきょうく」である例として、制御部11は、末尾ルビ「く」の左下のy座標値(y4’)と、該末尾ルビの下側の文字「区」の左上のy座標値(y5)との差(y5-y4’)を算出する。制御部11は、算出した座標値の差と所定の距離閾値とを比較する。制御部11は、算出した座標値の差が所定の距離閾値以下である場合、文字「区」を「く」に対応する被ルビ文字として特定する。
【0034】
そして、制御部11は、特定したルビのまとまりの先頭ルビに対応する被ルビ文字と、末尾ルビに対応する被ルビ文字との範囲内の文字列を、該ルビのまとまりに対応する被ルビ文字列として特定する。図示のように、ルビのまとまり「ぶんきょうく」に対応する被ルビ文字列「文京区」が特定される。
【0035】
また、文章の書字方向が縦書きである場合、ルビのまとまりの先頭ルビの座標値及び末尾ルビの座標値に基づいて、ルビのまとまりの左側に所定の閾値により設定された範囲から被ルビ文字列を特定する。なお、縦書きにおける特定処理は、横書きにおける特定処理と同様であるため、説明を省略する。
【0036】
図2Cは、被ルビ文字列の補正処理を説明する説明図である。コンピュータ1の制御部11は、特定した被ルビ文字列の文字種に基づき、ルビのまとまりに対応する被ルビ文字列に対して補正処理を行う。文字種は、文字列で用いられている文字の表記形態であり、例えば数字、アルファベット大文字、アルファベット小文字、ひらがな、カタカナ及び漢字等が含まれる。制御部11は、特定した被ルビ文字列に、文字種が漢字以外である文字が含まれていると判定した場合、被ルビ文字列に対して補正処理を行う。
【0037】
具体的には、制御部11は、文字種が漢字以外である文字を該被ルビ文字列から除去する。図示のように、ルビのまとまりが「すなわ」である場合、
図2Bでの被ルビ文字列の特定処理に従い、制御部11は、「ば則ち」となった被ルビ文字列を特定する。制御部11は、特定した被ルビ文字列中の各文字の文字種を判定する。制御部11は、文字種がひらがなである「ば」及び「ち」を「ば則ち」から除去し、ひらがなを除去した「則」を被ルビ文字列として出力する。
【0038】
図3は、構造化データを出力する処理を説明する説明図である。コンピュータ1は、ルビを含む文章を取得する。図示のように、取得された文章が「文京区には、多くの教育機関、大規模病院、出版社、印刷会社などが集まっています。また、住宅地も多」である。コンピュータ1の制御部11は、取得した文章から各ルビのまとまりを抽出し、抽出した各ルビのまとまりに対応する被ルビ文字列を特定する。なお、ルビのまとまりの抽出処理、及び被ルビ文字列の特定処理に関しては、
図2での処理と同様であるため、説明を省略する。
【0039】
図示のように、文章中の被ルビ文字列「文京区」、「教育機関」、「大規模病院」、「出版社」、「印刷会社」及び「住宅地」は、それぞれに対応するルビのまとまり「ぶんきょうく」、「きょういくきかん」、「だいきぼびょういん」、「しゅっぱんしゃ」、「いんさつかいしゃ」及び「じゅうたくち」である。
【0040】
制御部11は、特定した各ルビのまとまりと、各ルビのまとまりに対応する被ルビ文字列とを対応付けて構造化処理を行う。具体的には、制御部11は、抽出した各ルビのまとまりに第1タグ(例えば、<rt>)を付与し、各ルビのまとまりに対応する被ルビ文字列に第2タグ(例えば、<rb>)を付与する。制御部11は、ルビのまとまり及び第1タグと、該ルビのまとまりに対応する被ルビ文字列及び第2タグとに第3タグ(例えば、<ruby>)を付与する。
【0041】
図示のように、制御部11は、被ルビ文字列である「文京区」を<rb>及び</rb>タグで囲み、ルビのまとまりである「ぶんきょうく」を<rt>及び</rt>タグで囲む。また、制御部11は、<rb>及び</rb>タグで囲まれた被ルビ文字列「文京区」と、<rt>及び</rt>タグで囲まれたルビのまとまり「ぶんきょうく」とを、<ruby>及び</ruby>タグで囲む。このように、制御部11は、それぞれの被ルビ文字列及び該被ルビ文字列に対応するルビのまとまりにタグを付与し、文章の構造化処理を行う。最後に、制御部11は、文章の全体に<text>及び</text>タグを付与する。
【0042】
なお、制御部11は文章に対応付けて、構造化処理を行って得られた構造化データを記憶部12に記憶しても良い。
【0043】
図4は、文章の構造化処理を行う際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、ルビを含む文章のPDFファイルを記憶部12から取得する(ステップS101)。なお、PDFファイルは通信部13により外部装置から取得されても良い。制御部11は、例えばOCR技術を用いて、文章の書字方向及び文章内の文字を認識する(ステップS102)。制御部11は、認識した各文字の座標値を検出する(ステップS103)。
【0044】
制御部11は、文章からルビのまとまりを抽出する処理のサブルーチンを実行する(ステップS104)。制御部11は、抽出したルビのまとまりに対応する被ルビ文字列を特定する処理のサブルーチンを実行する(ステップS105)。なお、ルビのまとまりの抽出処理のサブルーチン及び被ルビ文字列の特定処理のサブルーチンに関しては後述する。
【0045】
制御部11は、抽出したルビのまとまりと、特定した被ルビ文字列とを対応付けて記憶部12に記憶する(ステップS106)。制御部11は、抽出した各ルビのまとまりと、各ルビのまとまりに対応する被ルビ文字列とを対応付けて構造化処理を行う(ステップS107)。制御部11は、例えばXMLファイル等の形式で文章の構造化データを出力し(ステップS108)、処理を終了する。
【0046】
図5は、ルビのまとまりを抽出する処理のサブルーチンの処理手順を示すフローチャートである。コンピュータ1の制御部11は、ステップS102の処理で認識された複数の文字から1つの文字を取得する(ステップS01)。制御部11は、取得した文字の左上の座標値と右下の座標値とに基づき、該文字の大きさ(文字サイズ)を算出する(ステップS02)。制御部11は、算出した文字の大きさが他の文字の大きさよりも所定の範囲以下であるか否かを判定する(ステップS03)。
【0047】
制御部11は、該文字の大きさが他の文字の大きさよりも所定の範囲以下であると判定した場合(ステップS03でYES)、該文字がルビであると判定(判別)する(ステップS04)。例えば、所定の範囲が被ルビ文字の大きさの半分であり、制御部11は、算出した文字の大きさが他の文字の大きさの半分以下である場合、該文字がルビであると判定しても良い。制御部11は、該文字の大きさが他の文字の大きさよりも所定の範囲を超えたと判定した場合(ステップS03でNO)、該文字が本文であると判定(判別)し、ステップS01の処理に戻る。
【0048】
制御部11は、ルビの座標値に基づいて、該ルビと次のルビとのルビ同士の間隔を算出する(ステップS05)。制御部11は、算出したルビ同士の間隔が所定の距離閾値以下であるか否かを判定する(ステップS06)。
【0049】
制御部11は、算出したルビ同士の間隔が所定の距離閾値以下である場合(ステップS06でYES)、該ルビの次のルビを取得する(ステップS07)。制御部11は、ステップS05の処理に遷移する。制御部11は、算出したルビ同士の間隔が所定の距離閾値を超えた場合(ステップS06でNO)、ルビ同士の間隔が所定の距離閾値以下である複数のルビをルビのまとまりとして抽出する(ステップS08)。
【0050】
制御部11は、抽出したルビのまとまりの次の文字に移動し、次の文字が存在しているか否かを判定する(ステップS09)。制御部11は、次の文字が存在していると判定した場合(ステップS09でYES)、ステップS01の処理に戻る。制御部11は、次の文字が存在していないと判定した場合(ステップS09でNO)、抽出した各ルビのまとまりを記憶部12に記憶する(ステップS10)。例えば、制御部11は、抽出した各ルビのまとまりに対してIDを割り振り、各ルビのまとまりのID及び座標値を記憶部12に記憶する。制御部11は、ルビのまとまりの抽出処理のサブルーチンを終了してリターンする。
【0051】
図6は、被ルビ文字列を特定する処理のサブルーチンの処理手順を示すフローチャートである。コンピュータ1の制御部11は、文章の書字方向が横書きであるか否かを判定する(ステップS11)。制御部11は、文章の書字方向が横書きであると判定した場合(ステップS11でYES)、ルビのまとまりの先頭ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値(例えば、1pt)に基づき、先頭ルビの下側に該先頭ルビに対応する被ルビ文字を特定する(ステップS12)。
【0052】
制御部11は、ルビのまとまりの末尾ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値に基づき、末尾ルビの下側に該末尾ルビに対応する被ルビ文字を特定する(ステップS13)。制御部11は、制御部11は、特定したルビのまとまりの先頭ルビに対応する被ルビ文字と、末尾ルビに対応する被ルビ文字との範囲内の文字列を、該ルビのまとまりに対応する被ルビ文字列として特定する(ステップS14)。
【0053】
制御部11は、特定した被ルビ文字列に含まれている各文字の文字種を判定する(ステップS15)。例えば制御部11は、文字を入力した場合に該文字の文字種を識別するよう学習済みの学習モデルを用いて、各文字の文字種を判定しても良い。または、制御部11は、文字と文字種との対比表等を用いて、各文字の文字種を判定しても良い。
【0054】
制御部11は、文字種が漢字以外である文字が含まれているか否かを判定する(ステップS16)。制御部11は、文字種が漢字以外である文字が被ルビ文字列に含まれていないと判定した場合(ステップS16でNO)、ルビ文字列を特定する処理のサブルーチンを終了してリターンする。
【0055】
制御部11は、文字種が漢字以外である文字が被ルビ文字列に含まれていると判定した場合(ステップS16でYES)、文字種が漢字以外である文字を被ルビ文字列から除去することにより、被ルビ文字列に対して補正処理を行う(ステップS17)。制御部11は、被ルビ文字列を特定する処理のサブルーチンを終了してリターンする。
【0056】
制御部11は、文章の書字方向が横書きでないと判定した場合(ステップS11でNO)、ルビのまとまりの先頭ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値に基づき、先頭ルビの左側に該先頭ルビに対応する被ルビ文字を特定する(ステップS18)。制御部11は、ルビのまとまりの末尾ルビの座標値、及び、ルビと被ルビ文字との所定の距離閾値に基づき、末尾ルビの左側に該末尾ルビに対応する被ルビ文字を特定する(ステップS19)。制御部11は、ステップS14の処理に遷移する。
【0057】
本実施形態によると、文章に含まれる各ルビのまとまりを抽出し、抽出した各ルビのまとまりに対応する被ルビ文字列を特定することが可能となる。
【0058】
本実施形態によると、ルビを含む文章の非構造化データから構造化データに変換することにより、ルビ情報を紛失せずに文章と一緒に構造化することが可能となる。
【0059】
(実施形態2)
実施形態2は、人工知能(AI:Artificial Intelligence)を用いて、ルビのまとまりを抽出する形態に関する。なお、実施形態1と重複する内容については説明を省略する。
【0060】
図7は、実施形態2のコンピュータ1の構成例を示すブロック図である。なお、
図1と重複する内容については同一の符号を付して説明を省略する。コンピュータ1は、大容量記憶部17を含む。大容量記憶部17は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。なお、本実施形態において記憶部12及び大容量記憶部17は一体の記憶装置として構成されていても良い。また、大容量記憶部17は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部17はコンピュータ1に接続された外部記憶装置であっても良い。
【0061】
大容量記憶部17には、ルビ検出器171及びルビ辞書172が記憶されている。ルビ検出器171は、文章中の本文の単語ごとのルビのまとまりを抽出する抽出器であり、機械学習により生成された学習済みモデルである。ルビ辞書172は、文字列と、他の文字列(ルビのまとまり)とを対応付けた辞書を記憶している。後述するように文章中の本文の単語ごとのルビのまとまりを抽出する際に、コンピュータ1はルビ辞書172を参照して、抽出したルビのまとまりに対応する文章中の被ルビ文字列を特定する。
【0062】
図8は、ルビ辞書172のレコードレイアウトの一例を示す説明図である。ルビ辞書172は、ルビのまとまり列及び被ルビ文字列列を記憶している。ルビのまとまり列は、ルビのまとまりを記憶している。被ルビ文字列列は、ルビのまとまりに対応する被ルビ文字列を記憶している。
【0063】
図9は、ルビ検出器171に関する説明図である。ルビ検出器171は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。ルビ検出器171は、ルビを含む文章の画像が入力された場合に、該ルビのまとまりに関する情報を出力する学習モデルである。ルビのまとまりに関する情報は、例えばルビのまとまりが写っていると推定する領域(位置情報)と、その領域にルビのまとまりが写っている確率とを示す情報である。
【0064】
本実施の形態のルビ検出器171は、RCNN(Regions with Convolutional Neural Network)を用いて推定を行う。ルビ検出器171は、領域候補抽出部73aと、分類部73bとを含む。分類部73bは、図示を省略するニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。
【0065】
ルビ検出器171に、文章の画像が入力される。領域候補抽出部73aは、画像から様々なサイズの領域候補を抽出する。分類部73bは、抽出された領域候補の特徴量を算出し、算出した特徴量に基づいて領域候補に写っている被写体がルビのまとまりであるか否かを分類する。ルビ検出器171は、領域候補の抽出と分類とを繰り返す。
【0066】
ルビ検出器171は、所定の閾値よりも高い確率でルビのまとまりが写っていると分類された領域候補について、領域の範囲(例えば、座標)、および、ルビのまとまりが写っている確率を出力する。
図9に示す例では、90パーセントの確率でルビのまとまりが写っている領域が検出されている。例えば領域範囲は、X座標値が100~110であり、且つ、Y座標値が120~150である。
【0067】
なお、RCNNの代わりに、Fast RCNN、Faster RCNNまたはSSD(Single Shot Multibook Detector)、YOLO(You Only Look Once)等の、任意の物体検出アルゴリズムを使用しても良い。
【0068】
図10は、実施形態2の文章の構造化処理を行う際の処理手順を示すフローチャートである。コンピュータ1の制御部11は、ルビを含む文章の画像を記憶部12または大容量記憶部17から取得する(ステップS121)。なお、文章のテキストデータが取得された場合、文章に対して画像化処理を行っても良い。
【0069】
制御部11は、ルビが含まれる文章を入力した場合に、該ルビのまとまりに関する情報を出力する学習済みのルビ検出器171に、取得した文章の画像を入力して、該文章に含まれる各ルビのまとまりに関する情報を出力する(ステップS122)。出力されたルビのまとまりに関する情報には、ルビのまとまりが写っていると推定する領域の範囲(位置情報)が含まれる。
【0070】
制御部11は、ルビ検出器171から出力された各ルビのまとまりの領域の範囲に基づき、例えばOCR技術を用いて、各ルビのまとまりの表示領域の画像を文字コードに変換し、ルビのまとまりを抽出する(ステップS123)。制御部11は、抽出したルビのまとまりに対応する被ルビ文字列を特定する処理のサブルーチンを実行する(ステップS124)。なお、被ルビ文字列の特定処理のサブルーチンに関しては後述する。
【0071】
制御部11は、抽出したルビのまとまりと、特定した被ルビ文字列とを対応付けて記憶部12に記憶する(ステップS125)。制御部11は、抽出した各ルビのまとまりと、各ルビのまとまりに対応する被ルビ文字列とを対応付けて構造化処理を行う(ステップS126)。制御部11は、例えばXMLファイル等の形式で文章の構造化データを出力し(ステップS127)、処理を終了する。
【0072】
図11は、実施形態2の被ルビ文字列を特定する処理のサブルーチンの処理手順を示すフローチャートである。コンピュータ1の制御部11は、ステップS123の処理(
図10)で抽出されたルビのまとまりを取得する(ステップS21)。制御部11は、大容量記憶部17のルビ辞書172を照合し、取得したルビのまとまりに対応する文字列を取得する(ステップS22)。制御部11は、ルビ辞書172から取得された文字列に基づき、該ルビのまとまりが含まれる文章中の被ルビ文字列を特定する(ステップS23)。制御部11は、被ルビ文字列を特定する処理のサブルーチンを終了してリターンする。
【0073】
また、ウェブサーバ上の辞書を利用することにより、被ルビ文字列を特定することができる。例えばコンピュータ1は、ウェブサーバから提供された辞書のAPI(Application Programming Interface)を通じて、ルビのまとまりを検索キー(入力)として、該ルビのまとまりに対応する被ルビ文字列(出力)をウェブサーバ上の辞書から検索しても良い。なお、上述した被ルビ文字列の特定処理に限らず、実施形態1での被ルビ文字列の特定処理を利用しても良い。
【0074】
なお、本実施形態では、ルビのまとまりを検索キーとして、該ルビのまとまりに対応する被ルビ文字列をルビ辞書172から検索した例を説明したが、これに限るものではない。例えば、被ルビ文字列を検索キーとして、該被ルビ文字列に対応するルビのまとまりをルビ辞書172から検索しても良い。この場合、コンピュータ1は形態素解析を行い、先に文章から被ルビ文字列を抽出する。コンピュータ1はルビ辞書172を照合し、抽出した被ルビ文字列に対応するルビのまとまりを取得する。コンピュータ1は、ルビ辞書172から取得されたルビのまとまりに基づき、文章中から被ルビ文字列に対応するルビのまとまりを特定する。
【0075】
本実施形態によると、ルビ検出器171を用いて、文章中の本文の単語ごとのルビのまとまりを抽出することが可能となる。
【0076】
本実施形態によると、ルビ辞書172を用いて、ルビのまとまりに対応する被ルビ文字列を特定することが可能となる。
【0077】
(実施形態3)
図12は、上述した形態のコンピュータ1の動作を示す機能ブロック図である。制御部11が制御プログラム1Pを実行することにより、コンピュータ1は以下のように動作する。
【0078】
抽出部10aは、文章中の本文の単語ごとのルビのまとまりを抽出する。特定部10bは、抽出部10aが抽出した各ルビのまとまりに対応する文章の中の被ルビ文字列を特定する。
【0079】
本実施の形態3は以上の如きであり、その他は実施の形態1から2と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【0080】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0081】
1 情報処理装置(コンピュータ)
11 制御部
12 記憶部
13 通信部
14 入力部
15 表示部
16 読取部
17 大容量記憶部
171 ルビ検出器
73a 領域候補抽出部
73b 分類部
172 ルビ辞書
1a 可搬型記憶媒体
1b 半導体メモリ
1P 制御プログラム
10a 抽出部
10b 特定部