JP6972653B2 - 解析プログラム、解析方法および解析装置 - Google Patents

解析プログラム、解析方法および解析装置 Download PDF

Info

Publication number
JP6972653B2
JP6972653B2 JP2017097670A JP2017097670A JP6972653B2 JP 6972653 B2 JP6972653 B2 JP 6972653B2 JP 2017097670 A JP2017097670 A JP 2017097670A JP 2017097670 A JP2017097670 A JP 2017097670A JP 6972653 B2 JP6972653 B2 JP 6972653B2
Authority
JP
Japan
Prior art keywords
bitmap
character
data
index
offset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017097670A
Other languages
English (en)
Other versions
JP2018195030A (ja
Inventor
正弘 片岡
将夫 出内
聡 尾上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017097670A priority Critical patent/JP6972653B2/ja
Priority to CN201880032030.7A priority patent/CN110709830B/zh
Priority to PCT/JP2018/010810 priority patent/WO2018211810A1/ja
Publication of JP2018195030A publication Critical patent/JP2018195030A/ja
Priority to US16/673,991 priority patent/US11386267B2/en
Application granted granted Critical
Publication of JP6972653B2 publication Critical patent/JP6972653B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/268Morphological analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/53Processing of non-Latin text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、解析プログラム等に関する。
従来、スペース等のデリミタで区切られたアルファベット表記の文字と異なり、CJK(中国語、日本語、韓国語)文字については、形態素の区切りを認識してから、種々の処理を行っている。たとえば、対象文字データから形態素の区切りを解析し、分割可能な単語の文字列を出力する従来技術として、Mecab、Chasen等の形態素辞書とTrie木、および、Double Arrayがある。
形態素の区切りの解析結果を利用する技術としては、対象文字データをベクトル化するWord2Vec等の技術がある。
特開2010−146273号公報 特開平10−222511号公報 特開2014−106707号公報 国際公開第2009/063925号公報
しかしながら、上述した従来技術では、高速、かつ、ファイルサイズを抑えて、形態素の区切りの解析を行うことができないという問題がある。
近年、Word2Vec等の解析など、形態素解析の結果を利用する分野では、形態素の区切り位置の精度の重要性が増している。
この要求に応えるべく、従来技術では、形態素辞書の登録語を増やし、複数の分割可能な単語候補を抽出している。しかし、形態素辞書の登録語を増やした場合、Trie木とDouble Arrayのサイズが急激に増大し、検索および判定に要する時間が長くなる。
たとえば、CJK文字列の「アメリカ先住民族」という形態素の区切りを判定する場合には、単に、「アメリカ先住民」が含まれる、という判定だけでなく、「アメリカ先住民」、「族」のような区切られ方をしないことも合わせて判定する。
また、Word2Vecが対象文字データをベクトル化する場合には、対象文字データの形態素解析の結果が、意味ある文字列の最小単位で区切られていることが前提となっている。このため、Word2Vecの前処理として、対象文字列データを区切る場合、従来の形態素解析による区分は、意味ある文字列の最小単位で区切られておらず、Word2Vecの目的にそぐわない場合がある。
たとえば、固有名詞「三菱東京UFJ銀行金沢文庫支店」、新語「妖怪ウォッチ」は、それ自体が、意味ある文字列の対象単位であるが、従来の形態素解析では、かかる点を考慮した処理が行われない。たとえば、Mecabで対象文字データ「・・・三菱東京UFJ銀行金沢文庫支店・・・」を形態素に分割すると、意味あるCJK文字列「三菱東京UFJ銀行金沢文庫支店」が、「三菱」、「東京」、「UFJ」「銀行」、「金沢」、「文庫」、「支店」と分割される。Mecabで対象文字データ「・・・妖怪ウォッチ・・・」を形態素に分割すると、意味あるCJK文字列「妖怪ウォッチ」が、「妖怪」、「ウォッチ」と分割される。
また、形態素解析にて、固有名詞を未知語として出力することも考えられるが、登録単語をもとに分割されたり、有用な情報が除外されることもあるため、Word2Vecが利用するための形態素解析の結果としては不十分なものとなる。
1つの側面では、本発明は、高速、かつ、ファイルサイズを抑えて、形態素の区切りの解析を行うことができる解析プログラム、解析方法および解析装置を提供することを目的とする。
第1の案では、コンピュータに下記の処理を実行させる。コンピュータは、形態素解析に用いられる辞書に基づき、辞書に登録された形態素それぞれに関するインデックスであって、辞書に登録された形態素それぞれに対し先頭と末尾を判別可能なフラグが設定されたインデックスを生成する。コンピュータは、インデックスを用いて、入力された文字データから複数の分割可能な単語を抽出する。
インデックスを用いることにより、高速、かつ、ファイルサイズを抑えて解析を行うことができる。
図1は、本実施例に係る解析装置の処理の一例を説明するための図である。 図2は、本実施例に係る解析装置の構成を示す機能ブロック図である。 図3は、文字列データのデータ構造の一例を示す図である。 図4は、辞書データのデータ構造の一例を示す図である。 図5は、配列データのデータ構造の一例を示す図である。 図6は、インデックスのデータ構造の一例を示す図である。 図7は、インデックスのハッシュ化を説明するための図である。 図8は、インデックスデータのデータ構造の一例を示す図である。 図9は、ハッシュ化したインデックスを復元する処理の一例を説明するための図である。 図10は、CJK単語を抽出する処理の一例を説明するための図(1)である。 図11は、CJK単語を抽出する処理の一例を説明するための図(2)である。 図12は、解析装置の設定部の処理手順を示すフローチャートである。 図13は、解析装置の抽出部の処理手順を示すフローチャートである。 図14は、解析装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
以下に、本願の開示する解析プログラム、解析方法および解析装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例に係る解析装置の処理の一例を説明するための図である。図1に示すように、解析装置は、文字列データ140aから、分割候補となる単語を抽出する場合に、下記の処理を実行する。たとえば、文字列データ140aは、CJK文字で構成された文書のデータであるものとする。CJK文字は中国語、日本語または韓国語の文字に対応する。
解析装置は、文字列データ140aと、辞書データ140bとを比較する。辞書データ140bは、分割候補となる単語(形態素)を定義したデータである。
解析装置は、文字列データ140aを先頭から走査し、辞書データ140bに定義された単語にヒットした文字列を抽出し、配列データ140cに格納する。
配列データ140cは、文字列データ140aに含まれる文字列のうち、辞書データ140bに定義された単語を有する。各単語の区切りには、<US(unit separator)>を登録する。たとえば、解析装置は、文字列データ140aと、辞書データ140bとを比較により、辞書データ140bに登録された「アメリカ」、「アメリカ先住民」、「アメリカ先住民族」が順にヒットした場合には、図1に示す配列データ140cを生成する。
解析装置は、配列データ140cを生成すると、配列データ140cに対応するインデックス140dを生成する。インデックス140dは、文字と、オフセットとを対応づけた情報である。オフセットは、配列データ140c上に存在する該当する文字の位置を示すものである。たとえば、文字「ア」が、配列データ140cの先頭からn文字目に存在する場合には、インデックス140dの文字「ア」に対応する行(ビットマップ)において、オフセットnの位置にフラグ「1」が立つ。
また、本実施例におけるインデックス140dは、単語の「先頭」、「末尾」、<US>の位置も、オフセットと対応づける。たとえば、単語「アメリカ」の先頭は「ア」、末尾は「カ」となる。単語「アメリカ」の先頭「ア」が、配列データ140cの先頭からn文字目に存在する場合には、インデックス140dの先頭に対応する行において、オフセットnの位置にフラグ「1」が立つ。単語「アメリカ」の末尾「カ」が、配列データ140cの先頭からn文字目に存在する場合には、インデックス140dの「末尾」に対応する行において、オフセットnの位置にフラグ「1」が立つ。
また、「<US>」が、配列データ140cの先頭からn文字目に存在する場合には、インデックス140dの「<US>」に対応する行において、オフセットnの位置にフラグ「1」が立つ。
解析装置は、インデックス140dを参照することで、文字列データ140aに含まれる単語を構成する文字の位置、文字の先頭、末尾、区切り(<US>)を把握することができる。また、文字列データ140aのうち、インデックス140dから判断可能な先頭から末尾までに含まれる文字列は、分割可能な単語であると言える。
解析装置は、インデックス140dを基にして、先頭から末尾までの文字列を区切りの単位として、最長一致文字列を判定することで、文字列データ140aから、分割可能な単語を抽出する。図1に示す抽出結果140eには、単語「アメリカ」、「アメリカ先住民」、「アメリカ先住民族」が抽出されている。
上記のように、解析装置は、文字列データ140aおよび辞書データ140bを基にして、辞書データ140bの単語(形態素)に関するインデックス140dを生成し、各単語について、先頭と末尾とを判別可能なフラグを設定する。そして、解析装置は、インデックス140dを利用することで、文字列データ140aから複数の分割可能な単語を抽出する。たとえば、インデックス140dは、辞書データ140bに定義された分割可能な単語のかたまりがそれぞれ、先頭・末尾のフラグにより、識別可能となっており、先頭から末尾までの文字列を区切りの単位として、最長一致文字列を判定することで、分割可能な単語を抽出している。このため、分割可能な単語を認識でき、単語に対する値を利用した解析を行うことができる。
たとえば、単語に対する値を利用した解析の一例としては、解析装置が抽出した単語を処理単位として、文字列データ140aのベクトル演算を行う処理が上げられる。
図2は、本実施例に係る解析装置の構成を示す機能ブロック図である。図2に示すように、解析装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
通信部110は、ネットワークを介して、他の外部装置と通信を行う処理部である。通信部110は、通信装置に対応する。たとえば、解析装置100は、外部装置から、文字列データ140a、辞書データ140b等を受信して、記憶部140に格納しても良い。
入力部120は、各種の情報を解析装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。
表示部130は、制御部150から出力される各種の情報を表示するための表示装置である。たとえば、表示部130は、液晶ディスプレイやタッチパネルに対応する。
記憶部140は、文字列データ140a、辞書データ140b、配列データ140c、インデックスデータ145、抽出結果140eを有する。記憶部140は、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
文字列データ140aは、処理対象となる文書のデータである。図3は、文字列データのデータ構造の一例を示す図である。図3に示すように、文字列データ140aは、たとえば、CJK文字で記載されたものとなる。
辞書データ140bは、分割候補となるCJK単語を定義する情報である。図4は、辞書データのデータ構造の一例を示す図である。図4に示すCJK単語は一例である。ここでは一例として、名詞のCJK単語を示すが、辞書データ140bには、形容詞、動詞、副詞等のCJK単語が含まれているものとする。また、動詞については、動詞の活用形が定義される。
配列データ140cは、文字列データ140aに含まれる文字列のうち、辞書データ140bに定義されたCJK単語を有する。図5は、配列データのデータ構造の一例を示す図である。図5に示す例では、配列データ140cは、各CJK単語が<US>により分けられている。なお、配列データ140cの上側に示す数字は、配列データ140cの先頭「0」からのオフセットを示す。
インデックスデータ145は、図1で説明したインデックス140dに対応するデータである。後述するように、インデックス140dは、ハッシュ化され、インデックスデータ145として、記憶部140に格納される。
抽出結果140eは、後述する制御部150の処理により、文字列データ140aから抽出される、分割候補となる単語の抽出結果を示すものである。
制御部150は、設定部150aおよび抽出部150bを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
設定部150aは、文字列データ140aおよび辞書データ140bを基にして、配列データ140cを生成し、配列データ140cを基にして、インデックスデータ145を生成する処理部である。
設定部150aが、文字列データ140aと辞書データ140bとを基にして、配列データ140cを生成する処理の一例について説明する。設定部150aは、文字列データ140aと、辞書データ140bとを比較する。設定部150aは、文字列データ140aを先頭から走査し、辞書データ140bに登録されたCJK単語にヒットした文字列を抽出し、配列データ140cに格納する。設定部150aは、ヒットした文字列を配列データ140cに格納し、次にヒットした文字列を配列データ140cに格納する場合には、先の文字列の次に<US>を設定し、設定した<US>の次に、次にヒットした文字列を格納する。設定部150aは、上記処理を繰り返し実行することで、配列データ140cを生成する。
設定部150aは、配列データ140cを生成した後に、インデックス140dを生成する。設定部150aは、配列データ140cを先頭から走査し、CJK文字とオフセット、CJK文字列の先頭とオフセット、CJK文字列の末尾とオフセット、<US>とオフセットとを対応づけることで、インデックス140dを生成する。
図6は、インデックスのデータ構造の一例を示す図である。図6に示すように、インデックス140dは、各CJK文字、<US>、先頭、末尾に対応するビットマップ21〜31を有する。たとえば、CJK文字「ア」、「メ」、「リ」、「カ」、「先」、「住」、「民」、「族」に対応するビットマップを、ビットマップ21〜28とする。図6では、他のCJK文字に対応するビットマップの図示は省略する。
<US>に対応するビットマップをビットマップ29とする。文字の「先頭」に対応するビットマップをビットマップ30とする。文字の「末尾」に対応するビットマップをビットマップ31とする。
たとえば、図5に示した配列データ140cにおいて、CJK文字「ア」が、配列データ140cのオフセット「6、11、19」に存在している。このため、設定部150aは、図6に示すインデックス140dのビットマップ21のオフセット「6、11、19」にフラグ「1」を立てる。配列データ140cは、他のCJK文字、<US>についても同様に、フラグを立てる。
図5に示した配列データ140cにおいて、各CJK単語の先頭が、配列データ140cのオフセット「6、11、19」に存在している。このため、設定部150aは、図6に示すインデックス140dのビットマップ30のオフセット「6、11、19」にフラグ「1」を立てる。
図5に示した配列データ140cにおいて、各CJK単語の末尾が、配列データ140cのオフセット「9、17、26」に存在している。このため、設定部150aは、図6に示すインデックス140dのビットマップ31のオフセット「9、17、26」にフラグ「1」を立てる。
設定部150aは、インデックス140dを生成すると、インデックス140dのデータ量を削減するために、インデックス140dをハッシュ化することで、インデックスデータ145を生成する。
図7は、インデックスのハッシュ化を説明するための図である。ここでは一例として、インデックスにビットマップ10が含まれるものとし、かかるビットマップ10をハッシュ化する場合について説明する。
たとえば、設定部150aは、ビットマップ10から、底29のビットマップ10aと、底31のビットマップ10bを生成する。ビットマップ10aは、ビットマップ10に対して、オフセット29毎に区切りを設定し、設定した区切りを先頭とするフラグ「1」のオフセットを、ビットマップ10aのオフセット0〜28のフラグで表現する。
設定部150aは、ビットマップ10のオフセット0〜28までの情報を、ビットマップ10aにコピーする。設定部150aは、ビットマップ10aの29以降のオフセットの情報を下記の様に処理する。
ビットマップ10のオフセット「35」にフラグ「1」が立っている。オフセット「35」は、オフセット「28+7」であるため、設定部150aは、ビットマップ10aのオフセット「6」に「(1)」を立てる。なお、オフセットの1番目を0としている。ビットマップ10のオフセット「42」にフラグ「1」が立っている。オフセット「42」は、オフセット「28+14」であるため、設定部150aは、ビットマップ10aのオフセット「13」にフラグ「(1)」を立てる。
ビットマップ10bは、ビットマップ10に対して、オフセット31毎に区切りを設定し、設定した区切りを先頭とするフラグ「1」のオフセットを、ビットマップ10bのオフセット0〜30のフラグで表現する。
ビットマップ10のオフセット「35」にフラグ「1」が立っている。オフセット「35」は、オフセット「30+5」であるため、設定部150aは、ビットマップ10bのオフセット「4」に「(1)」を立てる。なお、オフセットの1番目を0としている。ビットマップ10のオフセット「42」にフラグ「1」が立っている。オフセット「42」は、オフセット「30+12」であるため、設定部150aは、ビットマップ10bのオフセット「11」にフラグ「(1)」を立てる。
設定部150aは、上記処理を実行することで、ビットマップ10からビットマップ10a、10bを生成する。このビットマップ10a,10bが、ビットマップ10をハッシュ化した結果となる。ここでは、ビットマップ10の長さが0〜43である場合について説明したが、ビットマップ10の長さが43以上になる場合でも、ビットマップ10に設定されたフラグ「1」を、ビットマップ10aおよびビットマップ10bで表現することができる。
設定部150aは、図6に示した各ビットマップ21〜31に対してハッシュ化を行うことで、インデックスデータ145を生成する。図8は、インデックスデータのデータ構造の一例を示す図である。たとえば、図6に示したインデックス140dのビットマップ21に対して、ハッシュ化を行うと、図8に示したビットマップ21aおよびビットマップ21bが生成される。図6に示したインデックス140dのビットマップ22に対して、ハッシュ化を行うと、図8に示したビットマップ22aおよびビットマップ22bが生成される。図6に示したインデックス140dのビットマップ29に対して、ハッシュ化を行うと、図8に示したビットマップ29aおよびビットマップ29bが生成される。図8において、その他のハッシュ化されたビットマップに関する図示を省略する。
図2の説明に戻る。抽出部150bは、インデックスデータ145を基にしてインデックス140dを生成し、インデックス140dを基にして、複数の分割可能なCJK単語を抽出する処理部である。
まず、抽出部150bが、インデックスデータ145を基にして、インデックス140dを生成する処理の一例について説明する。図9は、ハッシュ化したインデックスを復元する処理の一例を説明するための図である。ここでは一例として、ビットマップ10aとビットマップ10bとを基にして、ビットマップ10を復元する処理について説明する。ビットマップ10、10a、10bは、図7で説明したものに対応する。
ステップS10の処理について説明する。抽出部150bは、底29のビットマップ10aを基にして、ビットマップ11aを生成する。ビットマップ11aのオフセット0〜28のフラグの情報は、ビットマップ10aのオフセット0〜28のフラグの情報と同様となる。ビットマップ11aのオフセット29以降のフラグの情報は、ビットマップ10aのオフセット0〜28のフラグの情報の繰り返しとなる。
ステップS11の処理について説明する。抽出部150bは、底31のビットマップ10bを基にして、ビットマップ11bを生成する。ビットマップ11bのオフセット0〜30のフラグの情報は、ビットマップ10bのオフセット0〜30のフラグの情報と同様となる。ビットマップ11bのオフセット31以降のフラグの情報は、ビットマップ10bのオフセット0〜30のフラグの情報の繰り返しとなる。
ステップS12の処理について説明する。抽出部150bは、ビットマップ11aとビットマップ11bとのAND演算を実行することで、ビットマップ10を生成する。図9に示す例では、オフセット「0、5、11、18、25、35、42」において、ビットマップ11aおよびビットマップ11bのフラグが「1」となっている。このため、ビットマップ10のオフセット「0、5、11、18、25、35、42」のフラグが「1」となる。このビットマップ10が、復元されたビットマップとなる。抽出部150bは、他のビットマップについても同様の処理を繰り返し実行することで、各ビットマップを復元し、インデックス140dを生成する。
抽出部150bは、インデックス140dを生成した後に、インデックス140dを基にして、分割可能なCJK単語を抽出する。図10および図11は、CJK単語を抽出する処理の一例を説明するための図である。図10および図11に示す例では、文字列データ140aに「アメリカ先住民の・・・」が含まれており、係る文字列データ140aの1番目の文字から順に、該当する文字のビットマップを、インデックス140dから読み出して、下記の処理を実行する。
ステップS20について説明する。抽出部150bは、インデックス140dから、先頭のビットマップ30、末尾のビットマップ31、文字「ア」のビットマップ21を読み出す。抽出部150bは、先頭のビットマップ30と文字「ア」のビットマップ21とのAND演算を実行することで、文字の先頭位置を特定する。先頭のビットマップ30と文字「ア」のビットマップ21とのAND演算の結果をビットマップ30Aとする。ビットマップ30Aでは、オフセット「6、11、19」にフラグ「1」が立っており、オフセット「6、11、19」が、CJK単語の先頭であることを示す。
抽出部150bは、末尾のビットマップ31と文字「ア」のビットマップ21とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字「ア」のビットマップ21とのAND演算の結果をビットマップ31Aとする。ビットマップ31Aには、フラグ「1」が立っていないため、「ア」に末尾候補が存在しないことを示す。
ステップS21について説明する。抽出部150bは、文字「ア」のビットマップ21を左に1つシフトすることで、ビットマップ21Aを生成する。抽出部150bは、インデックス140dから、文字「メ」のビットマップ22を読み出す。抽出部150bは、ビットマップ21Aとビットマップ22とのAND演算を実行することで、文字列「アメ」に対応するビットマップ50を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメ」のビットマップ50とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメ」のビットマップ50とのAND演算の結果をビットマップ31Bとする。ビットマップ31Bには、フラグ「1」が立っていないため、文字列「アメ」に末尾候補が存在しないことを示す。
ステップS22について説明する。抽出部150bは、文字列「アメ」のビットマップ50を左に一つシフトすることで、ビットマップ50Aを生成する。抽出部150bは、インデックス140dから、文字「り」のビットマップ23を読み出す。抽出部150bは、ビットマップ50Aとビットマップ23とのAND演算を実行することで、文字列「アメリ」に対応するビットマップ51を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリ」のビットマップ51とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリ」のビットマップ51とのAND演算の結果をビットマップ31Cとする。ビットマップ31Cには、フラグ「1」が立っていないため、文字列「アメリ」に末尾候補が存在しないことを示す。
ステップS23について説明する。抽出部150bは、文字列「アメリ」のビットマップ51を左に一つシフトすることで、ビットマップ51Aを生成する。抽出部150bは、インデックス140dから、文字「カ」のビットマップ24を読み出す。抽出部150bは、ビットマップ51Aとビットマップ24とのAND演算を実行することで、文字列「アメリカ」に対応するビットマップ52を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリカ」のビットマップ52とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリカ」のビットマップ52とのAND演算の結果をビットマップ31Dとする。ビットマップ31Dには、フラグ「1」が立っているため、文字列「アメリカ」に末尾候補「カ」が存在することを示す。抽出部150bは、ステップS20で特定した先頭の文字「ア」から、ステップS23で判定した末尾の文字「カ」までの文字列「アメリカ」を分割候補のCJK単語として抽出する。
ステップS24について説明する。抽出部150bは、文字列「アメリカ」のビットマップ52を左に一つシフトすることで、ビットマップ52Aを生成する。抽出部150bは、インデックス140dから、文字「先」のビットマップ25を読み出す。抽出部150bは、ビットマップ52Aとビットマップ25とのAND演算を実行することで、文字列「アメリカ先」に対応するビットマップ53を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリカ先」のビットマップ53とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリカ先」のビットマップ53とのAND演算の結果をビットマップ31Eとする。ビットマップ31Eには、フラグ「1」が立っていないため、文字列「アメリカ先」に末尾候補が存在しないことを示す。
ステップS25について説明する。抽出部150bは、文字列「アメリカ先」のビットマップ53を左に一つシフトすることで、ビットマップ53Aを生成する。抽出部150bは、インデックス140dから、文字「住」のビットマップ26を読み出す。抽出部150bは、ビットマップ53Aとビットマップ26とのAND演算を実行することで、文字列「アメリカ先住」に対応するビットマップ54を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリカ先住」のビットマップ54とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリカ先住」のビットマップ54とのAND演算の結果をビットマップ31Fとする。ビットマップ31Fには、フラグ「1」が立っていないため、文字列「アメリカ先住」に末尾候補が存在しないことを示す。
ステップS26について説明する。抽出部150bは、文字列「アメリカ先住」のビットマップ54を左に一つシフトすることで、ビットマップ54Aを生成する。抽出部150bは、インデックス140dから、文字「民」のビットマップ27を読み出す。抽出部150bは、ビットマップ54Aとビットマップ27とのAND演算を実行することで、文字列「アメリカ先住民」に対応するビットマップ55を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリカ先住民」のビットマップ55とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリカ先住民」のビットマップ55とのAND演算の結果をビットマップ31Gとする。ビットマップ31Gには、フラグ「1」が立っているため、文字列「アメリカ先住民」に末尾候補「民」が存在することを示す。抽出部120bは、ステップS20で特定した先頭の文字「ア」から、ステップS26で判定した末尾の文字「民」までの文字列「アメリカ先住民」を分割候補のCJK単語として抽出する。
ステップS27について説明する。抽出部150bは、文字列「アメリカ先住民」のビットマップ55を左に一つシフトすることで、ビットマップ55Aを生成する。抽出部150bは、インデックス140dから、文字「族」のビットマップ28を読み出す。抽出部150bは、ビットマップ55Aとビットマップ28とのAND演算を実行することで、文字列「アメリカ先住民族」に対応するビットマップ56を生成する。
抽出部150bは、末尾のビットマップ31と文字列「アメリカ先住民族」のビットマップ56とのAND演算を実行することで、文字の末尾位置を特定する。末尾のビットマップ31と文字列「アメリカ先住民族」のビットマップ56とのAND演算の結果をビットマップ31Hとする。ビットマップ31Hには、フラグ「1」が立っているため、文字列「アメリカ先住民族」に末尾候補「族」が存在することを示す。抽出部120bは、ステップS20で特定した先頭の文字「ア」から、ステップS27で判定した末尾の文字「族」までの文字列「アメリカ先住民族」を分割候補のCJK単語として抽出する。
抽出部150bは、文字列「アメリカ先住民族」のビットマップ56を左に一つシフトすることで、ビットマップ56Aを生成する。抽出部150bは、文字列「の」に対応するビットマップは、インデックス140dに存在しないため、フラグが全て「0」のビットマップ29を生成する。この場合には、抽出部150bは、ひとつ前のビットマップ56を「アメリカ先住民族の」のビットマップとする。
抽出部150bは、ステップS20〜ステップS27までの処理を実行することで、文字列データ140aに含まれる分割可能なCJK単語「アメリカ」、「アメリカ先住民」、「アメリカ先住民族」を抽出する。抽出部150bは、抽出した各CJK単語の情報を、抽出結果140eとして記憶部140に格納する。
次に、本実施例に係る解析装置100の処理手順の一例について説明する。図12は、解析装置の設定部の処理手順を示すフローチャートである。図12に示すように、解析装置100の設定部150aは、文字列データ140aと辞書データ140bのCJK単語とを比較する(ステップS101)。
設定部150aは、ヒットした文字列(CJK単語)を配列データ140cに登録する(ステップS102)。設定部150aは、配列データ140cを基にして、各文字(CJK文字)のインデックス140dを生成する(ステップS103)。設定部150aは、インデックス140dをハッシュ化し、インデックスデータ145を生成する(ステップS104)。
図13は、解析装置の抽出部の処理手順を示すフローチャートである。図13に示すように、解析装置100の抽出部150bは、ハッシュ化されたインデックスデータ145からインデックス140dを復元する(ステップS201)。
抽出部150bは、文字列データ140aの先頭から1番目の文字のビットマップを第1ビットマップに設定し、先頭から2番目の文字のビットマップを第2ビットマップに設定する(ステップS202)。
抽出部150bは、第1ビットマップと先頭ビットマップとを「AND演算」し、演算結果に「1」が存在する場合に、第1ビットマップに対応する文字を先頭文字として特定する(ステップS203)。
抽出部150bは、第1ビットマップと末尾ビットマップとを「AND演算」し、演算結果に「1」が存在する場合に、第1ビットマップに対応する文字を、末尾文字として特定し、分割候補を抽出する(ステップS204)。
抽出部150bは、文字列データ140aの終端に到達した場合には(ステップS205,Yes)、抽出結果140eを記憶部140に保存する(ステップS206)。一方、抽出部150bは、文字列データ140aの終端に到達していない場合には(ステップS205,No)、ステップS207に移行する。
抽出部150bは、第1ビットマップを左に一つシフトする(ステップS207)。抽出部150bは、第1ビットマップと第2ビットマップとを「AND演算」したビットマップを新たな第1ビットマップに設定する(ステップS208)。
抽出部150bは、第2ビットマップの文字の次の文字に対応するビットマップを、新たな第2ビットマップに設定し(ステップS209)、ステップS203に移行する。
次に、本実施例に係る解析装置100の効果について説明する。解析装置100は、文字列データ140aおよび辞書データ140bを基にして、辞書データ140bの単語(形態素)に関するインデックス140dを生成し、各単語について、先頭と末尾とを判別可能なフラグを設定する。そして、解析装置100は、インデックス140dを利用することで、文字列データ140aから複数の分割可能な単語を抽出する。たとえば、インデックス140dは、辞書データ140bに定義された分割可能な単語のかたまりがそれぞれ、先頭・末尾のフラグにより、識別可能となっており、先頭から末尾までの文字列を区切りの単位として、最長一致文字列を判定することで、分割可能なCJK単語を抽出している。また、解析装置100は、インデックス140dを用いて、分割可能なCJK単語を認識しており、高速、かつ、ファイルサイズを抑えて解析を行うことができる。
解析装置100は、文字列データ140aに含まれる各文字の組み合わせに対応するビットマップと、先頭ビットマップおよび末尾ビットマップとをAND演算を行うことで、分割可能なCJK単語の先頭位置および末尾位置を判定する。これにより、インデックス140dを用いて、分割可能なCJK単語の先頭と末尾をAND演算により特定でき、計算コストを削減できる。また、解析装置100は、インデックス140dをハッシュ化して、インデックスデータ145を生成し、記憶部140に格納するため、記憶部140が記憶するデータの量をより少なくすることができる。
次に、上記実施例に示した解析装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図14は、解析装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図14に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る読み取り装置204と、有線または無線ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置205とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201〜207は、バス208に接続される。
ハードディスク装置207は、設定プログラム207a、抽出プログラム207bを有する。CPU201は、設定プログラム207a、抽出プログラム207bを読み出してRAM206に展開する。
設定プログラム207aは、設定プロセス206aとして機能する。抽出プログラム207bは、抽出プロセス206bとして機能する。
設定プロセス206aの処理は、設定部150aの処理に対応する。抽出プロセス206bの処理は、抽出部150bの処理に対応する。
なお、各プログラム207a、207bについては、必ずしも最初からハードディスク装置207に記憶させておかなくても良い。たとえば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200が各プログラム206a、206bを読み出して実行するようにしても良い。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
形態素解析に用いられる辞書に基づき、前記辞書に登録された形態素それぞれに関するインデックスであって、前記辞書に登録された形態素それぞれに対し先頭と末尾を判別可能なフラグが設定されたインデックスを生成し、
前記インデックスを用いて、入力された文字データから複数の分割可能な単語を抽出する
処理を実行させる解析プログラム。
(付記2)前記インデックスを生成する処理は、前記文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、前記インデックスを生成することを特徴とする付記1に記載の解析プログラム。
(付記3)前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定する処理を更に実行させることを特徴とする付記2に記載の解析プログラム。
(付記4)前記抽出する処理は、前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出することを特徴とする付記3に記載の解析プログラム。
(付記5)コンピュータが実行する解析方法であって、
形態素解析に用いられる辞書に基づき、前記辞書に登録された形態素それぞれに関するインデックスであって、前記辞書に登録された形態素それぞれに対し先頭と末尾を判別可能なフラグが設定されたインデックスを生成し、
前記インデックスを用いて、入力された文字データから複数の分割可能な単語を抽出する
処理を実行する解析方法。
(付記6)前記インデックスを生成する処理は、前記文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、前記インデックスを生成することを特徴とする付記5に記載の解析方法。
(付記7)前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定する処理を更に実行することを特徴とする付記6に記載の解析方法。
(付記8)前記抽出する処理は、前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出することを特徴とする付記7に記載の解析方法。
(付記9)形態素解析に用いられる辞書に基づき、前記辞書に登録された形態素それぞれに関するインデックスであって、前記辞書に登録された形態素それぞれに対し先頭と末尾を判別可能なフラグが設定されたインデックスを生成する設定部と、
前記インデックスを用いて、入力された文字データから複数の分割可能な単語を抽出する抽出部と
を有する解析装置。
(付記10)前記設定部は、前記文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、前記インデックスを生成することを特徴とする付記9に記載の解析装置。
(付記11)前記設定部は、前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定することを特徴とする付記10に記載の解析装置。
(付記12)前記抽出部は、前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出することを特徴とする付記11に記載の解析装置。
100 解析装置
110 通信部
120 入力部
130 表示部
140 記憶部
140a 文字列データ
140b 辞書データ
140c 配列データ
140d インデックス
140e 抽出結果
145 インデックスデータ
150 制御部
150a 設定部
150b 抽出部

Claims (3)

  1. コンピュータに、
    形態素解析に用いられる辞書に基づき、文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、インデックスを生成し、
    前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定し、
    前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出する
    処理を実行させる解析プログラム。
  2. コンピュータが実行する解析方法であって、
    形態素解析に用いられる辞書に基づき、文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、インデックスを生成し、
    前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定し、
    前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出する
    処理を実行する解析方法。
  3. 形態素解析に用いられる辞書に基づき、文字データと前記辞書に登録された形態素それぞれとを比較して、前記文字データに含まれる形態素を並べた配列データを生成し、前記配列データの文字のオフセットを示すフラグを設置したビットマップを文字毎に生成することで、インデックスを生成し、前記配列データの文字のうち、先頭の文字のオフセットを示すフラグを設置した先頭ビットマップと、末尾の文字のオフセットを示すフラグを設置した末尾ビットマップとを、前記インデックスに設定する設定部と、
    前記文字データに含まれる各文字の組み合わせに対応するビットマップと、前記先頭ビットマップおよび前記末尾ビットマップとをAND演算を行うことで、分割可能な単語の先頭位置および末尾位置を判定し、判定結果を基にして、複数の分割可能な単語を抽出する抽出部と
    を有する解析装置。
JP2017097670A 2017-05-16 2017-05-16 解析プログラム、解析方法および解析装置 Active JP6972653B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017097670A JP6972653B2 (ja) 2017-05-16 2017-05-16 解析プログラム、解析方法および解析装置
CN201880032030.7A CN110709830B (zh) 2017-05-16 2018-03-19 储存有解析程序的记录介质、解析方法以及解析装置
PCT/JP2018/010810 WO2018211810A1 (ja) 2017-05-16 2018-03-19 解析プログラム、解析方法および解析装置
US16/673,991 US11386267B2 (en) 2017-05-16 2019-11-05 Analysis method, analyzer, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017097670A JP6972653B2 (ja) 2017-05-16 2017-05-16 解析プログラム、解析方法および解析装置

Publications (2)

Publication Number Publication Date
JP2018195030A JP2018195030A (ja) 2018-12-06
JP6972653B2 true JP6972653B2 (ja) 2021-11-24

Family

ID=64273822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017097670A Active JP6972653B2 (ja) 2017-05-16 2017-05-16 解析プログラム、解析方法および解析装置

Country Status (4)

Country Link
US (1) US11386267B2 (ja)
JP (1) JP6972653B2 (ja)
CN (1) CN110709830B (ja)
WO (1) WO2018211810A1 (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL107482A (en) * 1992-11-04 1998-10-30 Conquest Software Inc A method for solving questions in natural language from databases of full texts
JPH0877293A (ja) * 1994-09-05 1996-03-22 Toshiba Corp 文字認識装置および文字認識用辞書作成方法
JPH0991386A (ja) * 1995-09-28 1997-04-04 Toshiba Corp 文書解析装置及び形態素解析方法
JP3332142B2 (ja) 1997-02-10 2002-10-07 日本電信電話株式会社 形態素解析装置とその方法
JP2000259629A (ja) * 1999-03-11 2000-09-22 Hitachi Ltd 形態素解析方法およびその装置
KR100757340B1 (ko) * 2006-03-30 2007-09-11 엔에이치엔(주) 자동 추출을 이용한 형태소 분석기 성능 향상 방법 및 상기방법을 수행하는 시스템
JP5239161B2 (ja) * 2007-01-04 2013-07-17 富士ゼロックス株式会社 言語解析システム、および言語解析方法、並びにコンピュータ・プログラム
WO2009063925A1 (ja) 2007-11-15 2009-05-22 Nec Corporation 文書管理・検索システムおよび文書の管理・検索方法
JP4734400B2 (ja) 2008-12-18 2011-07-27 株式会社東芝 文書検索装置およびプログラム
JP2011044031A (ja) * 2009-08-21 2011-03-03 Sharp Corp 電子辞書、辞書検索方法、辞書検索プログラム
JP5513439B2 (ja) * 2011-05-26 2014-06-04 日本電信電話株式会社 単語関連度テーブル作成装置とその方法と音声認識装置とプログラム
JP5697648B2 (ja) 2012-11-27 2015-04-08 ヤフー株式会社 単語分割装置、単語分割用辞書のデータ構造、単語分割方法、およびプログラム
JP6232724B2 (ja) * 2013-03-29 2017-11-22 富士通株式会社 音声合成装置及び言語辞書登録方法
JP6142632B2 (ja) * 2013-04-02 2017-06-07 富士通株式会社 単語辞書登録用コンピュータプログラム、音声合成装置及び単語辞書登録登録方法
JP6291887B2 (ja) * 2014-02-14 2018-03-14 カシオ計算機株式会社 音声合成装置、方法、およびプログラム
JP6300601B2 (ja) * 2014-03-31 2018-03-28 Kddi株式会社 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP6551131B2 (ja) * 2015-10-09 2019-07-31 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法

Also Published As

Publication number Publication date
CN110709830A (zh) 2020-01-17
US20200065367A1 (en) 2020-02-27
US11386267B2 (en) 2022-07-12
CN110709830B (zh) 2022-11-22
JP2018195030A (ja) 2018-12-06
WO2018211810A1 (ja) 2018-11-22

Similar Documents

Publication Publication Date Title
JP6258191B2 (ja) 入力方法及びシステム
JP4570509B2 (ja) 読み生成装置、読み生成方法及びコンピュータプログラム
JP2022121456A (ja) 処理プログラム、処理方法および情報処理装置
JP2019159826A (ja) 表示制御プログラム、表示制御装置及び表示制御方法
JP6705352B2 (ja) 言語処理装置、言語処理方法、及び言語処理プログラム
US20190155902A1 (en) Information generation method, information processing device, and word extraction method
JP6972653B2 (ja) 解析プログラム、解析方法および解析装置
KR102355731B1 (ko) 해석 프로그램, 해석 방법 및 해석 장치
JP6805927B2 (ja) インデックス生成プログラム、データ検索プログラム、インデックス生成装置、データ検索装置、インデックス生成方法、及びデータ検索方法
US11080488B2 (en) Information processing apparatus, output control method, and computer-readable recording medium
KR20180007183A (ko) 대표문자와 공백 입력을 통한 둘 이상의 단어로 구성된 문장입력방법 및 장치
JP5870744B2 (ja) 情報処理装置及びプログラム
JP7095264B2 (ja) 情報生成プログラム、単語抽出プログラム、情報処理装置、情報生成方法及び単語抽出方法
WO2011118428A1 (ja) 要求獲得システム、要求獲得方法、及び要求獲得用プログラム
KR102317910B1 (ko) 중국어 형태소 분석 장치 및 방법
JP7200474B2 (ja) 変換補助装置、変換補助システム、変換補助方法及びコンピュータプログラム
JP6020093B2 (ja) アルファベット読み推定装置
JP5032557B2 (ja) パターン認識装置およびパターン認識方法
JP5363178B2 (ja) 修正候補取得装置、修正候補取得システム、修正候補取得方法、修正候補取得プログラム
JP2020087212A (ja) 未知語抽出方法、未知語抽出プログラムおよび情報処理装置
JP2009003820A (ja) 計算機システム
JPH06266700A (ja) かな漢字変換装置
JP2004258800A (ja) 文字列予測装置及び方法
JP2006202004A (ja) 形態素解析装置及びその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211018

R150 Certificate of patent or registration of utility model

Ref document number: 6972653

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150