IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社LegalForceの特許一覧

特開2024-53820自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム
<>
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図1
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図2
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図3
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図4
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図5
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図6A
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図6B
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図7
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図8
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図9
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図10
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図11
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図12
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図13
  • 特開-自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024053820
(43)【公開日】2024-04-16
(54)【発明の名称】自然言語処理方法、自然言語処理システム、及び自然言語処理プログラム
(51)【国際特許分類】
   G06F 40/268 20200101AFI20240409BHJP
   G06F 40/295 20200101ALI20240409BHJP
【FI】
G06F40/268
G06F40/295
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022160263
(22)【出願日】2022-10-04
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 学会における発表による公開、開催日:令和4年8月30日、学会名:NLP若手の会(YANS)第17回シンポジウム、開催場所:オンライン(https://app.gather.town/events/DG7VjEedNn8mrV2WngD7)
(71)【出願人】
【識別番号】717005132
【氏名又は名称】株式会社LegalOn Technologies
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】赤部 晃一
(72)【発明者】
【氏名】小田 悠介
(72)【発明者】
【氏名】神田 峻介
【テーマコード(参考)】
5B091
【Fターム(参考)】
5B091AA15
5B091AB06
5B091CA02
5B091EA01
(57)【要約】
【課題】処理データ量を抑制することが可能な自然言語処理方法、自然言語処理システム、及び自然言語処理プログラムを提供する。
【解決手段】プロセッサにより実行される自然言語処理方法であって、少なくとも1つの文字列と、文字列の任意の単語に対応する複数の素性の全部又は一部それぞれの、単語に対応するタグを判定する重みに関する第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを統合して、第2重み配列を算出することと、抽出範囲に関する窓幅情報に基づいて、対象単語に対応する少なくとも1つの素性を抽出することと、第2重み配列及び抽出された少なくとも1つの素性に基づいて、対象単語のタグを判定することと、を含む自然言語処理方法。
【選択図】図1
【特許請求の範囲】
【請求項1】
プロセッサにより実行される自然言語処理方法であって、
少なくとも1つの文字列と、前記少なくとも1つの文字列の任意の単語に対応する複数の素性の全部又は一部それぞれの、単語に対応するタグを判定する重みに関する第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の前記複数の素性の前記重みを統合して、第2重み配列を算出することと、
事前に設定される抽出範囲に関する窓幅情報に基づいて、対象単語に対応する少なくとも1つの素性を抽出することと、
前記第2重み配列及び前記抽出された少なくとも1つの素性に基づいて、前記対象単語のタグを判定することと、
を含む自然言語処理方法。
【請求項2】
前記第1重み配列は、少なくとも1つの単語にタグが設定された少なくとも1つの学習用文字列と、前記学習用文字列の任意の単語に対応する複数の素性と、によって学習して生成される、請求項1に記載の自然言語処理方法。
【請求項3】
前記第2重み配列を算出することは、前記対象単語に隣接しない素性の前記重みを含まない前記第2重み配列を算出することを含む、請求項1又は2に記載の自然言語処理方法。
【請求項4】
文字列を分割して複数の分割文字列を取得することをさらに含み、
前記対象単語は、前記複数の分割文字列に含まれる複数の対象単語を含み、
前記素性を抽出することは、前記複数の対象単語のそれぞれに対応する少なくとも1つの素性を抽出することを含み、
前記タグを判定することは、前記複数の対象単語のそれぞれのタグを判定することを含む、
請求項1又は2に記載の自然言語処理方法。
【請求項5】
前記少なくとも1つの文字列の任意の単語に対応する前記複数の素性は、前記少なくとも1つの文字列の所定の単語と当該所定の単語を起点とする所定の相対位置との間にある文字又は文字列であり、
前記対象単語に対応する前記少なくとも1つの素性は、前記対象単語と前記対象単語を起点とする所定の相対位置との間にある文字又は文字列である、
請求項1又は2に記載の自然言語処理方法。
【請求項6】
前記少なくとも1つの文字列の任意の単語に対応する前記複数の素性は、前記少なくとも1つの文字列の所定の単語と当該所定の単語を起点とする所定の相対位置との間にある文字の文字種又は文字列の文字種であり、
前記対象単語に対応する前記少なくとも1つの素性は、前記対象単語と前記対象単語を起点とする所定の相対位置との間にある文字の文字種又は文字列の文字種である、
請求項1又は2に記載の自然言語処理方法。
【請求項7】
少なくとも1つのプロセッサを具備する自然言語処理システムであって、
前記少なくとも1つのプロセッサが、
少なくとも1つの文字列と、前記少なくとも1つの文字列の任意の単語に対応する複数の素性の全部又は一部それぞれの、文字又は文字列に対応するタグを判定する重みに関する第1重み配列に基づいて、末尾から少なくとも1文字が一致する文字又は文字列に対応する、少なくとも1組の前記複数の素性の前記重みを統合して、第2重み配列を算出し、
事前に設定される抽出範囲に関する窓幅情報に基づいて、少なくとも1文字を含む対象単語に対応する少なくとも1つの素性を抽出し、
前記第2重み配列及び前記抽出された少なくとも1つの素性に基づいて、前記対象単語のタグを判定する、
ように構成されている、自然言語処理システム。
【請求項8】
プロセッサに、
少なくとも1つの文字列と、前記少なくとも1つの文字列の任意の単語に対応する複数の素性の全部又は一部それぞれの、文字又は文字列に対応するタグを判定する重みに関する第1重み配列に基づいて、末尾から少なくとも1文字が一致する文字又は文字列に対応する、少なくとも1組の前記複数の素性の前記重みを統合して、第2重み配列を算出することと、
事前に設定される抽出範囲に関する窓幅情報に基づいて、少なくとも1文字を含む対象単語に対応する少なくとも1つの素性を抽出することと、
前記第2重み配列及び前記抽出された少なくとも1つの素性に基づいて、前記対象単語のタグを判定することと、
を実行させるための自然言語処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自然言語処理方法、自然言語処理システム、及び自然言語処理プログラムに関する。
【背景技術】
【0002】
近年、コンピュータによる、文章の文脈解析や意味解析等の自然言語処理に関する技術が発達しつつある。
【0003】
コンピュータによる自然言語処理では、文章を単語に分割する際に行われる単語境界の判定処理の後、各単語の品詞等の属性を示すタグを判定する処理が行われる場合がある。
【0004】
例えば、特許文献1に記載されている装置は、入力文から固有表現を抽出する装置であって、形態素解析モデルを用いて入力文を形態素解析し、入力文全体の形態素列について出現確率が高い上位N個(Nは1より大きい自然数)の形態素列を抽出し、固有表現抽出モデルを用いて、抽出されたN個の形態素列から固有表現を含む形態素列について出現確率が高い上位M個(Mは1以上の自然数)の固有表現を含む形態素列を抽出することを特徴とする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004―46775号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載されている装置では、処理されるデータ量が大きくなるという問題がある。
【0007】
そこで、本発明の一態様は、処理するデータ量を抑制することが可能な自然言語処理方法、自然言語処理システム、及び自然言語処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一態様に係る自然言語処理方法は、プロセッサにより実行される自然言語処理方法であって、少なくとも1つの文字列と、少なくとも1つの文字列の任意の単語に対応する複数の素性の全部又は一部それぞれの、単語に対応するタグを判定する重みに関する第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを統合して、第2重み配列を算出することと、事前に設定される抽出範囲に関する窓幅情報に基づいて、対象単語に対応する少なくとも1つの素性を抽出することと、第2重み配列及び抽出された少なくとも1つの素性に基づいて、対象単語のタグを判定することと、を含む。
【発明の効果】
【0009】
本発明の一態様によれば、処理するデータ量を抑制することが可能な自然言語処理方法、自然言語処理システム、及び自然言語処理プログラムを提供することができる。
【図面の簡単な説明】
【0010】
図1】本発明の一実施形態である自然言語処理システム100における処理の概要を示す図である。
図2】本発明の一実施形態である自然言語処理システム100の構成を示す図である。
図3】記憶部110に記憶される学習用文字列情報の例を示す図である。
図4】素性抽出部120が抽出する素性の例を示す図である。
図5】記憶部110に記憶される第1重み配列の例を示す図である。
図6A】第2重み配列算出部130によって重みが統合されていない場合の処理の概要を示す図である。
図6B】第2重み配列算出部131によって重みが統合されている場合の処理の概要を示す図である。
図7】記憶部110に記憶される第2重み配列の例を示す図である。
図8】記憶部110に記憶される対象文字列情報の例を示す図である。
図9】記憶部110に記憶される分割文字列情報の例を示す図である。
図10】記憶部110に記憶される判定結果情報の例を示す図である。
図11】自然言語処理システム100における処理速度に関する実験結果を示す図である。
図12】自然言語処理システム100が判定処理対象とする契約書1200の例を示す図である。
図13】自然言語処理システム100における第2重み配列の生成処理の例を示すフローチャートである。
図14】自然言語処理システム100における対象単語のタグ判定処理の例を示すフローチャートである。
【発明を実施するための形態】
【0011】
図面を参照して、本発明に係る実施形態について説明する。図1は、本発明の一実施形態である自然言語処理システム100における処理の概要を示す図である。
【0012】
なお、本開示において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」又は装置が有する機能が2つ以上の物理的手段、装置、又はソフトウェアにより実現されても、2つ以上の「部」又は装置の機能が1つの物理的手段、装置、又はソフトウェアにより実現されてもよい。
【0013】
自然言語処理システム100は、任意の文字列(対象文字列)に含まれる単語に対応するタグを判定するシステムである。
【0014】
ここで、タグは、例えば、単語の品詞若しくは属性、又は読み仮名を示す情報である。単語の品詞若しくは属性は、例えば、名詞、動詞、接頭辞、接尾辞、普通名詞、固有名詞、一般名詞、人名であってもよい。読み仮名は、例えば、単語の発音を示す平仮名、片仮名、ローマ字であってもよい。また、1つの単語に複数のタグが対応してもよい。
【0015】
まず、自然言語処理システム100は、単語にタグが設定された学習用文字列と、学習用文字列の任意の単語に対応する素性と、によって学習して、学習済みモデル及び第1重み配列を生成する(S101)。
【0016】
ここで、素性は、単語に対応する情報であり、例えば、文字n-gram又は文字種n-gramを含む。また、第1重み配列は、素性と、単語に対応するタグを判定する基準となる重みと、を対応付けた配列データである。
【0017】
次に、自然言語処理システム100は、第1重み配列に基づいて、第1重み配列に含まれる、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを統合して、第2重み配列を算出する(S102)。自然言語処理システム100は、例えば、第1重み配列に含まれる2つの素性「全世界」及び素性「世界」の重みを、1つの素性「全世界」の重みに含めるように統合し、第2重み配列を生成する。
【0018】
その後、自然言語処理システム100は、対象文字列におけるタグを判定する対象となる対象単語に対応する素性を抽出する(S103)。
【0019】
そして、自然言語処理システム100は、学習済みモデルと、第2重み配列と、抽出される対象単語に対応する素性と、に基づいて、対象単語に対応するタグを判定する(S104)。
【0020】
なお、自然言語処理システム100は、任意の文字列の単語について、当該単語に対応するタグを判定することができる。つまり、自然言語処理システム100は、専門分野の文字列もタグ判定処理の対象とすることができ、例えば、契約書等の法律分野の文書に含まれる単語をタグ判定処理の対象とすることができる。ここで、契約書は、例えば、条項を含み、所定の法的効果を発生させる文書であり、申込書、覚書等も含む。
【0021】
また、本実施形態の文字列は、少なくとも1つの文字を含む文字列であればよく、1文字からなる文字であってもよく、また、2文字以上の文字からなる文字列であってもよい。本実施形態の文字列は、紙の文書から画像認識技術(例えば、Optical Character Recognition技術)等で抽出されたものであってもよい。
【0022】
図2は、本発明の一実施形態である自然言語処理システム100の構成を示す図である。自然言語処理システム100は、情報処理システム200及びユーザ端末300とインターネット等のネットワークを介して通信可能に接続されるシステムである。自然言語処理システム100の詳細は、後述する。
【0023】
情報処理システム200は、例えば、学習用文字列を記憶し、学習用文字列を外部の情報処理システムに提供する情報処理システムである。情報処理システム200は、自然言語処理システム100に対し、学習用文字列に関する学習用文字列情報及び学習用文字列に対応する素性に関する情報を提供することができる。
【0024】
ユーザ端末300は、例えば、ユーザが利用するコンピュータであり、スマートフォン、タブレット端末、パーソナルコンピュータ等である。ユーザ端末300は、自然言語処理システム100によるタグ判定処理の対象となる単語に関するデータが含まれた文書データ若しくは画像データを、自然言語処理システム100に提供したり、自然言語処理システム100に対し、外部の情報処理システムから取得するように指示したりすることができる。
【0025】
なお、図2では、ユーザ端末300の例として、ユーザ端末300の1つのみを示しているが、ユーザ端末300の数はこれに限られない。
【0026】
また、自然言語処理システム100は、全部又は一部が、情報処理システム200及びユーザ端末300の少なくともいずれかに組み込まれるシステムであってもよい。
【0027】
続いて、自然言語処理システム100の詳細について説明する。自然言語処理システム100は、記憶部110、学習用文字列取得部115、素性抽出部120、学習部125、第2重み配列算出部130、対象文字列取得部135、文字列分割部140、タグ判定部145、出力部150、条文分割部155、条文種別判定部160、表示部165を備える。図2に示す各部は、例えば、記憶領域を用いたり、記憶領域に格納された自然言語処理プログラムをプロセッサが実行したりすることにより実現することができる。
【0028】
本実施形態の記憶部110は、自然言語処理システム100において処理される情報を記憶する。記憶部110は、例えば、後述する、学習用文字列情報、第1重み配列、第2重み配列、対象文字列情報、分割文字列情報、判定結果情報を記憶することができる。
【0029】
本実施形態の学習用文字列取得部115は、情報処理システム200から、少なくとも1つの単語にタグが設定された少なくとも1つの文字列である学習用文字列に関する学習用文字列情報を取得し、記憶部110に格納する。
【0030】
ここで、学習用文字列情報は、少なくとも1つの単語にタグが設定された文字列に関する情報であり、機械学習におけるいわゆる教師データである。また、学習用文字列情報は、自然言語処理システム100が、後述する第1重み配列を生成する際に学習する情報である。
【0031】
ここで、タグは、例えば、単語の品詞若しくは属性、又は読み仮名を示す情報である。単語の品詞若しくは属性は、例えば、名詞、動詞、接頭辞、接尾辞、普通名詞、固有名詞、一般名詞、人名であってもよい。読み仮名は、例えば、単語の発音を示す平仮名、片仮名、ローマ字であってもよい。なお、タグが示す情報は、これに限られない。
【0032】
具体的には、単語「全世界」に対応するタグは、例えば、「名詞-普通名詞-一般/ゼンセカイ」といった形式によって、単語の品詞若しくは属性、又は読み仮名を示す。
【0033】
単語に対応するタグは、当該単語が属する文字列(すなわち、例えば、文)における当該単語の意味に応じて異なる。具体的には、例えば、単語「素」は、「モト」と読まれる場合、名詞になる場合がある一方、「ソ」と読まれる場合、接尾辞になる場合がある。
【0034】
なお、タグの記憶形式及び表示形式は、「名詞-普通名詞-一般/ゼンセカイ」といった形式に限られない。
【0035】
また、学習用文字列には、少なくとも1つの単語にタグが設定されていればよく、全ての単語にタグが設定されている必要はない。
【0036】
また、学習用文字列取得部115は、学習用文字列情報自体を取得し記憶部110に格納してもよく、また、学習用文字列情報のリンクに関する情報を取得し、学習用文字列情報のリンクに関する情報を記憶部110に格納してもよい。
【0037】
図3は、記憶部110に記憶される学習用文字列情報の例を示す図である。記憶部110に記憶される情報は、例えば、学習用文字列ID及び学習用文字列内容情報を含む。
【0038】
本実施形態の学習用文字列IDは、学習用文字列情報に含まれる学習用文字列を識別する情報である。
【0039】
本実施形態の学習用文字列内容情報は、学習用文字列の内容に関する情報である。学習用文字列内容情報は、学習用文字列に含まれる少なくとも1つの単語(例えば、「全世界」)に、タグが設定されている。
【0040】
本実施形態の素性抽出部120は、事前に設定される抽出範囲を示す窓幅に関する窓幅情報に基づいて、単語に対応する素性を抽出し、素性情報を生成する。
【0041】
ここで、本実施形態の窓幅情報は、例えば、素性抽出部120が抽出する範囲を示す情報である。素性の詳細は、後述する。
【0042】
素性抽出部120は、学習用文字列情報に含まれる単語に対応する2つ以上の素性を抽出することができる。
【0043】
また、素性抽出部120は、後述する対象文字列情報に含まれる対象単語に対応する少なくとも1つの素性、及び分割文字列情報に含まれる対象単語に対応する少なくとも1つの素性を抽出することができる。
【0044】
素性抽出部120が学習用文字列情報に含まれる単語に対応する2つ以上の素性を抽出する際、素性抽出部120は、タグが設定された単語に対応する素性を抽出してもよく、また、タグが設定されていない単語に対応する素性を抽出してもよい。また、素性抽出部120は、1つの単語から2以上の素性を抽出してもよく、また、2以上の単語からそれぞれ1つの素性(合計して2以上の素性)を抽出してもよい。
【0045】
なお、素性抽出部120は、情報処理システム200から、学習用文字列情報に含まれる単語に対応する2以上の素性に関する素性情報を取得し、素性情報を生成してもよい。
【0046】
次に、素性抽出部120が抽出する素性の詳細について説明する。素性抽出部120が抽出する素性として、例えば、文字n-gram及び文字種n-gramを用いることができる。
【0047】
本実施形態の文字n-gramは、例えば、所定の単語と当該所定の単語を起点とする所定の相対位置との間にある文字又は文字列を示す情報である。ここで、「n」は、文字又は文字列の文字数を示す。
【0048】
本実施形態の文字種n-gramは、例えば、所定の単語と当該所定の単語を起点とする所定の相対位置との間にある文字の文字種又は文字列の文字種を示す情報である。ここで、文字種とは、文字の種別を示す情報であり、例えば、漢字、片仮名、平仮名、ローマ字、数字、及びその他を含む。ここで、「n」は、文字又は文字列の文字数を示す。
【0049】
図4は、素性抽出部120が抽出する素性の例を示す図である。図4では、文字列「われらは全世界の国民が、」における文字列401「の」に対応する素性の例を示す。
【0050】
まず、素性抽出部120は、素性を抽出する範囲を示す窓幅に関する窓幅情報に基づいて、窓幅を設定する。図4では、窓幅を3(つまり、文字列401から前後3文字分)とした窓幅402が示されている。窓幅情報は、素性抽出部120による抽出処理の前に、設定されていればよい。
【0051】
そして、素性抽出部120は、文字列401からの相対位置(窓幅が3である図4の場合は、相対位置「-3」~「3」の計7つの相対位置)ごとに、文字n-gram及び文字種n-gramを抽出する。なお、窓幅が3であるため、各相対位置に対応する文字n-gram及び文字種n-gramは、それぞれ、文字1-gram~文字3-gram及び文字種1-gram~文字種3-gramとなる。
【0052】
図4に示す例のとおり、例えば、文字1-gramは、相対位置順に、「全」、「世」、「界」、「の」、「国」、「民」、「が」を含む。
【0053】
また、例えば、文字種1-gramは、相対位置順に、「漢」、「漢」、「漢」、「ひ」、「漢」、「漢」、「ひ」を含む。ここで、文字種「漢」は、文字種が漢字であることを示し、文字種「ひ」は、文字種が平仮名であること示す。なお、文字種の表記方法は、図4に示す方法に限られない。
【0054】
本実施形態の学習部125は、学習用文字列情報と、学習用文字列に含まれる単語に対応する2以上の素性情報と、によって素性と単語に対応するタグとの関係を学習して、第1重み配列及び学習済みモデルを生成し、第1重み配列及び学習済みモデルを記憶部110に格納する。
【0055】
ここで、本実施形態の第1重み配列は、単語のタグを判定する基準となる重みに関する配列データであって、学習用文字列に含まれる単語に対応する2以上の素性と、学習用文字列に含まれる単語に対応する2以上の素性それぞれの、単語に対する相対位置ごとの重みとの関係を対応させた配列データである。
【0056】
なお、第1重み配列に含まれる学習用文字列に含まれる単語に対応する2以上の素性は、素性抽出部120が生成した素性情報に対応する素性の全部又は一部であってもよい。また、第1重み配列に含まれる学習用文字列に含まれる単語に対応する2以上の素性は、素性抽出部120が情報処理システム200から取得した素性情報の全部又は一部であってもよい。
【0057】
学習部125によって学習される学習済みモデルは、任意の単語に対応する素性及び重み配列(第1重み配列又は後述する第2重み配列)に基づいて、単語に対応するタグを判定するモデルである。
【0058】
具体的には、学習済みモデルは、入力される、特定の単語に対応する素性及び重み配列(第1重み配列又は後述する第2重み配列)に基づいて、判定対象となる単語のタグに関するスコアを出力する。
【0059】
図5は、記憶部110に記憶される第1重み配列の例を示す図である。記憶部110に記憶される第1重み配列は、例えば、素性情報、相対位置情報、重み情報(文字n-gramに関する重みを示す文字n-gram重み情報、及び文字種n-gramに関する重みを示す文字種n-gram重み情報)を含む。
【0060】
なお、第1重み配列は、図5に示すように、複数種別の重み情報をまとめて、1つの配列情報として、素性情報ごとに対応付けた情報であってもよく、また、重み情報の種別ごとに、当該種別の重み情報を素性情報ごとに対応付けた情報であってもよい。
【0061】
ここで、本実施形態の素性情報は、素性抽出部120が抽出し生成した、学習用文字列に含まれる単語に対応する2以上の素性に関する情報である。本実施形態の相対位置情報は、素性情報に対応する素性それぞれの、単語に対する相対位置に関する情報である。本実施形態の重み情報は、素性及び相対位置に対応する、単語のタグを判定する基準となる重みに関する情報である。
【0062】
なお、素性情報は、素性抽出部120が抽出した全部の素性に関する情報であってもよく、また、一部の素性に関する情報であってもよい。また、素性情報は、素性抽出部120が情報処理システム200から取得した素性情報の全部又は一部であってもよい。
【0063】
学習部125による第1重み配列の生成は、例えば、システム管理者の指示に応じて実行される。また、システムメンテナンス時間等の所定のタイミングで自動的に学習が実行されてもよく、また、後述する第2重み配列算出部130による第2重み配列の算出処理の直前に実行されてもよい。学習のアルゴリズムは特に限定されないが、例えば、ランダムフォレスト(Random Forest)、SVM(Support Vector Machine)を用いることができる。
【0064】
また、記憶部110は、学習部125によって生成される第1重み配列及び学習済みモデルを記憶してもよく、また、外部の情報処理システムに記憶されている第1重み配列に対応する情報や当該第1重み配列に対応する情報のリンクに関する情報を記憶してもよい。
【0065】
本実施形態の第2重み配列算出部130は、第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを統合して、第2重み配列を算出し、記憶部110に格納する。
【0066】
具体的には、例えば、文字列「全世界」及び文字列「世界」は、末尾から2文字(すなわち、「世界」)が一致する複数の文字列である。そのため、第1重み配列に含まれる文字n-gram素性「全世界」及び文字n-gram素性「世界」は、末尾から少なくとも1文字(この場合は、2文字)が一致する複数の文字列に対応する、少なくとも1組の複数の素性に該当する。
【0067】
すなわち、第2重み配列算出部130は、例えば、文字n-gram素性「全世界」及び文字n-gram素性「世界」に対応する重みを統合して、文字n-gram素性「全世界」の重みを算出し、第2重み配列を生成することができる。
【0068】
なお、末尾から少なくとも1文字が一致する複数の文字列は、「全世界」「世界」のように単語として認識可能な文字列であってもよく、また、「の国」「界の国」等、単語の一部、又は複数の単語若しくは複数の単語の一部を組み合わせた文字列であってもよい。
【0069】
第2重み配列算出部130による素性の重みの統合処理は、例えば、第1重み配列に含まれる、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを加算することにより、当該少なくとも1組の2以上の素性の重みを統合してもよく、また、その他の演算処理であってもよい。
【0070】
なお、第2重み配列算出部130は、末尾から少なくとも1文字が一致する複数の文字列に対応する全ての素性の組み合わせを統合しなくてもよい。また、第2重み配列算出部130による第2重み配列の算出は、例えば、システム管理者の指示に応じて、又は、システムメンテナンス時間等の所定のタイミングで自動的に算出処理が実行されてもよく、また、後述するタグ判定部145の判定処理の直前に実行されてもよい。
【0071】
また、第2重み配列算出部130は、特定の単語(例えば、後述する対象単語)に隣接しない素性の重みを含まない第2重み配列を算出することができる。
【0072】
具体的には、例えば、図4に示すように、窓幅402の範囲内で、文字列401に対応する素性において、単語「の」について、文字n-gram素性「全世界」は、単語「の」に隣接する一方、文字n-gram素性「全世」は、単語「の」に隣接しない。この場合、第2重み配列算出部130は、第1重み配列に含まれる、文字n-gram素性「全世」に対応する素性の重みを含まない第2重み配列を算出することができる。
【0073】
特定の単語(例えば、後述する対象単語)に隣接しない素性は、文字列において、当該特定の単語から離れている単語に対応する素性である。そのため、当該特定の単語に隣接しない素性は、当該特定の単語のタグの判定処理において、重要ではない場合がある。そこで、自然言語処理システム100は、第2重み配列として、当該特定の単語に隣接しない素性の重みを含まない重み配列を算出することで、後述するタグ判定部145による判定の精度を損なわず、第2重み配列のデータ量を削減し、後述するタグ判定部145による判定速度を向上させることができる。
【0074】
図6A及び6Bを用いて、第2重み配列算出部130による重みの統合処理について説明する。図6A及び6Bは、自然言語処理システム100によって単語に対応する素性が抽出される処理の概要を示す図である。図6Aは、第2重み配列算出部130によって重みが統合されていない場合の処理の概要を示す図である。図6Bは、第2重み配列算出部130によって重みが統合されている場合の処理の概要を示す図である。
【0075】
ノード601は、自然言語処理システム100が処理対象とする文字列の文字間を示し、エッジ602は、ノード601同士が文字によって繋がっていることを示し、文字603は、エッジ602に対応する文字を示す。素性604は、エッジ602に対応する素性を示す。つまり、例えば、エッジ602aは、文字列「全世界」を示し、エッジ602aに対応する素性として、素性604a(素性「全世界」)及び素性604b(素性「世界」)があることを示す。そして、後述するタグ判定部145は、素性604a及び素性604bのそれぞれに対応する重み情報に基づいて、単語のタグを判定する。なお、抽出される素性は、図6A及び6Bに示す素性604に限られない。
【0076】
図6Aに示すとおり、第2重み配列算出部130によって重みが統合されていない場合、エッジ602aには、素性604a(素性「全世界」)及び素性604b(素性「世界」)が対応している。つまり、第2重み配列算出部130によって統合されていない場合、素性604a(素性「全世界」)及び素性604b(素性「世界」)のそれぞれに対応する重み情報に基づいて、単語のタグが判定される。
【0077】
図6Bに示すとおり、第2重み配列算出部130は、末尾から少なくとも1文字が一致する複数の文字列に対応する、素性604a(素性「全世界」)及び素性604b(素性「世界」)の重みを統合することができる。つまり、図6Bに示すとおり、第2重み配列算出部130によって重みが統合されている場合、統合された素性604cに対応する重み情報に基づいて、単語のタグが判定される。
【0078】
その結果、後述するタグ判定部145は、例えば、単語「全世界」に対応するタグの判定の際、統合された素性「全世界」に対応する重み情報を参照し、素性「世界」に対応する重み情報を参照しないこととすることができる。
【0079】
なお、第2重み配列には、統合に用いられた素性(例えば、素性「世界」)の重み情報は含まれており、タグ判定部145は、第2重み配列に含まれる、統合に用いられた素性の重み(例えば、素性「世界」)を参照することができる。つまり、タグ判定部145は、例えば「ある世界の全国民」という文字列(つまり「全世界」という文字列ではない文字列であって、単語「世界」が含まれている文字列)におけるタグ判定の際に、素性「世界」の重みを参照することができる。
【0080】
図7は、記憶部110に記憶される第2重み配列の例を示す図である。記憶部110に記憶される第2重み配列は、例えば、素性情報、相対位置情報、重み情報(文字n-gram重み情報、文字種n-gram重み情報)を含む。
【0081】
なお、第2重み配列は、図7に示すように、複数種別の重み情報をまとめて、1つの配列情報として、素性情報ごとに対応付けた情報であってもよく、また、重み情報の種別ごとに、当該種別の重み情報を素性情報ごとに対応付けた情報であってもよい。
【0082】
本実施形態の対象文字列取得部135は、自然言語処理システム100に提供される文字列又は文字列に関するデータが含まれた文書データ若しくは画像データに基づいて、タグ判定処理の対象となる単語である対象単語を含む文字列である対象文字列情報を取得し、記憶部110に格納する。
【0083】
対象文字列取得部135は、例えば、契約書等の法律分野の文書の文書データ若しくは画像データから、当該文書に含まれる文字列を取得することができる。また、対象文字列取得部135は、日本語の文字列を取得してもよく、その他の言語の文字列を取得してもよい。
【0084】
対象文字列取得部135は、文字列又は文字列に関するデータが含まれた文書データ若しくは画像データをユーザ端末300から提供を受けてもよく、また、ユーザ端末300を通じたユーザからの指示に基づいて、文書データ若しくは画像データを外部の情報処理システムから取得してもよい。
【0085】
自然言語処理システム100が文字列に関するデータが含まれた文書データの提供を受ける場合、対象文字列取得部135は、例えば、文書データを解析して、提供を受けた文書データに含まれる文字列を取得する。
【0086】
自然言語処理システム100が文字列に関するデータが含まれた画像データの提供を受ける場合、対象文字列取得部135は、例えば、画像認識技術を用いて、提供を受けた画像データに含まれる文字列を取得する。
【0087】
対象文字列取得部135は、単語ごとに分割された対象文字列を取得する。すなわち、対象文字列は、例えば、文字間に単語境界の有無が設定された情報と対応付けられた文字列である。
【0088】
対象文字列取得部135が取得する対象文字列は、自然言語処理システム100において単語分割処理がなされた対象文字列であってもよい。この場合、自然言語処理システム100は、単語分割処理がなされていない文字列を取得し、所定の単語分割処理により、文字間に単語境界の有無を設定して、当該文字列を単語ごとに分割した対象文字列を生成する。そして、対象文字列取得部135は、単語ごとに分割された対象文字列を取得する。
【0089】
図8は、記憶部110に記憶される対象文字列情報の例を示す図である。記憶部110に記憶される対象文字列情報は、例えば、対象文字列ID、対象文字列内容情報を含む。本実施形態の対象文字列IDは、自然言語処理システム100におけるタグ判定処理の対象となる対象単語を含む対象文字列を識別する情報である。本実施形態の対象文字列内容情報は、対象文字列の内容に関する情報である。
【0090】
図8では、対象文字列内容情報において、単語境界となる文字間に、「/」を用いて単語境界の位置が示されているが、単語境界の位置を示す情報は、「/」に限られず、その他の記号や方法を用いてもよい。
【0091】
本実施形態の文字列分割部140は、対象文字列を分割して分割文字列を生成し、生成した分割文字列に関する分割文字列情報を記憶部110に格納する。
【0092】
文字列分割部140は、コンピュータの計算環境や対象文字列の性質に合わせて、対象文字列を任意の文字間の位置で分割することができる。文字列分割部140は、事前に定められた所定の条件によって設定される分割する文字間の位置に基づいて、対象文字列を分割してもよく、また、ユーザ端末300を通じたユーザの操作によって設定される、分割する文字間の位置に基づいて、対象文字列を分割してもよい。
【0093】
文字列分割部140は、分割文字列同士が重ならないように対象文字列を分割してもよく、また、分割文字列同士の一部が重なるように対象文字列を分割してもよい。
【0094】
なお、後述する、分割文字列ごとに並列して単語のタグを判定する並列判定処理において、分割文字列間の相互参照を避けるために、文字列分割部140は、分割文字列の両端が窓幅情報に対応する窓幅分だけ重なるように、対象文字列を分割文字列に分割してもよい。
【0095】
図9は、記憶部110に記憶される分割文字列情報の例を示す図である。記憶部110に記憶される分割文字列情報は、例えば、分割文字列ID及び分割文字列内容情報を含む。本実施形態の分割文字列IDは、文字列分割部140によって分割された分割文字列を識別する分割文字列識別情報である。本実施形態の分割文字列内容情報は、分割文字列の内容に関する情報である。
【0096】
図9では、後述する、分割文字列ごとに並列して単語のタグを判定する並列判定処理において、分割文字列間の参照を避けるために、分割文字列の両端が窓幅情報に対応する窓幅分(この場合は、6文字分)だけ重なるように分割された分割文字列が示されている。
【0097】
本実施形態のタグ判定部145は、学習済みモデル、第2重み配列、及び素性抽出部120によって抽出して生成される、対象文字列又は分割文字列に含まれる対象単語に対応する少なくとも1つの素性情報に基づいて、対象単語のタグを判定し、対象単語及びタグを対応付けた判定結果情報を記憶部110に格納する。
【0098】
ここで、対象単語は、例えば、対象文字列又は分割文字列に含まれる、タグ判定部145によるタグ判定処理の対象となる単語である。
【0099】
タグ判定部145は、学習済みモデルに、第2重み配列及び対象単語に対応する少なくとも1つの素性情報を入力し、対象単語に対応する少なくとも1つのタグの候補のスコアを算出する。その上で、タグ判定部145は、当該スコアが一定値以上であるタグ(例えば、最もスコアが高いタグ)を、対象単語に対応するタグであると判定する。
【0100】
また、タグ判定部145は、最適化された処理(例えば、メモリの最適化処理)の下、対象単語のタグに関するスコアを出力することができる。ここで、メモリの最適化処理は、例えば、重み配列に含まれる素性情報及び対象単語に対応する素性情報のパターンマッチ処理の際に利用される、配列のメモリ使用量を最適なサイズにする処理や配列の属性を示す情報を最適なサイズにする処理を含む。なお、これらの最適化処理は、素性情報のパターンマッチのみならず、より一般に、文字列のパターンマッチに適用可能である。
【0101】
また、タグ判定部145は、並列して、複数の分割文字列における複数の対象単語のタグ判定処理を行うことができる。
【0102】
図10は、記憶部110に記憶される判定結果情報の例を示す図である。記憶部110に記憶される判定結果情報は、例えば、判定結果ID、対象文字列ID、判定済み文字列内容情報を含む。本実施形態の判定結果IDは、判定結果情報を識別する情報である。
【0103】
本実施形態の判定済み文字列内容情報は、例えば、対象文字列又は分割文字列と、対象文字列又は分割文字列に含まれる少なくとも1つの対象単語に対応するタグとが対応付けられた情報である。
【0104】
なお、図10では、判定結果IDは、判定済み文字列内容情報に対応付けられているが、対象単語に対応付けられていてもよい。すなわち、記憶部110は、文字列ごとに判定結果情報を記憶してもよく、また、単語ごとに判定結果情報を記憶してもよい。
【0105】
本実施形態の出力部150は、判定結果情報を出力する。
【0106】
出力部150は、判定結果情報を、例えば、ユーザ端末300に出力してもよい。この場合、出力部150は、タグの種類(例えば、品詞に種類)に応じた表示態様(例えば、色)によって、ユーザ端末300してもよい。
【0107】
また、出力部150は、別の情報処理システム(例えば、タグ判定処理に続く自然言語処理を行う情報処理システム)に出力してもよい。
【0108】
図11は、自然言語処理システム100における処理速度に関する実験結果を示す図である。図11に示す図では、自然言語処理システム100における処理方法及び自然言語処理システム100とは異なる処理方法のそれぞれについて、与えられた文字列に含まれる単語のタグを判定する処理に要した時間(ミリ秒)及び判定の精度が示されている。
【0109】
図11に示す図において、A及びBは、タグ判定処理の前に行われる単語分割処理に要した時間及びその精度の結果を示し、C及びDは、単語分割処理及びタグ判定処理に要した時間及びその精度の結果を示す。
【0110】
また、A及びCは、自然言語処理システム100における処理方法とは異なる処理方法である「KyTea」(キューティー:京都テキスト解析ツールキット)を用いた結果である。
【0111】
Bは、「KyTea」とは異なる処理方法「Vaporetto」を用いた結果である。Dは、単語分割処理において「Vaporetto」を用い、タグ判定処理において自然言語処理システム100における処理方法を用いた結果である。なお、Dにおいて、自然言語処理システム100(特に、第2重み配列算出部130)は、第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の複数の素性の重みを統合し、さらに、対象単語に隣接しない素性の重みを含まない第2重み配列を算出している。
【0112】
図11に示すとおり、タグ判定処理において自然言語処理システム100における処理方法(D)を用いた場合、自然言語処理システム100とは異なる処理方法の結果(C)と比較して、処理に要した時間及びその精度が向上している。
【0113】
また、タグ判定処理を追加することによって増加した処理時間(すなわち、AとCの処理時間の差分、BとDの処理時間の差分)を比較すると、AとCの処理時間の差分が、223.6ミリ秒である一方、BとDの処理時間の差分が、43.7ミリ秒であることから、自然言語処理システム100における処理方法を用いたタグ判定処理の処理速度が、自然言語処理システム100とは異なる処理方法を用いたタグ判定処理の処理速度と比較して、向上していることが分かる。
【0114】
自然言語処理システム100は、判定処理対象が、例えば、契約書等の法律分野の文書である場合には、さらに、条文分割処理、条文種別判定処理、及び表示処理を行うことができる。なお、自然言語処理システム100は、判定処理対象が契約書等以外の文書である場合には、文書の性質に応じて、区切り分割処理、種別判定処理、及び表示処理を行うことができる。以下では、自然言語処理システム100の判定処理対象が契約書等の法律分野の文書とした場合の実施例について説明する。
【0115】
図12は、自然言語処理システム100が判定処理対象とする契約書1200の例を示す図である。図12に示す契約書1200は、2社間における秘密保持に関する契約書であり、契約書のタイトルを示す領域1201、序文を示す領域1202及び、条文を示す領域1211、1212、1213を含む。
【0116】
なお、自然言語処理システム100が後述する条文分割処理、条文種別判定処理、及び表示処理を行う前は、自然言語処理システム100は、領域1201が契約書のタイトルを示すこと、領域1202が契約書の序文を示すこと、及び領域1211、1212、1213が条文を示すことを認識できていない。
【0117】
本実施形態の条文分割部155は、契約書1200を、タイトル、序文、条文等の区切りごとに分割する。条文分割部155は、例えば、判定結果情報に基づいて、契約書1200を分割することができる。
【0118】
条文分割部155が判定結果情報に基づいて分割する場合には、例えば、「第○条」という名詞が記載されている前後を、「条文」の区切りとして分割することができる。なお、条文分割部155は、契約書1200を条ごとに分割してもよく、また、項又は号ごとに分割してもよい。
【0119】
なお、条文分割部155は、処理対象が契約書等以外の文書である場合には、文書の性質に応じて、区切り分割処理を行うことができる。例えば、処理対象が学術論文である場合には、条文分割部155は、「背景」、「方法」、「結果」、「考察」等の区切りに分割することができる。
【0120】
本実施形態の条文種別判定部160は、条文分割部155によって分割された区切りごとに、区切りの種別を判定する。種別とは、記載内容のカテゴリを示す情報であり、例えば、契約書等の法律分野の文書である場合には、「タイトル」、「序文」、「条文」を含む。条文種別判定部160は、例えば、区切りの冒頭に、「第○条」という名詞が記載されている部分を、種別「条文」と判定することができる。
【0121】
なお、条文種別判定部160は、処理対象が契約書等以外の文書である場合には、文書の性質に応じて、区切り分割処理を行うことができる。例えば、処理対象が学術論文である場合には、条文種別判定部160は、「背景」、「方法」、「結果」、「考察」等の種別を判定することができる。
【0122】
条文分割部155による条文分割処理及び条文種別判定部160による条文種別判定処理の結果、自然言語処理システム100は、契約書1200について、領域1201が契約書のタイトルを示すこと、領域1202が契約書の序文を示すこと、及び領域1211、1212、1213が条文を示すことを認識することができる。
【0123】
本実施形態の表示部165は、条文分割部155及び条文種別判定部160の処理の結果に基づいて、ユーザ端末300に、契約書1200並びに条文分割部155及び条文種別判定部160の処理の結果を表示する。
【0124】
図13は、自然言語処理システム100における第2重み配列の生成処理の例を示すフローチャートである。
【0125】
まず、学習用文字列取得部115は、情報処理システム200から学習用文字列情報を取得する(S1301)。次に、素性抽出部120は、学習用文字列に含まれる単語に対応する2以上の素性を抽出し素性情報を生成する(S1302)。続いて、学習部125は、学習用文字列情報と、学習用文字列に含まれる単語に対応する少なくとも1つの素性情報とに基づいて学習し、第1重み配列及び学習済みモデルを生成する(S1303)。そして、第2重み配列算出部130は、第1重み配列に基づいて、末尾から少なくとも1文字が一致する複数の文字列に対応する少なくとも1組の複数の素性の重みを統合して、第2重み配列を算出する(S1304)。
【0126】
図14は、自然言語処理システム100における対象単語のタグ判定処理の例を示すフローチャートである。
【0127】
まず、自然言語処理システム100は、ユーザ端末300を通じたユーザの指示に基づいて、タグの判定対象となる対象単語を含む対象文字列情報を取得する(S1401)。次に、自然言語処理システム100は、対象文字列を分割して分割文字列情報を生成する(S1402)。続いて、自然言語処理システム100は、分割文字列ごとに、分割文字列に含まれる対象単語に対応する少なくとも1つの素性を抽出する(S1403)。
【0128】
次に、自然言語処理システム100は、第2重み配列及び抽出された少なくとも1つの素性情報に基づいて、分割文字列ごとに、対象単語のタグを判定する(S1404)。その後、自然言語処理システム100は、判定結果に基づいて、対象単語とタグとを対応付けた判定結果情報を出力する(S1405)。
【0129】
さらに、自然言語処理システム100は、判定済み文字列情報に基づいて、条文の分割及び条文種別の判定を行う(S1406)。そして、自然言語処理システム100は、条文の分割及び条文種別判定の処理結果を、ユーザ端末300に表示する(S1407)。
【0130】
以上、本発明の一実施形態について説明した。自然言語処理システム100は、第1重み配列に含まれる、末尾から少なくとも1文字が一致する複数の文字列に対応する、少なくとも1組の2以上の素性の重みを事前に統合して算出される第2重み配列に基づいて、対象単語のタグを判定することができる。これにより、処理するデータ量を抑制したタグ判定処理を実現することができる。
【0131】
また、自然言語処理システム100は、対象単語に隣接しない素性の重みを含まずに算出される第2重み配列に基づいて、対象単語のタグを判定することができる。これにより、判定の精度を損なわずに、データ量を抑制し、かつ、処理速度を向上させたタグ判定処理を実現することができる。
【0132】
また、自然言語処理システム100は、対象文字列を、2以上の文字を含む2以上の分割文字列に分割し、分割文字列ごとに、分割文字列それぞれに含まれる対象単語それぞれに対応する少なくとも1つの素性と、第2重み配列と、に基づいて、分割文字列それぞれに含まれる対象単語それぞれのタグを判定することができる。これにより、1つの対象文字列について並列してタグ判定処理を行うことができ、対象単語のタグ判定処理をより高い処理速度で行うことができる。
【0133】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更/改良され得るととともに、本発明にはその等価物も含まれる。
【0134】
本開示に係る処理及び手順は、実施形態において明示的に説明された装置によってだけでなく、ソフトウェア、ハードウェア又はこれらの組み合わせにより実現されうる。具体的には、本明細書で説明された処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージなどの媒体に、当該処理に相当するロジックを実装することにより実現されうる。また、本明細書で説明される処理及び手順は、それらの処理及び手順をコンピュータプログラムとして実装されえ、端末装置及びサーバ装置を含む各種のコンピュータにより実行されうる。
【0135】
本明細書中において、単一の装置、ソフトウェア、コンポーネント、及び/又は、モジュールによって実行されると説明された処理及び手順は、複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は、複数のモジュールによって実行されうる。また、本明細書において、単一のメモリ及び記憶装置に格納される旨が説明された各種情報は、単一の装置に含まれる複数のメモリ又は複数の装置に分散して配置された複数のメモリに分散して格納されうる。さらに、本明細書において説明された複数のソフトウェア及びハードウェアは、それらをより少ない構成要素に統合することにより、又は、より多い構成要素に分解することにより実現されうる。
【符号の説明】
【0136】
100 自然言語処理システム、110 記憶部、115 学習用文字列取得部、120 素性抽出部、125 学習部、130 配列算出部、135 対象文字列取得部、140 文字列分割部、145 タグ判定部、150 出力部、155 条文分割部、160 条文種別判定部、165 表示部、200 情報処理システム、300 ユーザ端末
図1
図2
図3
図4
図5
図6A
図6B
図7
図8
図9
図10
図11
図12
図13
図14