JP2000259660A - 属性抽出装置 - Google Patents

属性抽出装置

Info

Publication number
JP2000259660A
JP2000259660A JP11064504A JP6450499A JP2000259660A JP 2000259660 A JP2000259660 A JP 2000259660A JP 11064504 A JP11064504 A JP 11064504A JP 6450499 A JP6450499 A JP 6450499A JP 2000259660 A JP2000259660 A JP 2000259660A
Authority
JP
Japan
Prior art keywords
attribute
text
schema
character string
document
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.)
Pending
Application number
JP11064504A
Other languages
English (en)
Inventor
Kenichi Numata
賢一 沼田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP11064504A priority Critical patent/JP2000259660A/ja
Publication of JP2000259660A publication Critical patent/JP2000259660A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 構造化文書の多様な表現の差異を意識するこ
となく、簡易な指定で、構造化文書内の必要な属性を抽
出する。 【解決手段】 属性抽出部1cは、構造化文書1aを読
み込み、スキーマ定義部1bに定義されている文字列パ
ターン及び属性名を有する属性スキーマの集合に従って
読み込んだ構造化文書1aの照合を行い、適合した構造
化文書1aの要素及びテキストを属性名として抽出し、
文字列パターンが構造化文書1aの要素に適合した場合
には、適合した要素の内容を属性値として抽出し、文字
列パターンが構造化文書1aテキストに適合した場合に
は、適合した第1テキストの祖先であり同時にこの第1
テキスト以外のテキストの祖先ともなる祖先要素を特定
し、この祖先要素を祖先とする要素のうち第1テキスト
が直接属する第1要素以外の要素、及び祖先要素を祖先
とするテキストのうち第1テキスト以外のテキストを属
性値として抽出することにより属性リスト1dを生成す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、構造化文書に記述
された情報から属性の集合を抽出する属性抽出装置に関
し、特に構造化文書中の要素名と要素属性とテキストか
ら、条件に適合する所望の属性の並びを抽出してグルー
プ化する属性抽出装置に関する。
【0002】
【従来の技術】構造化文書とは、文書の章や段落などの
論理的な構成要素に対応して、文書データを木構造に階
層化した論理構造を持つ文書である。例えばSGML(S
tandard Generalized Markup Language; ISO8879/1986;
JIS X 4151/1992)、XML(Extensible Markup Language
1.0; W3C Recommendation 10-Feb-98)は、構造化文書に
関する国際規格である。
【0003】構造化文書の利点は、文書中のテキストを
意味的にまとまった複数の部分構造に分解して、各部分
構造に対して意味付けを与えることができることであ
る。例えば、論文であれば表題、著者、著者所属、章、
節、段落、参考文献などの部分構造に分解することがで
きる。構造化文書はこれらの部分構造を要素として、要
素の階層構造によって表現される。 特に、SGMLお
よびXMLにおいては、要素は文書データを開始タグと
終了タグによって囲んだものとして記述される。例え
ば”章”を表す要素であれば、開始タグは”<章>”、
終了タグは”</章>”と表現され、章の内容がこの開
始タグと終了タグの間に記述される。
【0004】図36はXML文書の一例である。図36
において第1行はXML宣言であり、この文書がXML
の規格に適合した文書であることを宣言している。第2
行は文書型宣言であり、この文書中に出現可能な要素の
種類、各要素の出現順序、要素間の包含関係などを規定
する規則である文書型を指定している。図36は、パー
ソナルコンピュータ(以後”PC”と略記する)の仕様
を記述した文書であり、第2行で宣言されている文書型
では、PCの仕様を記述するためのタグを定義してい
る。図36に示す文書はこの文書型に従ってPCの仕様
を記述したものであり、まず文書全体は”PC”という
要素からなる。要素”PC”は、”Product−N
ame”、”CPU”、”memory”、”HD
D”、”CD−ROM”という要素を含み、これらの要
素はそれぞれテキストを内容として持っている。
【0005】SGML文書においても、文書型に従った
論理構造を記述すると言う点においてはXML文書と同
じである。文書型によって文書の各要素に意味付けがな
されていれば、この論理構造を有効に利用して、文書か
ら必要な情報を検索して抽出することができるようにな
る。例えば、図36に示したPCの仕様を記述した文書
からメモリに関する情報を検索して抽出したい場合、”
memory”という要素を検索してその内容を抽出す
ればよい。
【0006】しかしながら、同じ種類の情報をXML文
書として表現する際にも、文書型が異なれば文書の表現
も異なってくる。例えばあるメーカーでPCの仕様を記
述する際に、文書型の定義でメモリを”memory”
という要素で表現していたとする。一方、別のメーカー
では別の文書型の定義でメモリを”RAM”という要素
で表現しているかもしれない。例えば、図37に示す文
書は、同じPCの仕様を記述した文書であるが、図36
に示した文書の文書型とは異なる文書型に従って作成さ
れており、要素の名前が違っている。
【0007】このように、異なる文書型に従って記述さ
れた構造化文書の構造の差異を吸収して、統一的な処理
を可能にする従来技術として、例えば、特開平8−31
4933号公報「構造化文書の処理装置」に示される方
法がある。特開平8−314933号公報では、多くの
文書型に共通する構造を使って定義した共通文書型と呼
ばれる文書型を用意し、個別の文書型の各要素と共通文
書型の各要素の対応表を用意する。文書作成時には、個
別の文書型に共通文書型の要素を組み込んだ拡張個別文
書型と呼ばれる文書型を生成し、この拡張個別文書型に
沿って文書を作成する。また、共通文書型に拡張個別文
書型を組み込んだ拡張共通文書型を生成し、前記の共通
文書型と個別の文書型の要素対応表に基づいて、拡張個
別文書型に沿った文書を、拡張共通文書型に沿った文書
に変換する。
【0008】この方法を用いることにより、拡張共通文
書型に従って抽出したい情報を指定すれば、全ての文書
を拡張共通文書型に従うように変換することによって、
その指定を全ての文書に適用することができる。このた
め、個別の文書型ごとに抽出したい情報を指定する必要
がなくなり、抽出したい情報を簡易に指定することが可
能となる。
【0009】
【発明が解決しようとする課題】しかし、特開平8−3
14933号公報に示される方法では、個別の文書型と
共通文書型の各要素の対応表を予め用意する必要がある
為、文書型の種類が増えれば増えるほど多大な人的コス
トが必要となるという問題点がある。
【0010】さらに、構造化文書の表現の差異は、要素
名の違いだけに留まらない。例えば、図38、図39
は、PCの仕様に関する同種の情報のXMLによる別の
表現の例である。図38では、PCの部品を表す要素は
全て”parts”として表現されており、要素に付随
する属性(以後これを要素属性と呼ぶ)によってPCの
部品の種別を表現している。一方、図39では、部品の
種別は要素名でも要素属性でもなく、要素”categ
ory”の内容であるテキストによって表現されてい
る。
【0011】また、World Wide Webでの
文書交換に広く用いられている文書記述言語の規格HT
ML(HyperText Markup Langu
age, version 4.0; W3C Rec
ommendation 18−Dec−97) で
は、利用できるタグが予め限定されているため独自のタ
グを定義することはできず、特開平8−314933号
公報に示される方法を適用することができないという問
題もある。
【0012】本発明はこのような点に鑑みなされたもの
であり、構造化文書の多様な表現の差異を意識すること
なく、簡易な指定で、構造化文書内の必要な属性を抽出
できる属性抽出装置を提供することを目的とする。
【0013】
【課題を解決するための手段】本発明では上記課題を解
決するために、構造化文書から属性の集合を抽出する属
性抽出装置において、前記構造化文書の属性を表す属性
名と、前記属性名に対応する文字列パターンと、を有す
る属性スキーマを定義するスキーマ定義手段と、前記構
造化文書を前記文字列パターンと照合することにより、
前記構造化文書の属性名及び属性値を抽出する属性抽出
手段と、を有することを特徴とする属性抽出装置が提供
される。
【0014】ここで、スキーマ定義手段は、構造化文書
の属性を表す属性名と、属性名に対応する文字列パター
ンとを有する属性スキーマを定義し、属性抽出手段は、
構造化文書を文字列パターンと照合することにより、構
造化文書の属性名及び属性値を抽出する。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。まず、本発明における第1の実施
の形態について説明する。
【0016】図1は、第1の実施の形態における属性抽
出装置1の原理構成図である。図1に示すように、属性
抽出装置1は、抽出する属性の集合をスキーマとして定
義するスキーマ定義部1b及びスキーマ定義部1bで与
えられたスキーマ定義に従って属性の並びを抽出する属
性抽出部1cにより構成されており、属性抽出の対象と
なる構造化文書1aを属性抽出部1cで処理することに
より、その処理結果である属性リスト1dを得ることが
できる。
【0017】図2は、スキーマ定義部1bで定義される
スキーマの一例を示す図である。スキーマは1つ以上の
属性スキーマの並びとして定義される。図2において、
1つの行が1つの属性スキーマを表す。属性スキーマは
抽出時の属性名と属性名に適合させる文字列パターンの
組である。文字列パターンは、適合させる文字列そのも
のでもよいし、正規表現を用いてもよい。属性スキーマ
は指定された文字列パターンによって識別される。すな
わち、同一の文字列パターンを持つ属性スキーマが複数
存在することはないものとする。
【0018】ここで図2に示したスキーマは、PCに関
する属性を抽出するためのスキーマの例である。例え
ば、第1行目の属性スキーマは、文字列として”Mod
el”、”モデル”、”Product”のいずれかの
文字列に適合する要素またはテキストが対象文書に存在
した場合、”モデル”という属性名を持つ属性として抽
出することを表している。
【0019】図3および図4は、属性抽出の対象となる
構造化文書1aの例を示す図である。図3はXML文書
の一例であり、図4はHTML文書の一例である。XM
Lは利用目的に即してタグを自由に定義することができ
るので、図3に示すように、PCの仕様を記述するため
のタグを定義して、このタグを用いてPCの仕様を記述
することができる。一方、HTMLでは利用できるタグ
が予め限定されているので、PCの仕様を記述する際に
も、予め決められたタグを使って記述しなければならな
い。図4に示した文書では、HTMLの表作成のタグを
使ってPCの仕様を記述している。
【0020】次に、本形態の属性抽出装置1における構
造化文書1aからの属性リスト1d抽出処理について説
明する。図5は、属性リスト1d抽出処理の一連の流れ
を示すフローチャートである。
【0021】属性抽出部1cは、対象となる構造化文書
1aを読み込み(ステップS11)、読み込んだ構造化
文書1aの構造を解析する(ステップS12)。解析の
結果、構造化文書1aの要素およびテキストをノードと
する木構造が形成される。
【0022】次に、属性抽出部1cは、スキーマ定義部
1bで定義されたスキーマを読み込む(ステップS1
3)。ステップS12で形成された構造化文書1aの木
構造のルートの要素を読み込み(ステップS14)、こ
のルートの要素を処理対象として要素の照合処理を行う
(ステップS15)。要素の照合処理は木構造中のノー
ドを前順でたどりながら再帰的に処理を行って、要素名
の変換、要素の生成、削除などを行う。このとき変換さ
れた要素および生成された要素は、抽出すべき属性の情
報を保持している。この処理の詳細については後述す
る。
【0023】木構造中の全てのノードが処理されると、
変換または生成された要素を抽出し、属性名と属性値の
組のリストとして出力する(ステップS16)。次に、
図5のフローチャートのステップS15に示した要素の
照合処理の詳細について説明する。
【0024】図6は、要素の照合処理の流れを示すフロ
ーチャートである。要素の照合処理では、まず探索モー
ドを”属性名”に設定する(ステップS21)。ここ
で、探索モードは”属性名”または”属性値”のいずれ
かの値を取るものとする。
【0025】次に、処理対象となる要素の要素名の照合
を行う(ステップS22)。この処理の詳細については
後述する。次に、処理対象となる要素に子ノードが存在
するかどうかを確認する(ステップS23)。子ノード
がなければ処理を終了し、子ノードがあればそのうちの
1つを読み込む(ステップS24)。前述のとおり、形
成された構造化文書1aの木構造においてノードとなる
のは要素またはテキストである。そこで、ステップS2
4で読み込まれたノードが要素であるかテキストである
かを確認する(ステップS25)。要素であれば、再帰
的に要素の照合処理を行う(ステップS27)。一方、
子ノードがテキストであれば、テキストの照合処理を行
う(ステップS27)。この処理の詳細については後述
する。
【0026】ステップS27の要素の照合処理、または
ステップS26のテキストの照合処理が終了すると、探
索モードが検査される(ステップS28)。探索モード
が”属性名”である場合は、ステップS23に戻って子
ノードがさらにあるかどうかを確認する。探索モード
が”属性値”である場合には、属性値の抽出処理を行う
(ステップS29)。この処理の詳細については後述す
る。
【0027】次に、図6のフローチャートのステップS
22に示した要素名の照合処理の詳細について説明す
る。図7は、要素名の照合処理の流れを示すフローチャ
ートである。
【0028】まず、処理対象の要素の要素名を読み込み
(ステップS31)、スキーマ定義部1bで定義された
スキーマから属性スキーマを1つ読み込む(ステップS
32)。ステップS31で読み込まれた要素名と、ステ
ップS32で読み込まれた属性スキーマに指定された文
字列パターンが照合される(ステップS33)。照合の
結果、要素名が文字列パターンに適合したかどうかが検
査され(ステップS34)、もし要素名と文字列パター
ンが適合していれば、処理対象の要素の要素名を、ステ
ップS32で読み込まれた属性スキーマに指定されてい
る抽出時の属性名に置き換えて(ステップS36)、処
理を終了する。ステップS34において、要素名と文字
列パターンが適合しないと判定されると、スキーマ中に
さらに属性スキーマが定義されているかどうかを検査し
(ステップS35)、属性スキーマがまだあればステッ
プS32に戻って次の属性スキーマを読み込む。もしそ
れ以上属性スキーマがなければ処理を終了する。
【0029】次に、図6のフローチャートのステップS
26に示したテキストの照合処理の詳細について説明す
る。図8は、テキストの照合処理の流れを示すフローチ
ャートである。
【0030】まず、処理対象のテキストを読み込み(ス
テップS41)、スキーマ定義部1bで定義されたスキ
ーマから属性スキーマを1つ読み込む(ステップS4
2)。ステップS41で読み込まれたテキストと、ステ
ップS42で読み込まれた属性スキーマに指定された文
字列パターンが照合される(ステップS43)。照合の
結果、テキストが文字列パターンに適合したかどうかが
検査され(ステップS44)、もしテキストと文字列パ
ターンが適合していれば、適合したテキストノードを後
の処理のために一時保存する(ステップS46)。ステ
ップS44において、テキストと文字列パターンが適合
しないと判定されると、スキーマ中にさらに属性スキー
マが定義されているかどうかを検査し(ステップS4
5)、属性スキーマがまだあればステップS42に戻っ
て次の属性スキーマを読み込む。もしそれ以上属性スキ
ーマがなければ処理を終了する。
【0031】ステップS46の後、探索モードが”属性
値”に設定され(ステップS47)、処理を終了する。
次に、図6のフローチャートのステップS29に示した
属性値の抽出処理の詳細について説明する。
【0032】図9は、属性値の抽出処理の流れを示すフ
ローチャートである。まず、この処理の呼び出し元であ
る図6に示したフローチャートで処理対象となっている
要素を読み込む(ステップS51)。次に、図8に示し
たフローチャートのステップS46で保存されたテキス
トノードを読み込む(ステップS52)。ここで、属性
値の抽出処理が呼び出されるのは、探索モードが”属性
値”の場合のみであり、探索モードが”属性値”に設定
されるのは、図8に示したフローチャートのステップS
47においてのみである。したがって、ステップS52
に入るときには常にテキストノードが保存されているこ
とが保証される。
【0033】次に、ステップS51で読み込まれた要素
の下位にあるノードの中で、ステップS52で読み込ま
れたテキストノードの次に出現するテキストノードを探
索する(ステップS53)。次のテキストノードが存在
するかどうかを検査し(ステップS54)、もしあれば
ステップS51で読み込まれた要素の子ノードを1つ読
み込む(ステップS55)。次のテキストノードが見つ
からなければ、処理を終了する。
【0034】ステップS55で子ノードが読み込まれる
と、そのノードがステップS52で読み込まれたテキス
トノードを含むかどうかが検査される(ステップS5
6)。もし含んでいれば、テキストノードが適合した文
字列パターンを持つ属性スキーマに指定された抽出時の
属性名が取り出され、その属性名を要素名とする新たな
要素が生成される(ステップS57)。もし、ステップ
S55で読み込まれたノードが、ステップS52で読み
込まれたテキストノードを含まなければ、ステップS5
7で生成された要素ノードの子ノードとして追加される
(ステップS61)。ここで、ステップS52で読み込
まれたテキストノードを含むノードは、常に他のノード
より前にあるので、ステップS57を経ることなくステ
ップS61に進むことはありえない。
【0035】ステップS57で新たな要素が生成される
と、呼び出し元の要素の子として挿入され(ステップS
58)、元のノードは削除され(ステップS59)、探
索モードが”属性名”に設定される(ステップS6
0)。
【0036】ステップS60またはステップS61の処
理が終了すると、ステップS51で読み込まれた要素の
子ノードの中で未処理のものが存在するかどうかを検査
する(ステップS62)。もし未処理の子ノードが存在
すれば、ステップS55へ戻って子ノードを読み込む。
全ての子ノードについて処理が終了したら、この処理を
終了する。
【0037】次に、図3に示したXML文書を対象とし
て、図2に示したスキーマ定義に従って属性リスト1d
を抽出する場合の処理の流れを具体的に説明する。図5
に示すフローチャートにおいて、ステップS11で図3
に示した対象文書を読み込み、ステップS12で読み込
んだ文書の構造を解析する。図10に解析の結果として
形成される木構造のモデルを示す。図10のように木構
造は要素および要素内のテキストをノードとする。図1
0では、要素ノードを長方形枠で、テキストノードを楕
円枠でそれぞれ示してある。
【0038】次に、ステップS13で図2に示すスキー
マを読み込み、ステップS14で、図10に示す木構造
のルートノードすなわち要素”PC”を読み込み、ステ
ップS15で要素の照合処理を行う。
【0039】図6に示すフローチャートにおいて、ステ
ップS21で探索モードを”属性名”に設定し、ステッ
プS22で処理対象となるルート要素”PC”の要素名
の照合を行う。
【0040】図7に示すフローチャートにおいて、ま
ず、処理対象の要素の要素名”PC”を読み込み(ステ
ップS31)、図2に示すスキーマから属性スキーマ1
を読み込む(ステップS32)。要素名”PC”と、属
性スキーマ1に指定された文字列パターン”(Mode
l|モデル|Product)”が照合され(ステップ
S33)、適合したかどうかが検査され(ステップS3
4)、要素名と文字列パターンが適合しないので、スキ
ーマ中にさらに属性スキーマが定義されているかどうか
を検査し(ステップS35)、属性スキーマがまだあれ
ばステップS32に戻って次の属性スキーマを読み込
む。ここでは、図2に示す属性スキーマ2から属性スキ
ーマ4までが順次読み込まれ、いずれの文字列パターン
も要素名”PC”と適合しないので処理を終了する。
【0041】次に、図6に示すフローチャートに戻り、
処理対象となる要素に子ノードが存在するかどうかを確
認する(ステップS23)。ここで、要素”PC”には
子ノードとして4つの要素すなわち”Product−
Name”、”central.processor.
unit”、”memory”、”disk”があるの
でそのうちの1つである要素”Product−Nam
e”を読み込む(ステップS24)。ステップS24で
読み込まれたノードが要素であるかテキストであるかを
確認し(ステップS25)、要素であるので、再帰的に
要素の照合処理を行う(ステップS27)。
【0042】再び図6に示すフローチャートにおいて、
まず探索モードを”属性名”に設定する(ステップS2
1)。次に、処理対象となる要素”Product−N
ame”の要素名の照合を行う(ステップS22)。
【0043】図7に示すフローチャートに戻り、処理対
象の要素の要素名”Product−Name”を読み
込み(ステップS31)、スキーマ定義部1bで定義さ
れた図2に示すスキーマから属性スキーマ1を読み込む
(ステップS32)。要素名”Product−Nam
e”と、属性スキーマ1に指定された文字列パターン”
(Model|モデル|Product)”が照合され
る(ステップS33)。照合の結果、要素名が文字列パ
ターンに適合したかどうかが検査され(ステップS3
4)、要素名と文字列パターンが適合するので、処理対
象の要素の要素名”Product−Name”を、属
性スキーマ1に指定されている抽出時の属性名”モデ
ル”に置き換えて(ステップS36)、処理を終了す
る。
【0044】再び図6に示すフローチャートに戻り、処
理対象となる要素に子ノードが存在するかどうかを確認
する(ステップS23)。ここで、要素”モデル”には
子ノードとして1つのテキスト”FOO P2−40
0”があるのでこれを読み込む(ステップS24)。ス
テップS24で読み込まれたノードが要素であるかテキ
ストであるかを確認し(ステップS25)、テキストで
あるので、テキストの照合処理を行う(ステップS2
6)。
【0045】次に図8に示すフローチャートにおいて、
処理対象のテキスト”FOO P2−400”を読み込
み(ステップS41)、属性スキーマ1を読み込む(ス
テップS42)。テキスト”FOO P2−400”と
属性スキーマ1に指定された文字列パターン”(Mod
el|モデル|Product)”が照合され(ステッ
プS43)、照合の結果、テキストが文字列パターンに
適合したかどうかが検査され(ステップS44)、テキ
ストと文字列パターンが適合しないので、スキーマ中に
さらに属性スキーマが定義されているかどうかを検査し
(ステップS45)、属性スキーマがまだあればステッ
プS42に戻って次の属性スキーマを読み込む。ここで
は、図2に示す属性スキーマ2から属性スキーマ4まで
が順次読み込まれ、いずれの文字列パターンもテキス
ト”FOO P2−400”と適合しないので処理を終
了する。
【0046】ステップS26のテキストの照合処理が終
了すると、探索モードが検査される(ステップS2
8)。探索モードが”属性名”であるので、ステップS
23に戻って子ノードがさらにあるかどうかを確認する
と、要素”モデル”にはこれ以上子ノードがないので処
理を終了する。
【0047】ステップS27の要素の照合処理が終了す
ると、探索モードが検査される(ステップS28)。探
索モードが”属性名”であるので、ステップS23に戻
って子ノードがさらにあるかどうかを確認すると、要
素”PC”には子ノードが3つ残っているので、これら
のノードすなわち要素”central.proces
sor.unit”、”memory”、”disk”
を順次処理する。
【0048】図11に、全てのノードについて要素の照
合処理が終了した状態の木構造を示す。図11では、判
例に示すように、変換された要素を元の要素と区別して
示してある。
【0049】全てのノードの処理が終わると、図5に示
すフローチャートに戻り、変換または生成された要素か
ら属性が抽出され、属性名と属性値の組のリストとして
出力される(ステップS16)。図12は図3に示すX
ML文書を対象として、図2に示すスキーマ定義に基づ
いて属性の抽出処理を行った結果として出力されるリス
トを示す図である。図12では、属性名”RAM”に対
して、元のXML文書のタグを残したままで属性値とし
て抽出している。これは、元の文書のタグの意味をでき
るだけ失わないように属性値を抽出するためである。
【0050】次に、図4に示したHTML文書を対象と
して、図2に示したスキーマ定義に従って属性リスト1
dを抽出する場合の処理の流れを具体的に説明する。図
5に示すフローチャートにおいて、ステップS11で図
4に示した対象文書を読み込み、ステップS12で読み
込んだ文書の構造を解析する。図13に解析の結果とし
て形成される木構造のモデルを示す。ステップS13で
図2に示すスキーマを読み込み、ステップS14で、木
構造のルートノードすなわち要素”html”を読み込
み、ステップS15で要素の照合処理を行う。
【0051】以後、ノード1101からノード1108
まで順次処理されるが、いずれも図2に示す各属性スキ
ーマの文字列パターンと適合しない。次に、ノード11
08の子ノード1109すなわち”Model”につい
て、図8に示すフローチャートにおいて、テキストの照
合処理が行われる。
【0052】まず処理対象のテキスト”Model”を
読み込み(ステップS41)、属性スキーマ1を読み込
む(ステップS42)。テキスト”Model”と属性
スキーマ1に指定された文字列パターン”(Model
|モデル|Product)”が照合され(ステップS
43)、照合の結果、テキストが文字列パターンに適合
したかどうかが検査され(ステップS44)、テキスト
と文字列パターンが適合するので、ステップS46で、
このテキストノードを一時保存し、ステップS47で探
索モードを”属性値”に設定して処理を終了する。
【0053】ステップS26のテキストの照合処理が終
了すると、探索モードが検査される(ステップS2
8)。探索モードが”属性値”であるので、ステップS
29の属性値の抽出処理を行う。
【0054】図9に示すフローチャートにおいて、ま
ず、この処理の呼び出し元である図6に示したフローチ
ャートで処理対象となっているノード1108を読み込
む(ステップS51)。次に、図8に示したフローチャ
ートのステップS46で保存されたテキストノード”M
odel”を読み込む(ステップS52)。
【0055】次に、ステップS51で読み込まれたノー
ド1108の下位にあるノードの中で、ステップS52
で読み込まれたテキストノードの次に出現するテキスト
ノードを探索する(ステップS53)。次のテキストノ
ードが存在するかどうかを検査し(ステップS54)、
次のテキストノードが見つからないので処理を終了す
る。
【0056】ステップS29の属性値の抽出処理が終了
すると、ステップS23に戻って子ノードがさらにある
かどうかを確認し、ノード1108には子ノードが残っ
ていないので処理を終了する。
【0057】ステップS27のノード1108に対する
要素の照合処理が終了すると、探索モードが検査される
(ステップS28)。探索モードが依然として”属性
値”であるので、ステップS29の属性値の抽出処理を
行う。
【0058】図9に示すフローチャートにおいて、ま
ず、この処理の呼び出し元である図6に示したフローチ
ャートで処理対象となっているノード1107すなわち
要素”tr”を読み込む(ステップS51)。次に、図
8に示したフローチャートのステップS46で保存され
たテキストノード”Model”を読み込む(ステップ
S52)。
【0059】次に、ステップS51で読み込まれたノー
ド1107の下位にあるノードの中で、ステップS52
で読み込まれたテキストノードの次に出現するテキスト
ノードを探索する(ステップS53)。次のテキストノ
ードが存在するかどうかを検査すると(ステップS5
4)、ノード1111すなわち”BAR P2−40
0”がある。そこで、ノード1107の子ノードである
ノード1108を読み込む(ステップS55)。
【0060】ステップS55で子ノードが読み込まれる
と、そのノードがステップS52で読み込まれたテキス
トノード”Model”を含むかどうかが検査される
(ステップS56)。ノード1108はテキストノー
ド”Model”を含むので、適合した文字列パター
ン”(Model|モデル|Product)”を持つ
属性スキーマ1に指定された抽出時の属性名”モデル”
が取り出され、その属性名を要素名とする新たな要素が
生成され(ステップS57)、呼び出し元の要素であ
る”tr”の子として挿入され(ステップS58)、ノ
ード1108が削除され(ステップS59)、探索モー
ドとして”属性名”が設定される(ステップS60)。
【0061】ステップS60の処理が終了すると、ステ
ップS51で読み込まれたノード1107の子ノードの
中で未処理のものが存在するかどうかを検査する(ステ
ップS62)。ここで未処理の子ノードであるノード1
110が存在するので、ステップS55へ戻って子ノー
ドを読み込む。ノード1110はステップS52で読み
込まれたテキストノード”Model”を含まないの
で、ステップS57で生成された要素ノード”モデル”
の子ノードとして追加される(ステップS61)。ステ
ップS61の処理が終了すると、ステップS51で読み
込まれたノード1107の子ノードの中で未処理のもの
が存在するかどうかを検査する(ステップS62)。こ
こで未処理の子ノードはもうないので、この処理を終了
する。
【0062】ステップS27のノード1107に対して
要素の照合処理が終了すると、探索モードが検査される
(ステップS28)。探索モードが”属性名”に戻った
ので、ステップS23に戻って子ノードがさらにあるか
どうかを確認すると、ノード1106には子ノードさら
に4つ(1112、1117、1122、1127)残
っているので、これらのノードを順次処理する。
【0063】図14に、全てのノードについて要素の照
合処理が終了した状態の木構造を示す。図14では、判
例に示すように、生成された要素を元の要素と区別して
示してある。
【0064】全ての子ノードの処理が終わると、図5に
示すフローチャートに戻り、変換または生成された要素
から属性が抽出され、属性名と属性値の組のリストとし
て出力される(ステップS16)。図15は図4に示す
HTML文書を対象として、図2に示すスキーマ定義に
基づいて属性の抽出処理を行った結果として出力される
リストを示す図である。
【0065】以上説明したように、本形態では、属性ス
キーマの集合として定義されたスキーマに従って属性名
を文書の要素及びテキストから抽出することとしたた
め、特定の利用目的のためにタグを定義して記述された
SGML文書やXML文書中の情報であっても、限定さ
れたタグの集合しか利用できないHTML文書中の情報
であっても、必要な属性を容易に抽出することができ
る。
【0066】次に、本発明における第2の実施の形態に
ついて説明する。図16は、第2の実施の形態における
属性抽出装置10の原理構成図である。図16に示すよ
うに、属性抽出装置10は、抽出する属性の集合をスキ
ーマとして定義するスキーマ定義部10b、スキーマ定
義部10bで与えられたスキーマ定義に従って属性の並
びを抽出する属性抽出部10c及び属性名と属性値を区
切る区切り文字を指定する区切り文字指定部10eによ
り構成されており、属性抽出の対象となる構造化文書1
0aを属性抽出部10cで処理することにより、その処
理結果である属性リスト10dを得ることができる。
【0067】次に、本形態の属性抽出装置10における
構造化文書10aからの属性リスト10d抽出処理につ
いて説明する。本形態では、属性の抽出処理全体、要素
の照合処理、要素名の照合処理および属性値の抽出処理
は、それぞれ第1の実施の形態における図5、図6、図
7、図9に示したフローチャートと同様であり、テキス
トの抽出処理だけが異なっている。
【0068】図17は、本形態におけるテキストの抽出
処理の流れを示すフローチャートである。また、図18
に本形態において対象となる構造化文書10aの一例を
示す。図18に示した文書はHTML文書であり、テキ
ストの中に区切り文字”:”が使用されている。
【0069】ここで、図18に示したHTML文書を対
象として、図2に示したスキーマ定義に従って属性リス
ト10dを抽出する場合の処理の流れを具体的に説明す
る。まず、図5に示したフローチャートに沿って処理が
行われる。次に、図6、図7に示すフローチャートに沿
って、要素の照合処理および要素名の処理が行われる。
図18に示したHTML文書を対象にした場合、図2に
示したスキーマの各属性スキーマの文字列パターンに適
合する要素名は存在しない。そこで、要素の照合処理お
よび要素名の照合処理については説明を省略する。
【0070】図6に示したフローチャートのステップS
26においてテキストの照合処理が呼び出されると、図
17に示したフローチャートにおいて、まずテキストが
読み込まれる(ステップS401)。図18に示したH
TML文書を対象としたとき、まず最初のテキストとし
て”BAR P2−450”が読み込まれる。
【0071】次に、属性スキーマ1を読み込む(ステッ
プS402)。テキスト”BARP2−450”と属性
スキーマ1に指定された文字列パターン”(Model
|モデル|Product)”が照合され(ステップS
403)、照合の結果、テキストが文字列パターンに適
合したかどうかが検査され(ステップS404)、テキ
ストと文字列パターンが適合しないので、スキーマ中に
さらに属性スキーマが定義されているかどうかを検査し
(ステップS405)、属性スキーマがまだあればステ
ップS402に戻って次の属性スキーマを読み込む。こ
こでは、図2に示す属性スキーマ2から属性スキーマ4
までが順次読み込まれ、いずれの文字列パターンもテキ
スト”BAR P2−450”と適合しないので処理を
終了する。
【0072】図6に示したフローチャートのステップS
26において次のテキストである”Model : B
AR P2−450”を対象としてテキストの照合処理
が呼び出されると、図17に示したフローチャートにお
いて、まずテキスト”Model : BAR P2−
450”が読み込まれる(ステップS401)。属性ス
キーマ1が読み込まれ(ステップS402)、テキス
ト”Model : BAR P2−450”と属性ス
キーマ1に指定された文字列パターン”(Model|
モデル|Product)”が照合され(ステップS4
03)、照合の結果、テキストが文字列パターンに適合
したかどうかが検査され(ステップS404)、テキス
トと文字列パターンが適合するので、ステップS406
に進む。
【0073】ステップS406で、属性抽出部10c
は、区切り文字指定部10eで指定された区切り文字が
テキストに含まれるかどうかを検査する。ここでは、区
切り文字指定部10eにおいて、区切り文字”:”が予
め指定されているものとする。
【0074】テキスト”Model : BAR P2
−450”には、区切り文字”:”が存在するので、こ
のテキストの区切り文字より前の文字列”Model”
を属性名とし、区切り文字より後ろの文字列”BAR
P2−450”を属性値として抽出する(ステップS4
07)。次に、属性名”Model”を要素名とする新
たな要素を生成し(ステップS408)、この処理の呼
び出し元で処理対象となっていた要素である”li”の
子として挿入する(ステップS409)。要素を生成す
る際に、ステップS407で抽出された属性値のテキス
ト”BAR P2−450”は、要素”Model”の
内容となる。次に、テキストノード”Model :
BAR P2−450”を削除し(ステップS41
0)、処理を終了する。
【0075】さらに、残りのテキストノード”CPU
: P2 450MHz”、”RAM : 64M
B”、”Hard Disk : 4.3GB”、”C
D−ROM : 32x ATAPI”についても同様
にテキストの照合処理が行われ、属性が抽出される。抽
出される属性リスト10dは属性値中のタグがないこと
を除いて図15に示したものと同じである。
【0076】以上説明したように、本形態では、区切り
文字指定部10eの指定に従って、文書の要素、テキス
ト及び区切り文字で仕切られたテキストの一部を属性名
として抽出することとしたため、属性名と属性値が同一
のテキスト内に記述されている場合であっても、必要な
属性を同じように抽出することができる。
【0077】次に、本発明における第3の実施の形態に
ついて説明する。図19は、第3の実施の形態における
属性抽出装置20の原理構成図である。図19に示すよ
うに、属性抽出装置20は、抽出する属性の集合をスキ
ーマとして定義するスキーマ定義部20b、スキーマ定
義部20bで与えられたスキーマ定義に従って属性の並
びを抽出する属性抽出部20c、対象となる文書におけ
る要素の順位付けが記述されている要素順位指定記述2
0f及び要素順位指定記述20fに基づいて与えられた
2つの要素の順位を比較する要素順位比較部20eによ
り構成されており、属性抽出の対象となる構造化文書2
0aを属性抽出部20cで処理することにより、その処
理結果である属性リスト20dを得ることができる。
【0078】次に、本形態の属性抽出装置20における
構造化文書20aからの属性リスト20d抽出処理につ
いて説明する。本形態では、属性の抽出処理全体、要素
の照合処理、要素名の照合処理およびテキストの照合処
理は、それぞれ第1の実施の形態における図5、図6、
図7、図8に示したフローチャートと同様であり、属性
値の抽出処理だけが異なっている。なお、テキストの照
合処理については、第2の実施の形態において示した図
17のフローチャートに沿って処理してもよい。
【0079】図20は、本形態における属性値の抽出処
理の流れを示すフローチャートである。また、図21に
本形態において対象となる構造化文書20aの一例を示
す。図21に示した文書はHTML文書であり、定義リ
ストを表す要素”dl”の子要素として、要素”dt”
(用語を表す)と”dd”(用語の定義を表す)が同じ
階層に混在して並んでいるという構造を持っている。
【0080】図22に、対象文書をHTML文書とした
場合の要素順位指定記述20fの例を示す。図22の要
素順位指定記述20fは、HTML文書に出現可能な要
素間で構造的に上位と下位の関係にあるものを列挙して
いる。例えばHTMLにおいて見出しを表現する”h
1”、”h2”、...等の要素は数字の小さいほうが
構造的に上位である。また、見出しを表す要素よりも段
落を表す要素”p”の方が構造的に下位にある。このよ
うに対象文書に応じて要素間の構造的な上下関係を予め
指定しておくことにより、対象文書中における任意の2
つの要素について上下関係を比較することができる。な
お、同じ要素名の要素については上下の区別はないもの
とし、また、要素順位指定記述20fから上下関係が計
算できない要素同士においても上下の区別はないものと
する。
【0081】ここで、図21に示したHTML文書を対
象として、図2に示したスキーマ定義に従って属性リス
ト20dを抽出する場合の処理の流れを具体的に説明す
る。まず、図5に示したフローチャートに沿って処理が
行われる。次に、図6、図7に示すフローチャートに沿
って、要素の照合処理および要素名の処理が行われる。
図21に示したHTML文書を対象にした場合、図2に
示したスキーマの各属性スキーマの文字列パターンに適
合する要素名は存在しない。そこで、要素の照合処理お
よび要素名の照合処理については説明を省略する。
【0082】図6に示したフローチャートのステップS
26においてテキストの照合処理が呼び出されると、図
8に示したフローチャートにおいて、まずテキストが読
み込まれる(ステップS41)。図21に示したHTM
L文書を対象としたとき、まず最初のテキストとして”
BAR P2−450”が読み込まれる。
【0083】次に、属性スキーマ1を読み込む(ステッ
プS42)。テキスト”BAR P2−450”と属性
スキーマ1に指定された文字列パターン”(Model
|モデル|Product)”が照合され(ステップS
43)、照合の結果、テキストが文字列パターンに適合
したかどうかが検査され(ステップS44)、テキスト
と文字列パターンが適合しないので、スキーマ中にさら
に属性スキーマが定義されているかどうかを検査し(ス
テップS45)、属性スキーマがまだあればステップS
42に戻って次の属性スキーマを読み込む。ここでは、
図2に示す属性スキーマ2から属性スキーマ4までが順
次読み込まれ、いずれの文字列パターンもテキスト”B
AR P2−450”と適合しないので処理を終了す
る。
【0084】図6に示したフローチャートのステップS
26において次のテキストである”Model”を対象
としてテキストの照合処理が呼び出されると、図8に示
したフローチャートにおいて、まず処理対象のテキス
ト”Model”を読み込み(ステップS41)、属性
スキーマ1を読み込む(ステップS42)。テキスト”
Model”と属性スキーマ1に指定された文字列パタ
ーン”(Model|モデル|Product)”が照
合され(ステップS43)、照合の結果、テキストが文
字列パターンに適合したかどうかが検査され(ステップ
S44)、テキストと文字列パターンが適合するので、
ステップS46で、このテキストノードを一時保存し、
ステップS47で探索モードを”属性値”に設定して処
理を終了する。
【0085】図6に示したステップS26のテキストの
照合処理が終了すると、探索モードが検査される(ステ
ップS28)。探索モードが”属性値”であるので、ス
テップS29の属性値の抽出処理を行う。
【0086】図20に示すフローチャートにおいて、ま
ず、この処理の呼び出し元である図6に示したフローチ
ャートで処理対象となっている要素”dt”を読み込む
(ステップS81)。次に、図8に示したフローチャー
トのステップS46で保存されたテキストノード”Mo
del”を読み込む(ステップS82)。
【0087】次に、ステップS81で読み込まれた要
素”dt”の下位にあるノードの中で、ステップS82
で読み込まれたテキストノードの次に出現するテキスト
ノードを探索する(ステップS83)。次のテキストノ
ードが存在するかどうかを検査し(ステップS84)、
次のテキストノードが見つからないので処理を終了す
る。
【0088】ステップS29の属性値の抽出処理が終了
すると、ステップS23に戻って子ノードがさらにある
かどうかを確認し、要素”dt”には子ノードが残って
いないので処理を終了する。
【0089】ステップS27の要素”dt”の照合処理
が終了すると、探索モードが検査される(ステップS2
8)。探索モードが依然として”属性値”であるので、
ステップS29の属性値の抽出処理を行う。
【0090】図20に示すフローチャートにおいて、ま
ず、この処理の呼び出し元である図6に示したフローチ
ャートで処理対象となっている要素”dl”を読み込む
(ステップS81)。次に、図8に示したフローチャー
トのステップS46で保存されたテキストノード”Mo
del”を読み込む(ステップS82)。
【0091】次に、ステップS81で読み込まれた要
素”dl”の下位にあるノードの中で、ステップS82
で読み込まれたテキストノードの次に出現するテキスト
ノードを探索する(ステップS83)。次のテキストノ
ードが存在するかどうかを検査すると(ステップS8
4)、”BAR P2−400”がある。そこで、要
素”dl”の子ノードである要素”dt”(第1子)を
読み込む(ステップS85)。
【0092】ステップS85で子ノードが読み込まれる
と、そのノードがステップS82で読み込まれたテキス
トノード”Model”を含むかどうかが検査される
(ステップS86)。要素”dt”(第1子)はテキス
トノード”Model”を含むので、適合した文字列パ
ターン”(Model|モデル|Product)”を
持つ属性スキーマ1に指定された抽出時の属性名”モデ
ル”が取り出され、その属性名を要素名とする新たな要
素が生成される(ステップS91)。生成された要素
は、この処理の呼び出し元で処理対象となっている要
素、すなわち”dl”の子として挿入され(ステップS
92)、ノードすなわち要素”dt”(第1子)は削除
され(ステップS93)、探索モードとして”属性名”
が設定される(ステップS94)。
【0093】ステップS94の処理が終了すると、ステ
ップS81で読み込まれた要素”dl”の子ノードの中
で未処理のものが存在するかどうかを検査する(ステッ
プS90)。ここで未処理の子ノードである要素”d
d”(第2子)が存在するので、ステップS85へ戻っ
て子ノードを読み込む。要素”dd”(第2子)はステ
ップS82で読み込まれたテキストノード”Mode
l”を含まないので、ステップS91で生成された要素
ノード”モデル”の元の要素である”dt”(第1子)
と、要素”dd”(第2子)とを比較する(ステップS
87)。
【0094】ここで、図22に示した要素順位指定記述
20fに従って”dt”と”dd”を比較すると(ステ
ップS88)、”dt”の方が上であるので、ステップ
S91で生成された要素ノード”モデル”の子ノードと
して追加される(ステップS89)。ステップS89の
処理が終了すると、ステップS81で読み込まれた要
素”dl”の子ノードの中で未処理のものが存在するか
どうかを検査する(ステップS90)。ここで未処理の
子ノードである要素”dt”(第3子)が存在するの
で、ステップS85へ戻って子ノードを読み込む。要
素”dt”(第3子)はステップS82で読み込まれた
テキストノード”Model”を含まないので、ステッ
プS91で生成された要素ノード”モデル”の元の要素
である”dt”(第1子)と、要素”dt”(第3子)
とを比較する(ステップS87)。
【0095】ここで、要素”dt”(第1子)と要素”
dt”(第3子)は同じ要素なので順位は同じである。
したがって、ここで属性値の抽出処理を終了する。図6
に戻って、ステップS29の属性値の抽出処理が終了し
た後、ステップS23に戻って子ノードがさらにあるか
どうかを確認し、要素”dl”には子ノードが残ってい
るので、これらの子ノードを順次処理し、同様にして属
性を抽出する。
【0096】図5に示すフローチャートに戻り、抽出さ
れた全ての属性が属性名と属性値の組のリストとして出
力される(ステップS16)。抽出される属性リスト2
0dは属性値中のタグがないことを除いて図15に示し
たものと同じである。
【0097】以上説明したように、本形態では、要素順
位指定記述20fにより指定された要素順位に従って要
素の順位付けを行うこととしたため、同一の階層に要素
が並んでいる箇所から属性を抽出する場合であっても、
属性間の区切りを識別して属性を抽出することができ
る。
【0098】次に、本発明における第4の実施の形態に
ついて説明する。本形態における原理構成は、図1に示
した第1の実施の形態における原理構成と同じである。
【0099】次に、本形態において、構造化文書からど
のように属性リストが抽出されるかについて説明する。
本形態では、属性の抽出処理全体、要素の照合処理およ
びテキストの照合処理は、それぞれ第1の実施の形態に
おける図5、図6、図8に示したフローチャートと同様
であり、要素名の照合処理および属性値の抽出処理だけ
が異なっている。なお、テキストの照合処理について
は、第2の実施の形態において示した図17のフローチ
ャートに沿って処理してもよい。
【0100】図24は、本形態における要素名の照合処
理の流れを示すフローチャートであり、図25は、属性
値の抽出処理の流れを示すフローチャートである。図2
4に示したフローチャートでは、図7に示したフローチ
ャートに対して、ステップS106からステップS10
8までが新たに付け加えられている。すなわち、処理対
象の要素名と属性スキーマの属性名の文字列パターンが
適合した場合に、その属性スキーマが属性値の文字列パ
ターンを持つかどうかを検査し(ステップS106)、
もし属性値の文字列パターンを持たなければ、要素名を
抽出時の属性名に変換し(ステップS109)、処理を
終了する。属性スキーマが属性値の文字列パターンを持
つ場合には、要素の内容に含まれるテキストに対して照
合を行い(ステップS107)、適合したかどうかを検
査し(ステップS108)、適合した場合には要素名を
抽出時の属性名に変換し(ステップS109)、処理を
終了する。要素の内容に含まれるテキストに対して属性
値の文字列パターンが適合しない場合にはそのまま処理
を終了する。
【0101】図25に示したフローチャートでは、図9
に示したフローチャートに対して、ステップS123か
らステップS126までが新たに付け加えられている。
すなわち、生成された要素に対して子ノードが追加され
た場合に、その属性スキーマが属性値の文字列パターン
を持つかどうかを検査し(ステップS123)、もし属
性値の文字列パターンを持たなければ処理を終了する。
属性スキーマが属性値の文字列パターンを持つ場合に
は、生成された要素の内容に含まれるテキストに対して
照合を行い(ステップS124)、適合したかどうかを
検査し(ステップS125)、適合した場合には処理を
終了する。要素の内容に含まれるテキストに対して属性
値の文字列パターンが適合しない場合には、生成された
要素を削除して(ステップS126)、処理を終了す
る。
【0102】ここで、図3および図4に示した構造化文
書を対象として、図23に示したスキーマ定義に従って
属性リストを抽出する場合の処理の流れを具体的に説明
する。図23に示したスキーマ定義では、属性スキーマ
2に対して、属性値の文字列パターンとして”450M
Hz”が指定されている。
【0103】図3に示したXML文書の解析結果の木構
造(図10)において、ノード1004は属性スキーマ
2の文字列パターン”(CPU|processor|
プロセッサ)”に適合するが、その内容であるテキス
ト”P2 400MHz”は、属性値の文字列パター
ン”450MHz”に適合しない。したがってこの要素
は属性として抽出されない。図26にこの処理の結果と
して抽出される属性リストを示す。
【0104】また、図4に示したHTML文書の解析結
果の木構造(図13)において、ノード1114は属性
スキーマ2の文字列パターン”(CPU|proces
sor|プロセッサ)”に適合する。さらにノード11
16は属性の文字列パターン”450MHz”に適合す
る。したがって、この処理の結果として抽出される属性
リストは、図15に示したものと同じである。
【0105】以上説明したように、本形態では、属性名
及び属性値について文字列パターンを指定した属性スキ
ーマの集合としてスキーマを定義し、そのスキーマに従
って文書の要素及びテキストを属性名として抽出するこ
ととしたため、特定の属性値を持つ属性だけを効率よく
抽出することができる。
【0106】次に、本発明における第5の実施の形態に
ついて説明する。図27は、第5の実施の形態における
属性抽出装置30の原理構成図である。図27に示すよ
うに、属性抽出装置30は、抽出する属性の集合をスキ
ーマとして定義するスキーマ定義部30b、スキーマ定
義部30bで与えられたスキーマ定義に従って属性の並
びを抽出する属性抽出部30c及び対象となる文書の種
類に応じて、読み飛ばし可能な要素の種類を指定した記
述である読み飛ばし可能要素記述30eにより構成され
ており、属性抽出の対象となる構造化文書30aを属性
抽出部30cで処理することにより、その処理結果であ
る属性リスト30dを得ることができる。
【0107】本形態では、属性の抽出処理全体、要素名
の照合処理、テキストの照合処理および属性値の抽出処
理は、それぞれ第1の実施の形態における図5、図7、
図8、図9に示したフローチャートと同様であり、要素
の照合処理だけが異なっている。
【0108】図28は、本形態における要素の照合処理
の流れを示すフローチャートである。図28に示したフ
ローチャートでは、図6に示したフローチャートに対し
て、ステップS203が新たに付け加えられている。
【0109】図29は、図28に示したフローチャート
のステップS203の読み飛ばし可能要素の展開処理の
流れを示すフローチャートである。ここで読み飛ばし可
能な要素として、文書中の意味的に連続しているテキス
トを分割するような要素を指定する。このような要素を
ここではインライン要素と呼ぶ。例えばHTMLでは、
テキスト中のある部分を太字にするという指定の意味を
持った要素”B”や、フォントのサイズを指定するため
の要素”FONT”、テキスト中にハイパーリンクを埋
めこむための要素”A”などがインライン要素の例であ
る。
【0110】特に、文書中のテキストノードと属性スキ
ーマの文字列パターンとを照合するときに、インライン
要素がテキストを分割していると、適合すべきテキスト
が分割されているために適合しないという場合があり得
る。本実施の形態においては、このような可能性をなく
し、インライン要素が埋めこまれていても適切にテキス
トノードと属性スキーマの文字列パターンを照合できる
ようにする。
【0111】以下、図29に示すフローチャートに沿っ
て、読み飛ばし可能要素の展開処理について説明する。
まず、図28に示すフローチャートにおいて処理対象と
なった要素について、未処理の子ノードがあるかどうか
を検査する(ステップS211)。子ノードがあれば、
これをXとして1つ読み込む(ステップS212)。次
に、Xが要素であるかテキストであるかを検査する(ス
テップS213)。要素でなければステップS211に
戻り、他の子ノードがあるかどうかを検査する。Xが要
素である場合はさらに、読み飛ばし可能要素指定記述3
0eを参照して、Xが読み飛ばし可能であるかどうかを
検査する(ステップS214)。読み飛ばし可能でなけ
ればステップS211に戻り、他の子ノードがあるかど
うかを検査する。Xが読み飛ばし可能である場合には、
Xが子ノードを持つかどうかを検査する(ステップS2
15)。Xが子ノードを持たない場合はそのままXを削
除し(ステップS217)、Xが子ノードを持つ場合
は、全ての子ノードの並びを順序を保ったままXの直後
に移動してから(ステップS216)、ステップS21
7でXを削除する。ステップS217でXを削除する
と、ステップS211に戻り、他の子ノードがあるかど
うかを検査する。全ての子ノードに対する処理が終了す
ると、処理結果として残っている子ノードの並びのう
ち、テキストノードが連続して並んでいる部分があれ
ば、これらのテキストノードを連結して1つのテキスト
ノードに変換し(ステップS218)、処理を終了す
る。
【0112】以上説明したように、本形態では、読み飛
ばし可能要素指定記述30eに従い、読み飛ばし可能な
要素の展開処理を行うこととしたため、本来連続してい
るテキストがインライン要素によって分割されている場
合でも、インライン要素を削除してテキストを連結し、
要素内のテキストと属性スキーマに指定された属性名の
文字列パターンとを適切に照合することが可能になる。
【0113】次に、本発明における第6の実施の形態に
ついて説明する。図30は、第6の実施の形態における
属性抽出装置40の原理構成図である。図30に示すよ
うに、属性抽出装置40は、抽出する属性の集合をスキ
ーマとして定義するスキーマ定義部40b、スキーマ定
義部40bで与えられたスキーマ定義に従って属性の並
びを抽出する属性抽出部40c及び文書中の各要素に要
素属性が付与されている場合に、要素属性を要素とテキ
ストの組に変換する要素属性変換部40eにより構成さ
れており、属性抽出の対象となる構造化文書40aを属
性抽出部40cで処理することにより、その処理結果で
ある属性リスト40dを得ることができる。
【0114】本形態では、属性の抽出処理全体、要素名
の照合処理、テキストの照合処理および属性値の抽出処
理は、それぞれ第1の実施の形態における図5、図7、
図8、図9に示したフローチャートと同様であり、要素
の照合処理だけが異なっている。
【0115】図31は、本形態における要素の照合処理
の流れを示すフローチャートである。図31に示したフ
ローチャートでは、図6に示したフローチャートに対し
て、ステップS303が新たに付け加えられている。
【0116】図32は、図31に示したフローチャート
のステップS303における要素属性の展開処理の流れ
を示すフローチャートである。要素属性は、SGMLお
よびXMLにおいては各要素の開始タグに付属する形で
記述される。図33に示した文書は、PCの仕様を記述
したXML文書の一例である。図33に示したXML文
書は、要素”PC”の内容として、”Product−
Name”という要素1202が先頭にあり、”par
ts”という要素が複数(1202から1206)並ん
でいるという構造を持っている。ここで”parts”
要素には、”type”と”option”の2種類の
要素属性が指定されている。”type”要素属性は全
ての”parts”要素に存在するが、”optio
n”要素属性は1部の”parts”要素(1204)
にのみ存在する。
【0117】以下、図32に示すフローチャートに沿っ
て、要素属性の展開処理について説明する。 まず、図
31に示すフローチャートにおいて処理対象となった要
素について、要素属性があるかどうかを検査する(ステ
ップS311)。要素属性があれば、これを1つ読み込
む(ステップS312)。次に、要素属性の属性値を取
り出し、属性値を内容とするテキストノードを生成する
(ステップS313)。次に、要素属性の属性名を取り
出し、属性名を要素名とする要素を生成する(ステップ
S314)。ステップS313で生成したテキストノー
ドを、ステップS314で生成した要素の子として追加
する(ステップS315)。ステップS314で生成し
た要素を元の要素の子として追加する(ステップS31
6)。要素とテキストに変換された要素属性を削除し
(ステップS317)、ステップS311に戻って他の
要素属性があるかどうかを検査する。全ての要素属性に
対する処理が終了すると、この処理を終了する。
【0118】次に、図33に示したXML文書を対象と
して、要素属性の変換処理の具体的な処理の流れを説明
する。図31のフローチャートに示した要素の照合処理
は、文書中の各要素について再帰的に実行される。ここ
で今、例えば要素1204が処理の対象になったとす
る。図31のステップS303において、要素属性の展
開処理が実行されると、図32に示したフローチャート
において、まず要素1204に要素属性があるかどうか
が検査される(ステップS311)。要素1204に
は、要素属性”type”と”option”が存在す
るので、まず要素属性”type”を読み込む(ステッ
プS312)。要素属性”type”の属性値”mem
ory”に対するテキストノードを生成し(ステップS
313)、属性名”type”を要素名とする要素を新
たに生成する(ステップS314)。ステップS313
で生成したテキストノードをステップS314で生成し
た要素の子として追加し(ステップS315)、ステッ
プS314で生成した要素を要素1204の子として先
頭に挿入する(ステップS316)。処理の終わった要
素属性”type”が削除され(ステップS317)、
ステップS311に戻ってさらに要素属性があるかどう
かを検査する。
【0119】次に、要素1204には要素属性”opt
ion”が残っているので、これについても同様に処理
を行う。このようにして、文書中の全ての要素に対して
要素属性があるかどうかを検査し、要素属性がある場合
には新たな要素とテキストノードを生成して子として挿
入することにより、結果として図33に示した文書は、
図34に示すような文書を処理することと同じとなる。
したがって、図2に示したスキーマ定義に基づいて、図
5、図31、図32、図7、図8、図9のフローチャー
トに沿って処理を行うと、結果として図35に示すよう
に属性リスト40dが抽出される。
【0120】以上説明したように、本形態では、要素属
性変換部40eによって、要素属性から要素及びテキス
トノードを生成することとしたため、対象となる構造化
文書40aの要素名および要素内のテキストからだけで
なく、要素属性からも必要な属性を抽出することができ
る。
【0121】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、属性抽出装置
が有すべき機能の処理内容は、コンピュータで読み取り
可能な記録媒体に記録されたプログラムに記述してお
く。そして、このプログラムをコンピュータで実行する
ことにより、上記処理がコンピュータで実現される。コ
ンピュータで読み取り可能な記録媒体としては、磁気記
録装置や半導体メモリ等がある。市場に流通させる場合
には、CD−ROM(Compact Disk Read Only Memory)
やフロッピーディスク等の可搬型記録媒体にプログラム
を格納して流通させたり、ネットワークを介して接続さ
れたコンピュータの記憶装置に格納しておき、ネットワ
ークを通じて他のコンピュータに転送することもでき
る。コンピュータで実行する際には、コンピュータ内の
ハードディスク装置等にプログラムを格納しておき、メ
インメモリにロードして実行する。
【0122】
【発明の効果】以上説明したように本発明では、属性ス
キーマの集合として定義されたスキーマに従って属性名
及び属性値を抽出することとしたため、構造化文書の多
様な表現に対して、これら多様な表現の違いを意識する
必要がなく、簡易な指定で必要な属性名及び属性値を抽
出することができる。
【0123】また、区切り文字指定手段の指定に従っ
て、区切り文字で仕切られたテキストの一部を属性名と
して抽出することとしたため、属性名と属性値が同一の
テキスト内に記述されている場合であっても、必要な属
性を同じように抽出することができる。
【0124】さらに、要素順位比較手段に従って要素の
順位付けを行うこととしたため、同一の階層に要素が並
んでいる箇所から属性を抽出する場合であっても、属性
間の区切りを識別して属性を抽出することができる。
【0125】また、属性名及び属性値について文字列パ
ターンを指定した属性スキーマの集合としてスキーマを
定義し、そのスキーマに従って文書の要素及びテキスト
を属性名として抽出することとしたため、特定の属性値
を持つ属性だけを効率よく抽出することができる。
【0126】さらに、予め指定された種類の要素を読み
飛ばして照合することとしたため、本来連続しているテ
キストがインライン要素によって分割されている場合で
も、インライン要素を削除してテキストを連結し、要素
内のテキストと属性スキーマに指定された属性名の文字
列パターンとを適切に照合することが可能になる。
【0127】また、要素属性変換手段によって、要素属
性から要素及びテキストノードを生成することとしたた
め、対象となる構造化文書の要素名および要素内のテキ
ストからだけでなく、要素属性からも必要な属性を抽出
することができる。
【図面の簡単な説明】
【図1】 第1の実施の形態における属性抽出装置の原
理構成図である。
【図2】 スキーマ定義部で定義されるスキーマの一例
を示す図である。
【図3】 属性抽出の対象となる構造化文書の例を示す
図である。
【図4】 属性抽出の対象となる構造化文書の例を示す
図である。
【図5】 属性リスト抽出処理の一連の流れを示すフロ
ーチャートである。
【図6】 要素の照合処理の流れを示すフローチャート
である。
【図7】 要素名の照合処理の流れを示すフローチャー
トである。
【図8】 テキストの照合処理の流れを示すフローチャ
ートである。
【図9】 属性値の抽出処理の流れを示すフローチャー
トである。
【図10】 解析の結果として形成される木構造のモデ
ル図である。
【図11】 全てのノードについて要素の照合処理が終
了した状態の木構造図である。
【図12】 図3に示すXML文書を対象として、図2
に示すスキーマ定義に基づいて属性の抽出処理を行った
結果として出力されるリストを示す図である。
【図13】 解析の結果として形成される木構造のモデ
ル図である。
【図14】 全てのノードについて要素の照合処理が終
了した状態の木構造図である。
【図15】 図4に示すHTML文書を対象として、図
2に示すスキーマ定義に基づいて属性の抽出処理を行っ
た結果として出力されるリストを示す図である。
【図16】 第2の実施の形態における属性抽出装置の
原理構成図である。
【図17】 第2の実施の形態におけるテキストの抽出
処理の流れを示すフローチャートである。
【図18】 第2の実施の形態において対象となる構造
化文書の一例を示す図である。
【図19】 第3の実施の形態における属性抽出装置の
原理構成図である。
【図20】 第3の実施の形態における属性値の抽出処
理の流れを示すフローチャートである。
【図21】 第3の実施の形態において対象となる構造
化文書の一例を示す図である。
【図22】 対象文書をHTML文書とした場合の要素
順位指定記述の例を示す図である。
【図23】 属性値文字列パターンを含むスキーマの一
例を表した図である。
【図24】 本形態における要素名の照合処理の流れを
示すフローチャートである。
【図25】 属性値の抽出処理の流れを示すフローチャ
ートである。
【図26】 処理の結果として抽出される属性リストを
示した図である。
【図27】 第5の実施の形態における属性抽出装置の
原理構成図である。
【図28】 第5の実施の形態における要素の照合処理
の流れを示すフローチャートである。
【図29】 図28に示したフローチャートのステップ
S203の読み飛ばし可能要素の展開処理の流れを示す
フローチャートである。
【図30】 第6の実施の形態における属性抽出装置の
原理構成図である。
【図31】 第6の実施の形態における要素の照合処理
の流れを示すフローチャートである。
【図32】 図31に示したフローチャートのステップ
S303における要素属性の展開処理の流れを示すフロ
ーチャートである。
【図33】 PCの仕様を記述したXML文書の一例を
示した図である。
【図34】 要素属性を展開した文書を示す図である。
【図35】 抽出される属性リストを示した図である。
【図36】 XML文書の一例を示す図である。
【図37】 XML文書の一例を示す図である。
【図38】 XML文書の一例を示す図である。
【図39】 XML文書の一例を示す図である。
【符号の説明】
1 属性抽出装置 1a 構造化文書 1b スキーマ定義部 1c 属性抽出部 1d 属性リスト 10e 区切り文字指定部 20e 要素順位比較部 20f 要素順位指定記述 30e 読み飛ばし可能要素記述 40e 要素属性変換部

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 構造化文書から属性の集合を抽出する属
    性抽出装置において、 前記構造化文書の属性を表す属性名と、前記属性名に対
    応する文字列パターンと、を有する属性スキーマを定義
    するスキーマ定義手段と、 前記構造化文書を前記文字列パターンと照合することに
    より、前記構造化文書の属性名及び属性値を抽出する属
    性抽出手段と、 を有することを特徴とする属性抽出装置。
  2. 【請求項2】 前記属性抽出手段は、前記構造化文書の
    要素及びテキストを前記文字列パターンと照合して、適
    合した前記要素及び前記テキストを前記属性名として抽
    出し、 前記文字列パターンが前記要素に適合した場合
    には、適合した要素の内容を前記属性値として抽出し、 前記文字列パターンが前記テキストに適合した場合に
    は、前記適合した第1テキストの祖先であり同時に前記
    第1テキスト以外のテキストの祖先ともなる祖先要素を
    特定し、前記祖先要素を祖先とする要素のうち前記第1
    テキストが直接属する第1要素以外の要素、及び前記祖
    先要素を祖先とするテキストのうち前記第1テキスト以
    外のテキストを前記属性値として抽出することを特徴と
    する請求項1記載の属性抽出装置。
  3. 【請求項3】 前記テキスト内において前記属性名と前
    記属性値を区切る区切り文字を指定する区切り文字指定
    手段を有し、 前記属性抽出手段は、前記第1テキストが前記区切り文
    字を含む場合には、前記第1テキストの前記区切り文字
    の前に出現する文字列を属性名として抽出し、前記区切
    り文字の後ろに出現する文字列を属性値として抽出する
    ことを特徴とする請求項2記載の属性抽出装置。
  4. 【請求項4】 予め指定された要素の順位付けに基づい
    て2つの要素の順位を比較する要素順位比較手段を有
    し、 前記要素順位比較手段は、前記第1要素と、前記祖先要
    素を祖先とする要素のうち前記第1要素以外の要素とを
    比較し、 前記属性抽出手段は、前記第1要素よりも順位が低い要
    素を属性値として抽出し、前記第1要素よりも順位が高
    いか同じである要素が出現した時点で属性値の抽出を中
    止することを特徴とする請求項2記載の属性抽出装置。
  5. 【請求項5】 前記スキーマ定義手段は、属性値の文字
    列パターンを有する属性スキーマを定義することが可能
    であり、 前記属性抽出手段は、前記属性スキーマが前記属性値の
    文字列パターンを有する場合には、抽出した前記属性値
    に含まれる各テキストを前記属性値の文字列パターンと
    照合し、適合した場合にのみ属性を抽出することを特徴
    とする請求項2記載の属性抽出装置。
  6. 【請求項6】 前記属性抽出手段は、前記文字列パター
    ンと前記テキストを照合する際に、予め指定された種類
    の要素を読み飛ばして照合することを特徴とする請求項
    2記載の属性抽出装置。
  7. 【請求項7】 要素属性の属性名を要素名とする新たな
    要素を生成し、前記要素属性の属性値を前記新たな要素
    に含まれるテキストとし、前記新たな要素を前記要素属
    性が付与されていた前記要素の直下の要素として挿入す
    る要素属性変換手段を有することを特徴とする請求項2
    記載の属性抽出装置。
JP11064504A 1999-03-11 1999-03-11 属性抽出装置 Pending JP2000259660A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11064504A JP2000259660A (ja) 1999-03-11 1999-03-11 属性抽出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11064504A JP2000259660A (ja) 1999-03-11 1999-03-11 属性抽出装置

Publications (1)

Publication Number Publication Date
JP2000259660A true JP2000259660A (ja) 2000-09-22

Family

ID=13260113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11064504A Pending JP2000259660A (ja) 1999-03-11 1999-03-11 属性抽出装置

Country Status (1)

Country Link
JP (1) JP2000259660A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346537A (ja) * 2004-06-04 2005-12-15 Dainippon Printing Co Ltd Xml異体字検索システムおよびxml異体字検索方法
JP2006023878A (ja) * 2004-07-07 2006-01-26 Quin Land Co Ltd データ抽出システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346537A (ja) * 2004-06-04 2005-12-15 Dainippon Printing Co Ltd Xml異体字検索システムおよびxml異体字検索方法
JP2006023878A (ja) * 2004-07-07 2006-01-26 Quin Land Co Ltd データ抽出システム

Similar Documents

Publication Publication Date Title
EP1679625B1 (en) Method and apparatus for structuring documents based on layout, content and collection
Bonifati et al. Active rules for XML: A new paradigm for e-services
JP3842577B2 (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
US20130311879A1 (en) Rich text handling for a web application
US20020169803A1 (en) System and user interface for generating structured documents
JP2007509385A (ja) ウェブコンテンツ適合化プロセスおよびシステム
JP2008171181A (ja) 構造化データ検索装置
EP1870821A1 (en) Structured data conversion method
JP4207438B2 (ja) Xml文書格納/検索装置及びそれに用いるxml文書格納/検索方法並びにそのプログラム
US20050144153A1 (en) Structured data retrieval apparatus, method, and computer readable medium
JP3832693B2 (ja) 構造化文書検索表示方法及び装置
US9378301B2 (en) Apparatus, method, and computer program product for searching structured document
Moh et al. Re-engineering structures from Web documents
JP2010250439A (ja) 検索システム、データ生成方法、プログラムおよびプログラムを記録した記録媒体
Zinoviev Data Science Essentials in Python: Collect-Organize-Explore-Predict-Value
JP2000259660A (ja) 属性抽出装置
JP3518998B2 (ja) 意味属性辞書作成方法及び装置並びに意味属性辞書作成プログラムを記録した記録媒体
JP7227705B2 (ja) 自然言語処理装置、検索装置、自然言語処理方法、検索方法およびプログラム
US20080091695A1 (en) Apparatus, method and computer program product for assigning element of structured-text
JP2004118543A (ja) 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP4398664B2 (ja) Xmlデータの検索方法及び検索装置、並びにプログラムおよびプログラムを記録した記録媒体
Kovačević et al. Recognition of common areas in a Web page using a visualization approach
Arora et al. Web‐Based News Straining and Summarization Using Machine Learning Enabled Communication Techniques for Large‐Scale 5G Networks
JP2003288332A (ja) 構造化文書作成支援方法及び構造化文書作成支援システム
JP2002297662A (ja) 構造化文書編集方法および構造化文書編集装置および端末装置およびプログラム