JP3923961B2 - Xml異体字検索システムおよびxml異体字検索方法 - Google Patents

Xml異体字検索システムおよびxml異体字検索方法 Download PDF

Info

Publication number
JP3923961B2
JP3923961B2 JP2004166910A JP2004166910A JP3923961B2 JP 3923961 B2 JP3923961 B2 JP 3923961B2 JP 2004166910 A JP2004166910 A JP 2004166910A JP 2004166910 A JP2004166910 A JP 2004166910A JP 3923961 B2 JP3923961 B2 JP 3923961B2
Authority
JP
Japan
Prior art keywords
character
variant
parent
search
characters
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.)
Expired - Fee Related
Application number
JP2004166910A
Other languages
English (en)
Other versions
JP2005346537A (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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2004166910A priority Critical patent/JP3923961B2/ja
Publication of JP2005346537A publication Critical patent/JP2005346537A/ja
Application granted granted Critical
Publication of JP3923961B2 publication Critical patent/JP3923961B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、検索語を用いて検索するときに、検索語の異体字を含めた文書検索を実現するXML異体字検索システム及びXML異体字検索方法に関するものである。
文書中の語句の検索において、検索語に指定した語句に対し、非検索文書中に含まれる異体字語句(同音同義で字形が異なる語句)を区別無く検索したい場合がある。たとえば、データベースの検索において、人名が"高田"を含むレコードを検索する場合、"高"の字には異体字として"「図21のG11の文字」"が存在しており、データ登録時にどちらの"高"が使用されているか通常は不明である。そのため単純な文字列マッチングで検索する場合においては、検索語として"高田"または"「図21のG11の文字」田"を含むレコードを検索しなければならない。1文字に対し複数の異体字を持つ文字も存在することや、検索語中の複数の文字に異体字が存在する可能性もあるので、単純な文字列マッチングによる異体字検索は非効率である。もちろん、文書をデータベースに登録する前に、"「図21のG11の文字」田"を"高田"に正規化してしまえば、検索語"高田"に対し、"「図21のG11の文字」田"も "高田"も抽出することができるが、この方法では"「図21のG11の文字」田"に正しくマッチする文書を抽出することができない。
このため、これまでも種々の方法で異体字を含む文書検索を行う方法が提案されている。たとえば、特許文献1には、正規表現処理をすることで文字検索の能率を高める方法を提供する技術が開示されている。正規表現処理装置が組み込まれたデータベースを用いて、検索語を正規表現に変換した上で文書を検索する。異体字やOCR読み取り時の類似表記などを検索することができるが、データベース中の文書に適用する場合は、データベース本体に正規表現を検索できる装置が必要になるため、データベース製品によっては利用できない。なお、正規表現は文字列の指定をするための記述文法である。正規表現の記述は決定性有限オートマトンという単純な情報検索アルゴリズムで変換できる。(従来技術1)
特開平07−121547号公報(2頁〜3頁、図1−図5)特許文献2には、「データまたはインデックスの2重登録による方法」を提供する技術が開示されている。データの2重登録は、被検索文書の内容のうち、異体字辞書によって異体字部分を親字(正字とも呼ばれる)に変換した正規化文書を、オリジナル文書とともに登録する。検索時は異体字検索を行わない通常検索の場合はオリジナル文書を、異体字検索を行う場合は正規化文書を検索する。インデックスの2重化は同じ考え方で、検索用のインデックスのみをオリジナル文書と正規化文書の2種類用意し、検索の形態にあわせて両者を使い分ける。いずれの方法もデータ管理が複雑化する欠点がある。(従来技術2) 特開平10―301940号公報特許文献3には、日本語処理を提供する技術が開示されている。 被検索文書を、形態素解析やシソーラス辞書を用いて分析した上で類似度演算を行ってあらかじめ同義の文字列を抽出しておき、検索語も同様の処理を行って、最も似ていると思われる文書を抽出する 。この場合、日本語処理装置や辞書が必要になり、また異体字検索のように類似度が100%でない検索の場合、選択する類似度の設定値によっては異体字関係に無い文字列も抽出される欠点がある。(従来技術3) 特開平05−158995号公報
しかし、正規表現処理による方法(従来技術1)は、オリジナル文書と正規化文書の2種類を用意する必要がない点や、日本語処理装置や同義の文字列辞書を用意する必要がない点から、上記従来技術2や従来技術3より優れた方法であるが、従来技術1の方法では、正規表現検索処理のための特別なデータベース登録処理が必要であったり、検索語の正規表現処理の構築や正規表現のクエリ展開が必要であり、システム構築に多大な手間を要した。
本発明はこのような従来技術を考慮してなされたものであって、本発明の課題は、データベースに登録された電子文書を検索語により検索するシステムにおいて、検索語が存在する文書を検索すると同時に、検索語中の異体字を含めた検索語が存在する文書が検索できる検索システムを提供することにより、異体字の検索のデータ構築を容易にすると同時に、異体字入力装置を持たない検索端末からでも制限を受けることなく異体字検索作業ができるXML異体字検索システムを提供することである。
本発明は、以下のような解決手段により、前記課題を解決する。すなわち、請求項1の発明は、たとえば、XMLパーサーと呼ばれるXML文書解析プログラム、あるいは、文字列処理プログラムを用いて、入力したXML文書から、要素(タグ)と要素の文字列(タグ内容)とを分離するタグ解析部と、分離した要素の中から、文字に親字情報を付加する異体字処理が必要な要素を限定する制御部と、処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析部と、判別した文字の親字情報を、異体字辞書から取得する親字取得部と、親字が存在した文字に、親字情報として、親字タグとその文字コード(たとえば、ユニコード)を追加する親字タグ発生部と、使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書と、異体字処理をしたXML文書をデータベースに登録するデータベース登録部と、検索語の異体字グループを取得して、その情報を保持する異体字グループ取得部と、保持する異体字グループを用いて検索語の全ての異体字を検索すると同時に、データベースの検索範囲を選択限定するクエリを生成するクエリ構成部と、クエリ構成部から生成したクエリにて、データベースに問い合わせて、結果を取得するクエリ発行部と、を備えるXML異体字検索システムである。ここで、異体字処理とは、異体字が存在する文字に親字情報を追加する処理である。
請求項2の発明は、たとえば、XMLパーサーと呼ばれるXML文書解析プログラム、あるいは、文字列処理プログラムを用いて、入力したXML文書から、要素(タグ)と要素の文字列(タグ内容)とを分離するタグ解析部と、分離した要素の中から、文字に親字情報を付加する異体字処理が必要な要素を限定する制御部と、処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析部と、判別した文字の親字情報を、異体字辞書から取得する親字取得部と、親字が存在した文字に、親字情報として、親字タグとその文字コード(たとえば、ユニコード)を追加する親字タグ発生部と、使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書と、異体字処理をしたXML文書を、リポジトリに文書保管したり、リポジトリから読出す文書保管・読出部と、検索語の異体字グループを取得して、その情報を保持する異体字グループ取得部と、XML文書中の親字タグに相当するノードの上位ノードである親ノードの文字列を被検索文字列として取得する処理ノード取得部と、検索文字列中の異体字を全て親字に変換する異体字変換部と、親字変換済み検索語で検索する文字列検索部と、を備えるXML異体字検索システムである。
請求項3の発明は、使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書を使用して異体字検索を行う方法であって、たとえば、XMLパーサーと呼ばれるXML文書解析プログラム、あるいは、文字列処理プログラムを用いて、入力したXML文書から、要素(タグ)と要素の文字列(タグ内容)とを分離するタグ解析ステップと、分離した要素の中から、文字に親字情報を付加する異体字処理が必要な要素を限定する制御ステップと、処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析ステップと、判別した文字の親字情報を、異体字辞書から取得する親字取得ステップと、親字が存在した文字に、親字情報として、親字タグとその文字コード(たとえば、ユニコード)を追加する親字タグ発生ステップと、異体字処理をしたXML文書を、データベースに登録するデータベース登録ステップと、検索語の異体字グループを取得して、その情報を保持する異体字グループ取得ステップと、保持する異体字グループを用いて検索語の全ての異体字を検索すると同時に、データベースの検索範囲を選択限定するクエリを生成するクエリ構成ステップと、クエリ構成部から生成したクエリにて、データベースに問い合わせて、結果を取得するクエリ発行ステップと、を含んだ手順でなされるXML異体字検索方法である。
請求項4の発明は、使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書を使用して異体字検索を行う方法であって、たとえば、XMLパーサーと呼ばれるXML文書解析プログラム、あるいは、文字列処理プログラムを用いて、入力したXML文書から、要素(タグ)と要素の文字列(タグ内容)とを分離するタグ解析ステップと、分離した要素の中から、文字に親字情報を付加する異体字処理が必要な要素を限定する制御ステップと、処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析ステップと、判別した文字の親字情報を異体字辞書から取得する親字取得ステップと、親字が存在した文字に、親字情報として、親字タグとその文字コード(たとえば、ユニコード)を追加する親字タグ発生ステップと、異体字処理をしたXML文書を、リポジトリに文書保管したり、リポジトリから読出す文書保管・読出ステップと、検索語の異体字グループを取得して、その情報を保持する異体字グループ取得ステップと、XML文書中の親字タグに相当するノードの上位ノードである親ノードの文字列を被検索文字列として取得する処理ノード取得ステップと、検索文字列中の異体字を全て親字に変換する異体字変換ステップと、親字変換済み検索語で検索する文字列検索ステップと、を含んだ手順でなされるXML異体字検索方法である。
本願発明によれば、
検索語中の異体字を含めた検索語が存在する文書が検索できる検索システムにおいて、XMLデータベースに登録されたXML文書、あるいは、リポジトリに登録されたXML文書による検索システムを提供することにより、異体字検索の用途に登録するXML文書データの構築が容易になると同時に、検索者が、検索語に特別な異体字処理を施さなくても、異体字検索が簡便かつ効率的に行えて、更に、異体字入力装置を持たない検索端末からでも制限を受けることなく異体字検索作業が可能となる。
以下、図面等を参照しながら、本発明の実施の形態について、更に詳しく説明する。まず、はじめに、本発明のXML異体字検索システムの基本構成を説明する。
(第1実施形態)
図1は、本発明によるXML異体字検索システムの全体図である。本発明では、文書の論理形式としてXML形式を採用し、XMLデータベースに文書を登録することによって、異体字を含む文書検索を可能にするシステムを提供する。ここで、文書入力部11は、登録するXML文書11aの入力部である。入力したXML文書11aは、XMLデータベースに登録する前に、XML文書の異体字処理を行う。まず、XMLタグ解析部12にあるXMLパーサーと呼ばれるXML文書解析プログラムを用いて、入力したXML文書11aから、要素(タグ)と要素の文字列(タグ内容)とを分離する。次に、分離した要素の中から異体字処理が必要な要素を限定して、制御部17は、その要素に含まれる限定した文字列への異体字処理を文字列解析部13に指示する。そこで、文字列解析部13は、処理する文字列を、文字に分解して、文字が異体字処理を必要とする文字種であるか判別する。異体字処理が必要な文字種であるかどうかは、たとえば文字コードがS−JISならばS−JISの漢字領域、ユニコードであればCJK統合漢字領域に存在するかどうかで判定する。また漢字以外でも、囲み英数字の領域や、一般に外字とよばれる私用領域に対し、異体字処理対象を拡張してもよい。そして、分解した文字が異体字処理を必要とする文字種の場合には、親字取得部19が、この文字に親字が存在するかの有無を、異体字辞書16bに問い合わせる。その結果、親字が存在すれば、異体字辞書16bから親字情報を取得する。ここで、親字タグ発生部14は、親字が存在した文字(=異体字)に、その異体字の親字情報として、親字タグとその属性値として、文字コード(たとえば、ユニコード)を追加する。たとえば、姓名が「図21のG11の文字」田の場合には、"「図21のG11の文字」"の親字は、"高"であるので、姓名のXMLタグ"<name>「図21のG11の文字」田</name>"の要素内容に対して、親字タグ"<OYA p="高"/>"を追加すると、"<name>「図21のG11の文字」<OYA p="高"/>田</name>"となる。ところで、親字タグの追加に当たって、親字を検索・選択する場合には、使用可能なすべての異体字に対し親字になる文字を記述・定義している、異体字辞書を用いる。ここで、すべての文字に親字が存在するとは限らない。また、複数の異体字が同一の親字を持つ場合もある。最後に、処理すべき全ての文字列の異体字処理を終了したら、データベース登録部15は、異体字処理をしたXML文書を、XMLデータベース16aに登録する。
次に、異体字検索について、説明する。XMLデータベースの異体字検索には、XQuery(エックスクエリ)と呼ばれるXMLデータベース用の問い合わせ言語(クエリ)を用いる。ここで、クエリの働きは、XMLデータベースを構成する要素の中から、検索対象の要素を絞込み、検索条件に合う要素をクエリで指定した形式で出力することで、XMLデータの抽出作業を行うものである。検索条件の指定の中には、要素中の文字列の照合マッチングも含まれる。異体字検索は、まず、検索語の異体字処理から始める。検索語入力部18から入力した検索語18aは、XML文書登録処理と同様に、XMLタグ解析部12と文字列解析部13とを用いて、異体字処理が必要な文字種部分を判定する。次に、異体字グループ取得部20は、この文字の親字と、その親字に属するほかの異体字を、異体字辞書16bから取得して、異体字グループとして保持する。たとえば、検索語の"「図21のG11の文字」田"を異体字処理するときには、検索語中の"「図21のG11の文字」"の異体字グループ("「図21のG11の文字」"の親字"高"と、"「図21のG11の文字」"を含む"高"の異体字全て)を異体字辞書から取得して、保持する。"田"については、異体字辞書に登録されていないので、異体字グループの保持はなされない。次に、クエリ処理を行う。クエリ構成部21は、XMLデータベースから検索対象の要素を選択する機能と、検索語中の異体字グループの文字を全て検索する機能の2点から構成されているクエリを生成する。クエリ構成部21から生成したクエリは、クエリ発行部22にて、XMLデータベース16aに、問い合わせて、結果を取得する。たとえば、XQueryを使って、先の例の"「図21のG11の文字」田"を異体字検索するときには、まず、親字タグ<OYA p=" 高"/>を含む要素<name>を選択して、次に、保持してある"「図21のG11の文字」"の異体字グループの文字("高"、"「図21のG11の文字」")を含む文書を検索抽出して、最後に、異体字を親字に置換した後に、"高田"で照合して一致したものを抽出する。このようにクエリで指示することで、全ての"高"の異体字を含むXML文書データの抽出をすることが可能となる。
なお、XQueryは、XMLデータベースの問い合わせ言語で、現在はバージョン1.0のワーキングドラフトが公開されており、W3Cで標準化の作業が進んでいる。なお、W3Cとは、World Wide Web Consortiumで、WWW(World Wide Web)で使用される、さまざまな技術標準を定める組織である。
図2は、異体字辞書の説明図である。異体字辞書は、親字32と異体字31のペアの組合わせである。たとえば、一行目の表記は、異体字"「図21のG11の文字」"と親字"高"のペアを表している。曽の異体字グループ33は、親字"曽"と1つの異体字"曾"から構成されることが分かる。異体字辞書に登録されていない文字については、親字が存在しない。
図3は、本発明による文書登録のフローチャートであり、図4は、本発明による登録するXML文書の例である。図4のXML文書の登録および検索では、meibo/memberの下の要素nameと要素addressを異体字処理対象としており、要素idは処理対象としない。この理由は、異体字が入力される可能性のあるタグのみに異体字処理を限定し、処理の負荷を軽減するためである。たとえば、図4のXML文書の要素nameを例に、文書登録時の異体字処理手順を説明する。
(1)<name>「図21のG11の文字」橋 一郎</name>の文字列について、要素の文字 列を文字に分解する。(ステップS32)"「図21のG11の文字」","橋"," " (空白),"一","郎"の5つの文字それぞれについて、以下の処理を行う。
(2)処理する文字"「図21のG11の文字」"を結果文字列に格納する。(ステップS34)
(3)処理する文字"「図21のG11の文字」"が異体字処理を必要とする文字種であ るか判別する。(ステップS35)
ここでは"「図21のG11の文字」"が漢字領域にある文字のため、処理を継続す る。異体字処理対象外の文字の場合(たとえば、空白、"1-1-1","イ","238"など) は、(2)に戻り、次の文字を処理する。
(4)処理する文字"「図21のG11の文字」"を異体字辞書から検索し、親字を取得 する。(ステップS36)
ここでは"「図21のG11の文字」"の親字として"高"が返される。処理する文 字自体が親字であった場合(たとえば、高橋の"高"、一郎の"郎"など)は、その 文字が返される。また、親字のない文字では、ヌルが返される。
(5)親字がない場合は、(2)に戻り、次の文字を処理する。(ステップS37)
(6)返された親字"高"をタグとして整形し、結果文字列に追加する。(ステップS3 8)
ここでは、<OYA p="高"/>が"「図21のG11の文字」"の直後に追加される。
(7)(2)に戻り、次の文字を処理する。
(8)すべての文字が処理されたら、<name>要素の内容を、結果文字列に置き換える。( ステップS39)
(9)すべての処理対象の要素の処理が終了したら、XML文書をXMLデータベースに 登録する。(ステップS40)
図4の例では、上記の"「図21のG11の文字」"のほかに、"高","橋","「図21のG12の文字」","「図21のG13の文字」","郎","「図21のG14の文字」","曾","福","会","檜","原"が、親字の存在する文字か、もしくは、それ自身を親字とする文字である。それ以外は、親字−異体字関係のない文字である。
図5は、本発明による親字タグを付加したXMLデータベース登録文書の例であり、図4のXML文書の処理結果である。親字のある文字は、直後に親字タグが追加されている。たとえば、"「図21のG11の文字」"の親字タグ<OYA p="高"/>51、"橋"の親字タグ<OYA p="橋"/>52、"郎"の親字タグ<OYA p="郎"/>53である。
図6は、本発明による異体字検索を説明するフローチャートである。XML文書の異体字検索では、入力された検索語から、異体字検索を行うクエリを形成する。ここでは例として、登録名簿の氏名に"一郎"を含むものを検索することを想定し、<name>に"一郎"や"一「図21のG14の文字」"を含む<member>を検索する。
(1)検索語文字列"一郎"を、文字単位"一","郎"に分解する。(ステップS61)
(2)処理する文字"一"が異体字処理を必要とする文字種であるか判別する。(ステッ プS63)
異体字処理対象外の文字の場合は文字を結果文字列に追加し、次の文字を処理する。
(3)処理する文字"一"の親字を異体字辞書から検索し、親字があれば異体字グループ を取得する。(ステップS64)ここではまず、"一"の親字が検索されるが、"一 "には親字−異体字関係が存在しないため、辞書からはヌルが返される。
(4)親字がない場合は、文字を結果文字列に追加(ステップS68)し、(2)に戻っ て次の文字を処理する。
(5)次の文字"郎"の親字を異体字辞書から取得する。(ステップS64)
異体字辞書からは、"郎"が返され、次に"郎"が親字であるすべての異体字"「図 21のG14の文字」"が取得される("郎"の異体字は"「図21のG14の文字 」"のみ)。
(6)異体字が存在する文字なので、結果文字列に親字を追加する(ステップS67)と ともに、異体字グループの内容を保持(ステップS66)した後に、(2)に戻って 次の文字を処理する。(ステップS63)
(7)検索語中のすべての異体字処理が終了(ステップS62)したら、処理すべき異体 字グループがあったかどうか確認する。(ステップS69)
異体字グループがなかった場合は、通常検索のクエリ(図14参照)を発生する。( ステップS71)
(8)結果文字列(検索語であって、異体字を親字に変換したもの)と一時的に保持した 異体字グループの内容から、異体字検索用クエリの内容を構成する。(ステップS7 0)
クエリの内容は、親字タグを含む要素に検索対象を限定する機能と、検索対象文字列 中の異体字を親字に置換する機能と、親字に置換した検索語を含む文書を抽出する機 能と、検索結果を整形出力する機能である。
(9)作成したクエリをXMLデータベースに問い合わせ、結果を取得する。(ステップ S72)(ステップS73)
次に、図6の異体字検索用クエリを構成するステップS70と作成したクエリでXMLデータベースに問い合わせて結果を取得するステップS72との内容を詳細に説明する。図7は、本発明による異体字検索クエリの構成と動作を説明するフローチャートであり、図8は、本発明による異体字検索クエリの実施例である。図6の例示に従って、図7の動作と図8の異体字検索クエリのXQuery記述例80とを対応させて説明する。
(1)文字が"郎"である親字タグを含むname要素に、検索対象$iを限定する。(ステッ プS100)
for $i in /meibo/member[./name/OYA[@p="郎"]]
(2)親字に置換する文字列として、name要素の文字列を指定して、文字置換用変数$jに 設定する。(ステップS101)
let $j:=$i/name
(3)保持した異体字グループから、親字と異体字を取得して(ステップS102)(ス テップS103)、置換用変数$j中の異体字("「図21のG14の文字」")を、 親字("郎")に置換する。(ステップS104)すべての異体字グループ中に存在 する異体字の数だけ繰り返す。(ステップS105)(ステップS106)
let $j:=replace($j,"「図21のG14の文字」", "郎")
(4)親字に変換された検索語("一郎")を含む変数に、検索対象を限定する。(ステ ップS107)
where $j[contains(.,"一郎")]
(5)検索結果から、ヒットした結果文書群を整形出力する。(ステップS108)
return(
<member>
<id>[$i/id/text()]</id>
<name>[$i/name/text()]</name>
<address>[$i/address/text()]</address>
</member>
上記のクエリ80で、たとえば、図5に例示のXMLデータベースを検索すると、整形出力した結果81が返る。図9〜図13は、本発明による検索クエリ80で、図5に例示のXMLデータベースを検索したときの処理イメージであり、検索クエリ80の各処理ステップに応じた、$i と$jとの内容の変化を示している。図9は、検索対象を親字タグを含むname要素に限定するステップS100での$i91と$j92との内容を、図10は、name要素の文字列を文字置換用変数に設定するステップS101での$i100 と$j101との内容を、図11は、置換用変数中の異体字を親字に置換するステップS104での$i110と$j111との内容を、図12は、親字に変換された検索語を含む変数に検索対象を限定するステップS107での$i120と$j121との内容を、図13は、ヒットした結果文書群を整形出力するステップS108での$i130と$j131との内容を、それぞれ示している。XQueryの特性として、対象を絞り込みながら検索を行うことができ、さらに絞り込んだ検索対象のそれぞれについて、新たな変数を追加したり、変数の値で条件にマッチするもののみを抽出する処理ができる。したがって、上記のように検索条件を複雑にすることができる。ヒットした結果文書群を整形出力するステップS108の内容出力は、親字に変換された検索語を含む変数に検索対象を限定するステップS107で指定された式が成立する結果の組のみに適用されるため、例示では、異体字をすべて親字に置換した$j111の中で、検索語 "一郎" にマッチしたものに相当する、$i120のノード(要素に含まれるデータ)が指定されることになる。
図14は、通常検索クエリの説明図である。XML文書の通常検索では、特に親字タグを意識することなく、検索クエリ140を設定する。つまり、"「図21のG11の文字」田"を検索するときに、異体字検索を行わない通常検索では、<name>要素に"「図21のG11の文字」田"を含むものを容易に検索できる。図8の検索結果と比較したら分かるように、通常検索では、検索語に完全に一致した検索結果141だけが返される。
さて、1つの検索語に複数の異体字が入っていた場合は、後述するAND検索を行う。図16は、本発明による1つの検索語に複数の異体字が入ったクエリ160の説明図である。たとえば、検索語"高橋"での検索は、"高" "橋"共に異体字を持つために、親字タグで要素限定をするときに、複数の親字タグを記述し、ANDで接続する。
以上、検索語が一つの場合について説明したが、次に、複数の検索語を使用した異体字検索の場合を説明する。このとき、異体字処理の手順は、検索語が一つの場合と同等である。図15は、本発明による複数の検索語をANDで結んだ場合のクエリ形成150の説明図である。たとえば、検索語が"高橋" AND "一郎"とし、<name>に"高橋"と"一郎"を共に含む要素の異体字検索は、次のような手順で処理を行う。検索語を異体字処理して、「高」と「橋」と「郎」が、異体字処理対象であることを確定した後に、以下の複数検索語異体字AND検索クエリ構成発行処理を行う。
(1)親字タグを含む要素に、検索対象を限定する。(ステップS100)
for $i in /meibo/member[./name/OYA[@p="高"] and ./name/OYA[@p="橋"] a nd ./name/OYA[@p="郎"]]
(2)文字置換用の変数を設定し、内容をname要素の文字列とする。(ステップS101 )
let $j := $i/name
(3)上記の検索対象文字列の異体字を親字に置換する。(ステップS104)すべての 異体字グループ中に存在する異体字の数だけ繰り返す。(ステップS105)(ステ ップS106)
let $j := replace($j,"「図21のG11の文字」","高")
let $j := replace($j,"「図21のG12の文字」","橋")
let $j := replace($j,"「図21のG14の文字」","郎")
(4)親字に変換された検索語を含む要素に、検索対象を限定する。ここでは2つの検索 語("高橋""一郎")をandでかける。(ステップS107)
where $j[contains(.,"高橋")][contains(.,"一郎")]
(5)検索結果から、ヒットした結果文書群を整形出力する。(ステップS108)
return(
<member>
<id>[$i/id/text()]</id>
<name>[$i/name/text()]</name>
<address>[$i/address/text()]</address>
</member>

この複数検索語異体字AND検索クエリ150で、図5のXMLデータベースを検索すると整形した結果151が返る。
図17は、本発明による複数の検索語をORで結んだ場合のクエリの説明図である。たとえば、<name>に"鴎外"または"曽根"を含むデータの異体字検索は、次のような手順で処理を行う。検索語を異体字処理して、"鴎"と"曽"が、異体字処理対象であることを確定した後に、以下の複数検索語異体字OR検索クエリ構成発行処理を行う。
(1)親字タグを含む要素に、検索対象を限定する。(ステップS100)
for $i in /meibo/member[./name/OYA[@p="鴎"] or ./name/OYA[@p="曽"]]
(2)文字置換用の変数を設定し、内容をname要素の文字列とする。(ステップS101)
let $j := $i/name
(3)検索対象の文字列の異体字を親字に置換する。(ステップS104)すべての異体 字グループ中に存在する異体字の数だけ繰り返す。(ステップS105)(ステップ S106)
let $j := replace($j,"「図21のG13の文字」","鴎")
let $j := replace($j,"曾","曽")
(4)親字に変換された検索語を含む要素に、検索対象を限定する。ここでは2つの検索 語をorでかける。(ステップS107)
where $j[contains(.,"鴎外") or contains(.,"曽根")]
(5)検索結果から、ヒットした結果文書群を整形出力する。(ステップS108)
return(
<member>
<id>[$i/id/text()]</id>
<name>[$i/name/text()]</name>
<address>[$i/address/text()]</address>
</member>

この複数検索語異体字OR検索クエリ170で、図5のXMLデータベースを検索すると整形した結果171が返る。
このように、XMLデータベースは、XML文書のタグ構造を保持して文書を格納して、タグの親子関係やタグ中の属性を指定した検索を高速に行うことができる。
以上説明した実施例の中で、登録処理でのXMLの解析はパーサーの代わりに、同様の結果が得られる文字列処理を実施しても良い。また、親字タグは、異体字の直後でなく、文字列の末尾等のように、文字列と同階層にあればよい。更に、異体字に親字タグを付加するという方法を説明したが、その代わりに、異体字を親字と置き換えて、置き換えた親字に異体字タグを付加する方法でも、同様の効果が得られるので、どちらの方法を採ってもよい。また親字タグの属性として記述する親字の文字コードは、属性値ではなく親字タグの内容文字列として記述してもよい。
(第二実施形態)
本発明の第二実施形態として、XMLデータベースを使わずに、単純なリポジトリに登録したXML文書から、XML文書解析のためのパーサーを利用して、指定の文書の異体字検索を行うしくみを説明する。図18は、本発明によるXML文書をリポジトリに登録するXML異体字検索システムの全体図である。データベース登録部の代わりに、文書保管・読出部185であり、記憶部のXMLデータベースの代わりに、リポジトリ186aであり、クエリ構成部とクエリ発行部の代わりに、処理ノード取得部191と異体字変換部192と文字列検索部193であることを除いて、XMLデータベース・システムと同じ構成である。文書保管・読出部181は、パーサーを用いて、XML文書をリポジトリ186aに登録保管したり、リポジトリ186aからXML文書を検索して読出す。処理ノード取得部191は、親字タグに相当するノードの上位ノードである親ノードの文字列を被検索文字列として取得する。異体字変換部192は、検索文字列中の異体字を全て親字に変換する。文字列検索部193は、親字変換済み検索語を検索する。ここで、ノードとは、XMLのツリー構造の1つの分岐点をいう。たとえば、図5を例にすれば、name要素のノードは文字列および親字タグ<OYA/>で構成される。また、親ノードとは、注目しているノードの1つ上の階層のノードを指し、図5の例ではOYA要素の親ノードはnameノードになる。
図19は、本発明によるXML文書をリポジトリに登録するときのフローチャートである。異体字処理の手順は、XMLデータベース利用のときと、全く同様である。ただし、全ての異体字処理が終了したら、ステップS199では、パーサーを用いて、異体字処理結果のXML文書をファイルに書き出し、これをリポジトリに登録する。
図20は、本発明によるリポジトリに登録されたXML文書の異体字検索のフローチャートである。処理手順のうち、検索語の異体字処理に関しては、XMLデータベース利用のときと同様であるので、リポジトリから文書を取得するところから説明する。
(1)検索語の異体字処理は、図6のステップS60〜ステップS68に同じ。
(2)被検索文書をリポジトリから取得し、パーサーで解析する。(ステップS200)
(3)処理すべき異体字グループがあったかどうか確認する。(ステップS201)異体 字グループがなかった場合は、通常検索と同じ処理、つまり、処理するノードを選択 し、文字列のマッチングを実施する。
(4)1つの異体字グループの親字を取得する。(ステップS202)
(5)処理すべきノード以下で、取得した親字を属性に持つタグ<OYA/>を選択する。(ス テップS203)
(6)タグ<OYA/>があれば、その親ノードの文字列を被検索文字列として取得する。(ス テップS204)
(7)処理する異体字グループの異体字を1つ選択し(ステップS205)、被検索文字 列中の異体字を全て親字に変換する。(ステップS206)
(8)他に異体字があれば、(7)に戻り処理を続ける。(ステップS207)
(9)他に処理すべき異体字グループがあれば、(4)に戻り処理を続ける。(ステップ S208)
(10)全ての異体字の処理が終了したので、被検索文字列中で、親字変換済み検索語を 検索する。(ステップS210)マッチした場合はそのノードを検索ヒットとして出 力する。(ステップS211)
以上詳しく説明したように、第一実施形態によれば、XML文書をXMLデータベースに登録した異体字検索システムは、異体字検索の用途に登録するXML文書データの構築が容易になると同時に、検索が高速なために異体字検索が効率的に行えて、更に、異体字入力装置を持たない検索端末からでも制限を受けることなく異体字検索作業が可能となる。
また、第二実施形態によれば、XML文書をリポジトリに登録した異体字検索システムは、第一実施形態に比べて、より簡便な異体字検索システムを提供して、異体字検索の用途に登録するXML文書データの構築を容易にすると同時に、検索者が、検索語に特別な異体字処理を施さなくても、異体字検索が簡便に行えて、更に、異体字入力装置を持たない検索端末からでも制限を受けることなく異体字検索作業が可能となる。
本発明によるXML異体字検索システムの全体図 異体字辞書の説明図 本発明による文書登録のフローチャート 本発明による登録するXML文書の例 本発明による親字タグを付加したXMLデータベース登録文書の例 本発明による異体字検索を説明するフローチャート 本発明による異体字検索クエリの動作を説明するフローチャート 本発明による異体字検索クエリの実施例 本発明による検索クエリの処理イメージ(1) 本発明による検索クエリの処理イメージ(2) 本発明による検索クエリの処理イメージ(3) 本発明による検索クエリの処理イメージ(4) 本発明による検索クエリの処理イメージ(5) 通常検索クエリの説明図 本発明による複数の検索語をANDで結んだ場合のクエリ形成の説明図 本発明による1つの検索語に複数の異体字が入ったクエリ形成の説明図 本発明による複数の検索語をORで結んだ場合のクエリ形成の説明図 本発明によるXML文書をリポジトリに登録するXML異体字検索システムの全体図 本発明によるXML文書をリポジトリに登録するときのフローチャート 本発明によるリポジトリに登録されたXML文書の異体字検索のフローチャート 異体字のフォントパターン対応
符号の説明
10 XML異体字検索システム
180 XML異体字検索システム
11 文書入力部
181 文書入力部
11a 登録文書
181a 登録文書
12 タグ解析部
182 タグ解析部
13 文字列解析部
183 文字列解析部
14 親字タグ発生部
184 親字タグ発生部
15 データベース登録部
16a XMLデータベース
16b 異体字辞書
186b 異体字辞書
17 制御部
187 制御部
18 検索語入力部
188 検索語入力部
18a 検索語
188a 検索語
19 親字取得部
189 親字取得部
20 異体字グループ取得部
190 異体字グループ取得部
21 クエリ構成部
22 クエリ発行部
31 異体字
32 親字
33 異体字グループ
51 親字タグ
52 親字タグ
53 親字タグ
185 文書保管・読出部
191 処理ノード取得部
192 異体字変換部
193 文字列検索部

Claims (4)

  1. 入力したXML文書から、要素と要素の文字列とを分離するタグ解析部と、
    分離した要素の中から、異体字に親字情報を付加する異体字処理が必要な要素を限定する制御部と、
    処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析部と、
    判別した文字の親字情報を、異体字辞書から取得する親字取得部と、
    親字が存在した文字に、親字情報として、親字タグとその文字コードを追加する親字タグ発生部と、
    使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書と、
    異体字処理をしたXML文書を、データベースに登録するデータベース登録部と、
    検索語の異体字グループを取得して、その情報を保持する異体字グループ取得部と、
    保持する異体字グループを用いて検索語の全ての異体字を検索すると同時に、データベースの検索範囲を選択限定するクエリを生成するクエリ構成部と、
    クエリ構成部から生成したクエリにて、データベースに問い合わせて、結果を取得するクエリ発行部と、
    を備えるXML異体字検索システム。
  2. 入力したXML文書から、要素と要素の文字列とを分離するタグ解析部と、
    分離した要素の中から、異体字に親字情報を付加する異体字処理が必要な要素を限定する制御部と、
    処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析部と、
    判別した文字の親字情報を、異体字辞書から取得する親字取得部と、
    親字が存在した文字に、親字情報として、親字タグとその文字コードを追加する親字タグ発生部と、
    使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書と、
    異体字処理をしたXML文書を、リポジトリに文書保管したり、リポジトリから読出す文書保管・読出部と、
    検索語の異体字グループを取得して、その情報を保持する異体字グループ取得部と、
    XML文書中の親字タグに相当するノードの親ノードの文字列を被検索文字列として取得する処理ノード取得部と、
    検索文字列中の異体字を全て親字に変換する異体字変換部と、
    親字変換済み検索語で検索する文字列検索部と、
    を備えるXML異体字検索システム。
  3. 使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書を使用して異体字検索を行う方法であって、
    入力したXML文書から、要素と要素の文字列とを分離するタグ解析ステップと、
    分離した要素の中から、異体字に親字情報を付加する異体字処理が必要な要素を限定する制御ステップと、
    処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析ステップと、
    判別した文字の親字情報を、異体字辞書から取得する親字取得ステップと、
    親字が存在した文字に、親字情報として、親字タグとその文字コードを追加する親字タグ発生ステップと、
    処理すべき全ての文字列の異体字処理を終了したら、異体字処理をしたXML文書を、データベースに登録するデータベース登録ステップと、
    検索語の異体字グループを取得して、その情報を保持する異体字グループ取得ステップと、
    保持する異体字グループを用いて検索語の全ての異体字を検索すると同時に、データベースの検索範囲を選択限定するクエリを生成するクエリ構成ステップと、
    クエリ構成部から生成したクエリにて、データベースに問い合わせて、結果を取得するクエリ発行ステップと、
    を含んだ手順でなされるXML異体字検索方法。
  4. 使用可能なすべての異体字に対し親字になる文字を記述・定義している異体字辞書を使用して異体字検索を行う方法であって、
    入力したXML文書から、要素と要素の文字列とを分離するタグ解析ステップと、
    分離した要素の中から、異体字に親字情報を付加する異体字処理が必要な要素を限定する制御ステップと、
    処理する文字列を文字に分解して、文字が処理対象の文字種であるか判別する文字列解析ステップと、
    判別した文字の親字情報を、異体字辞書から取得する親字取得ステップと、
    親字が存在した文字に、親字情報として、親字タグとその文字コードを追加する親字タグ発生ステップと、
    異体字処理をしたXML文書を、リポジトリに文書保管したり、リポジトリから読出す文書保管・読出ステップと、
    検索語の異体字グループを取得して、その情報を保持する異体字グループ取得ステップと、
    XML文書中の親字タグに相当するノードの親ノードの文字列を被検索文字列として取得する処理ノード取得ステップと、
    検索文字列中の異体字を全て親字に変換する異体字変換ステップと、
    親字変換済み検索語で検索する文字列検索ステップと、
    を含んだ手順でなされるXML異体字検索方法。
JP2004166910A 2004-06-04 2004-06-04 Xml異体字検索システムおよびxml異体字検索方法 Expired - Fee Related JP3923961B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004166910A JP3923961B2 (ja) 2004-06-04 2004-06-04 Xml異体字検索システムおよびxml異体字検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004166910A JP3923961B2 (ja) 2004-06-04 2004-06-04 Xml異体字検索システムおよびxml異体字検索方法

Publications (2)

Publication Number Publication Date
JP2005346537A JP2005346537A (ja) 2005-12-15
JP3923961B2 true JP3923961B2 (ja) 2007-06-06

Family

ID=35498836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004166910A Expired - Fee Related JP3923961B2 (ja) 2004-06-04 2004-06-04 Xml異体字検索システムおよびxml異体字検索方法

Country Status (1)

Country Link
JP (1) JP3923961B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011154602A (ja) * 2010-01-28 2011-08-11 Fujitsu Frontech Ltd 文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラム
US9412094B2 (en) 2010-11-11 2016-08-09 International Business Machines Corporation User identifier management
US20160041626A1 (en) 2014-08-06 2016-02-11 International Business Machines Corporation Configurable character variant unification

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158995A (ja) * 1991-12-04 1993-06-25 Sharp Corp 文書処理装置
JPH07121547A (ja) * 1993-10-21 1995-05-12 Matsushita Electric Ind Co Ltd 情報検索装置
JPH10301940A (ja) * 1997-04-22 1998-11-13 Canon Inc 情報処理装置及びその方法
JP3765459B2 (ja) * 1999-03-03 2006-04-12 Kddi株式会社 Xml文書検索装置
JP2000259660A (ja) * 1999-03-11 2000-09-22 Fuji Xerox Co Ltd 属性抽出装置
JP2003296355A (ja) * 2002-04-02 2003-10-17 Murata Mach Ltd 構造化文書の処理装置と処理プログラム

Also Published As

Publication number Publication date
JP2005346537A (ja) 2005-12-15

Similar Documents

Publication Publication Date Title
JP4189416B2 (ja) 構造化文書管理システム及びプログラム
US6853992B2 (en) Structured-document search apparatus and method, recording medium storing structured-document searching program, and method of creating indexes for searching structured documents
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
JP5376163B2 (ja) 文書管理・検索システムおよび文書の管理・検索方法
JP5138046B2 (ja) 検索システム、検索方法およびプログラム
US20090024384A1 (en) Data processing method and system, program for realizing the method, and computer readable storage medium storing the program
US20020147711A1 (en) Apparatus, method, and program for retrieving structured documents
JP3263963B2 (ja) 文書検索方法及び装置
JPH11242676A (ja) 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体
JPH10240752A (ja) 構造化文書の登録方法,検索方法、およびそれに用いられる可搬型媒体
JP2008171181A (ja) 構造化データ検索装置
CN113704575B (zh) 解析XML与Java文件的SQL方法、装置、设备及存储介质
JP3923961B2 (ja) Xml異体字検索システムおよびxml異体字検索方法
US20050187964A1 (en) Method and apparatus for retrieving natural language text
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP4439497B2 (ja) 検索処理装置及びプログラム
US6947932B2 (en) Method of performing a search of a numerical document object model
JP4439496B2 (ja) 検索処理装置及びプログラム
US20020052878A1 (en) Method of storing and flattening a structured data document
US7953761B2 (en) System, method, and apparatus for retrieving structured document and apparatus for managing structured document
JP2000003366A (ja) 文書登録方法と文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体
US20020099712A1 (en) Method of operating an extensible markup language database
JP2009104276A (ja) データ管理装置
US20030084027A1 (en) Control method for an extensible markup language file
JP2003288365A (ja) 付加情報管理方法及び付加情報管理システム

Legal Events

Date Code Title Description
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: 20070123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070222

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110302

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110302

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120302

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130302

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140302

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees