以下、本発明の実施の形態を図面を参照して説明する。まず、発明の概要について説明し、その後、具体的な内容を説明する。
ここで、検出対象の文書群は、ネットワーク上で提供される文書の集合であって、1またはそれ以上のコンピュータによって管理されている。また、この文書群は、特定文書と、この特定文書の配下に複数の配下文書が存在する階層構造を成す。特定文書は、同じ文書群に属する他の文書を関連付けた連結情報が付加された文字列を含む文書であり、例えば、配下文書を閲覧するための目次や、索引などの文書である。特定文書では、目次などの配下文書のタイトルや、配下文書を特徴付ける語句などの文字列に対し、対応する配下文書を関連付ける連結情報が付加されている。配下文書は、特定文書の連結情報によって特定文書に関連付けられた文書である。また、配下文書についても、文書に出現する文字列が他の文書と関連付けられるときは、この文字列と他の文書とを関連付ける連結情報が文字列に付加される。例えば、文書群が辞書文書群であれば、解説対象の用語の索引などが記述される特定文書と、用語を解説する用語解説文書の階層構造を有する。特定文書では、用語解説文書で解説される用語を表す文字列に、対応する用語解説文書の連結情報が付加されている。また、用語解説文書中に他の用語解説文書で解説する用語が出現するときには、その用語を表す文字列にも対応する用語解説文書の連結情報が付加されている。
本発明では、連結情報に基づいて文書間の連結関係を解析する。そして、検出対象の特徴を満たす文書群を検出し、利用者に提示する。
図1は、発明の概要を示す図である。
文書群検出装置10は、文書記憶手段11a、特徴ルール記憶手段11b、集計情報記憶手段11c、文書群候補記憶手段11d及び文書群記憶手段11eの各記憶手段と、文書収集手段12、特徴集計手段13、文書群判定手段14及び文書群提示手段15の各処理手段と、を有する。
文書記憶手段11aには、文書収集手段12が収集した文書データが格納される。特徴ルール記憶手段11bには、検出対象の文書群の特徴を表す特徴項目、検索された文書群が目的の文書群であるかどうかを判定するための特徴ルールなどが格納される。集計情報記憶手段11cには、特徴集計手段13が、収集された文書を解析して集計した特徴項目の集計結果が格納される。文書群候補記憶手段11dには、文書群判定手段14が、特徴ルールに基づき検出対象の文書群候補であると判定した対象文書群候補に関する情報が格納される。文書群記憶手段11eには、文書群提示手段15が提示した対象文書群候補のうち、利用者が目的の文書群として指定した文書群の識別情報と、この文書群に属する特定文書に記述されている連結情報が付加された文字列と、を含む文書群情報が格納される。
文書収集手段12は、設定されたキーワードに基づいてネットワーク上を検索し、キーワードに適合する文書が含まれる所定の文書群を検出する。キーワードは、検出対象の文書群の内容の特徴を表す任意の語句、あるいは一例として挙げられる語句が利用者によって指定されたものである。目的の情報を得るための語句が設定される。例えば、ネットワーク関係の情報を得たい場合には、「ネットワーク」、「LAN(Local Area Network)」などが設定される。また、特定文書を取得されるためのネットワーク上のアドレスなどが指定されてもよい。任意の語句がキーワードに設定されたときは、検索エンジンによってキーワードに関連する文書のアドレスを取得する。このとき、キーワードに予め設定された語句を付加してさらに検索を行い、検索対象を拡張するとしてもよい。こうして検索された文書のネットワーク上の識別情報を有するアドレスに基づいて、特定文書のアドレスを検出する。一般に、ネットワーク上の文書の位置を示すアドレスは、文書群の構造と同様の階層構造をとる。そこで、検索された配下文書のアドレスから上位階層の特定文書のアドレスを予測することができる。その他、上位階層の文書のアドレスを取得する手法はよく知られており、ここではいずれかの手法を用いるとする。こうして取得された特定文書のアドレスに基づき、特定文書を取得する。なお、特定文書のアドレスが直接指定されたときは、特定文書の取得から処理を開始する。特定文書では、配下文書で関連する情報が提供される文字列には、対応する配下文書を関連付ける連結情報が付加されている。そこで、特定文書の文字列に付加される連結情報を抽出し、この連結情報に基づいて配下文書の文書データを収集する。収集した特定文書及び配下文書の文書データは、文書群ごとに文書記憶手段11aに格納する。
特徴集計手段13は、文書群ごとに、文書記憶手段11aに格納される特定文書を含む文書の文字列に付加された連結情報を抽出して解析し、文字列が記述される元の文書と、連結先の文書とが特定の関係となる状態数を集計する。これを特徴項目の集計と呼ぶ。すなわち、元の文書と、連結情報によって関連付けられた連結先の文書との関係が、検出対象の文書群を特徴付ける特徴項目(特定の関係)を満たしているかどうかを解析し、満たしている状態数を特徴項目ごとに集計する。これらの集計処理は、文書群ごとに行われる。また、集計結果は文書群ごとに集計情報記憶手段11cに格納する。
文書群判定手段14は、特徴集計手段13による、文書群ごとの特徴項目の集計結果に基づき、この文書群が検出対象の文書群の条件を満たすかどうかを判定する。判定に用いる特徴項目や、閾値などの判定条件は、予め特徴ルール記憶手段11bに格納しておく。文書群が条件を満たす場合、この文書群は対象文書群候補に選択され、文書群の識別情報が対象文書群候補テーブルに登録される。また、特徴ルールに基づく評価結果を、特徴スコアとして数値化してもよい。この場合、特徴スコアの算出方法も特徴ルールに定義しておく。対象文書群候補テーブルは、文書群候補記憶手段11dに格納される。このとき、文書群の識別情報とともに、算出された特徴スコアや特定文書の連結情報などが文書群候補記憶手段11dに格納されるとしてもよい。また、判定は、任意の特徴項目の集計結果を組み合わせて行うとする。複数の特徴項目を組み合わせて判定することにより、対象文書群候補が検出対象の文書群である確度(確からしさ)が高くなる。
文書群提示手段15は、文書群判定手段14によって対象文書群候補に登録された文書群の識別情報を利用者に提示する。そして、対象文書群候補のうち、利用者が選択した文書群の識別情報を目的の文書群として登録する。選択された目的の文書群の識別情報は、文書群記憶手段11eに格納される。このとき、文書群の識別情報とともに、特定文書の連結情報などが文書群記憶手段11eに格納されるとしてもよい。
このような構成の文書群検出装置10の動作及び実行される文書群検出方法について説明する。
キーワードが入力されると、文書収集手段12は、キーワードに基づいて、ネットワーク上で提供されるキーワードが含まれる文書を検索する。そして、検索された文書のアドレスに基づいて、特定文書のアドレスを検出し、特定文書を取得する。なお、キーワードとして特定文書のアドレスが指定されたときは、検索処理を行わず、直接特定文書を取得する。特定文書に記述される文字列には、配下文書を連結先とする連結情報が付加されている。したがって、特定文書を取得したことにより、配下文書への連結情報も取得される。文書収集手段12は、こうして取得した配下文書への連結情報に基づいて配下文書を収集し、収集した配下文書データを文書記憶手段11aに格納する。一連の処理は、キーワードを用いて検索された文書ごとに行われる。これにより、文書記憶手段11aには、検索された文書に対応する文書群ごとに、この文書群に属する特定文書を含む複数の文書データが格納される。
次に、特徴集計手段13が、文書群ごとに、文書記憶手段11aに格納される文書データに付加されている連結情報を解析し、元の文書と連結先の文書との関係が特徴項目を満たしている数を集計する。配下文書に記述される文字列にも、この文字列に関連する他の文書がある場合には、連結情報が付加されている。特徴集計手段13では、このように各文書に付加されている連結情報も抽出し、この文書と、連結情報によって指定される連結先の文書との関係が検出対象の文書群を特徴付ける特徴項目を満たしているかどうかを解析する。そして、特徴項目ごとに、特徴項目を満たす連結情報の数を集計する。集計結果は、集計情報として集計情報記憶手段11cに格納される。続いて、文書群判定手段14は、特徴ルール記憶手段11bから特徴ルールを読み出す。さらに、集計情報記憶手段11cに格納される集計情報を読み出し、文書群が対象文書群候補であるかどうかを判定する。特徴ルールには、特徴項目ごとの集計結果に基づいて文書が対象文書群の特徴を有していると判定することができるかどうかの基準が定義されている。特徴集計手段13による特徴項目ごとの集計結果を特徴ルールと照合し、判定を行う。このとき、特徴ルールに基づいて、文書群が目的の文書群である確からしさを特徴スコアとして数値化してもよい。特徴ルールが規定する条件を満たしているときは、この文書群を対象文書群候補とし文書群の識別情報を文書群候補記憶手段11dに格納する。このとき、必要であれば、算出された特徴スコア、及び特定文書の連結情報なども文書群候補記憶手段11dに格納する。特徴ルールが規定する条件を満たしていないときは、この文書群を対象文書群候補としない。
利用者からの文書群候補の提示要求があったときは、文書群提示手段15が、文書群候補記憶手段11dに格納される文書群候補の識別情報を読み出し、利用者に提示する。例えば、対象文書群候補の識別情報を表示装置に表示する。このとき、同時に特徴スコアや特定文書の連結情報なども提供するとしてもよい。利用者は、提示された対象文書群候補が目的の文書群であると判断したときは、この対象文書群候補を目的の文書群に指定する。指定を受けた文書群提示手段15は、指定された対象文書群候補を目的の文書群とし、この文書群の識別情報を文書群記憶手段11eに登録する。このとき、文書群の識別情報とともに特定文書の連結情報も文書群記憶手段11eに格納してもよい。
以上の処理が行われることにより、利用者が所望する情報の一例としてキーワードを設定すると、このキーワードを含む文書を有する文書群であって、予め特徴ルールに規定される特徴を有する文書群が自動的に検出され、検出された文書群の一覧が提示される。このように、目的の文書群が自動的に検出されるため、文書群を検出する作業を大幅に軽減することが可能となる。また、定期的に行われるメンテナンスなどの管理作業も容易になる。さらに、特定文書には、所定の用語(文字列)と、その文字列に関連する文書の所在を指示する連結情報と、が含まれており辞書を作成する際には、この文字列と連結情報とをそのまま用いることができる。このように、辞書を容易に作れるという利点もある。
以下、発明を、インターネット上で提供される文書群、一例として辞書サイトを検出する辞書サイト検出システムに適用した場合を例に図面を参照して詳細に説明する。検出された辞書サイトは、オートリンクシステムなどに適用される辞書の候補に用いられる。実施の形態では、閲覧者が検索により取得した文書をWebページ(以下、ページとする)、文書群がページの集合であるWebサイト(以下、サイトとする)になる。サイトは、目次や索引に相当するトップページと、トップページからリンクされる他のページで構成される。また、サイトは、1またはそれ以上のコンピュータによって管理されており、このようなコンピュータ群のインターネット上の識別子がドメインになる。したがって、サイトは、ページのURLに共通するドメインによって識別することができる。また、ページの多くは、HTMLにより記述されている。HTMLでは、アンカーテキストとしてページ中の文字列と他のページとをリンクさせることができる。
図2は、辞書サイト検出システムの構成例を示した図である。
辞書サイト検出システムは、辞書サイトを検出する辞書サイト検出サーバ100と、検索サイト検出の指示を行うユーザのクライアント装置200が、ネットワーク300を介して接続する。
辞書サイト検出サーバ100は、文書群検出装置であり、クライアント装置200からの要求に応じて、ネットワーク上で所定の用語を解説する文書を提供する辞書サイトの候補を検出する。クライアント装置200は、オートリンク辞書を作成する作成者の装置などで、ブラウザ210と、入力手段220とを有する。ブラウザ210は、辞書サイト検出サーバ100から取得したHTML形式の検出結果などを図示しない表示装置に表示させる。入力手段220は、作成者の指示を入力し、辞書サイト検出サーバ100に通知する。ネットワーク300は、例えば、インターネットである。
辞書サイト検出サーバ100の構成を説明する。辞書サイト検出サーバ100は、拡張検索ルール(記憶装置)111、取得サイト(記憶装置)112、リンク特徴データベース(以下、DBとする)113、リンク特徴ルール(記憶装置)114、辞書サイト判定ルール(記憶装置)115、辞書追加ルール(記憶装置)116、辞書候補DB117及び辞書DB118の各記憶装置と、サイト取得部120、リンク情報抽出部130、リンク特徴集計部140、辞書サイト判定部150、辞書エントリ候補作成部160及びユーザ提示部170の各処理手段と、を有する。
拡張検索ルール(記憶装置)111には、検索のため入力されたキーワードを拡張するためのルールを定義した拡張検索ルールが格納される。例えば、「とは」「用語」「解説」など、用語の解説ページによく出現する文字列が、必要に応じて使用条件などとともに定義されている。入力されたキーワードにこのような拡張文字列を付加することにより、より解説ページらしい結果に絞り込んで検索できる。
取得サイト(記憶装置)112は、文書記憶手段11aであり、サイト取得部120が取得したサイトのURLや、収集したページのページデータなどが格納される。
リンク特徴DB113は、集計情報記憶手段11cであり、取得サイトに関し、集計されたサイトの特徴、リンク情報に関連する特徴を表す特徴項目ごとの集計結果が格納される。
リンク特徴ルール(記憶装置)114には、辞書サイトの特徴を表す特徴項目抽出のルールを定義したリンク特徴ルールが格納される。
辞書サイト判定ルール(記憶装置)115には、辞書サイトが有する特徴に基づいて、サイトが辞書サイトであるかどうかを判定するためのルールを提示した辞書サイト判定ルールが格納される。辞書サイト判定ルールには、特徴項目の集計結果を用いて、辞書サイトであるかどうかを判定する条件が定義されている。リンク特徴ルール(記憶装置)114及び辞書サイト判定ルール(記憶装置)115は、特徴ルール記憶手段11bに相当する。
辞書追加ルール(記憶装置)116には、検出された辞書サイト候補を辞書に追加するためのルールを定義した辞書追加ルールが格納される。
辞書候補DB117は、文書群候補記憶手段11dであり、辞書エントリ候補作成部160によって辞書候補と判定されたサイトに関する情報が設定される辞書候補テーブルが格納される。
辞書DB118は、文書群記憶手段11eであり、ユーザによって辞書サイトに登録されたサイトに関する情報が設定される辞書サイトテーブルが格納される。
サイト取得部120は、文書収集手段12であり、キーワードにより検索された文書を含むサイトの文書を収集する。キーワードが入力されると、拡張検索ルール(記憶装置)111に格納される拡張検索ルールを読み出し、拡張検索ルールに従って入力されたキーワードに拡張文字列を付加する。こうして、キーワードを拡張し、拡張されたキーワードを用いてページを検索する。そして、検索されたページからドメイン名を抽出するとともに、トップページ(特定文書)を検出する。トップページは、目次や索引などであり、その項目を表した文字列には関連するページへのリンク情報(連結情報)が付加されている。そこで、トップページのリンク情報に基づいて配下のページを収集する。収集したページデータは、サイトごとに取得サイト(記憶装置)112に格納する。ページデータは、HTMLで記述された文書データである。なお、キーワードとして直接トップページのURLが指定されたときは、トップページ検出までの処理は省略し、その後処理を行う。
リンク情報抽出部130及びリンク特徴集計部140は、特徴集計手段13である。リンク情報抽出部130は、サイト取得部120が取得したページデータを解析し、リンク情報として、アンカーテキスト、アンカーテキストに付加されたリンク先URL及びリンク先のページのタイトルを抽出する。なお、リンク情報の抽出は、サイト取得部120が取得したすべてのページに対して行われ、トップページもその他のページも対象になる。抽出された各情報は、リンク特徴DB113に格納される。リンク特徴集計部140は、リンク特徴ルール(記憶装置)114に格納されるリンク特徴ルールに基づいて、リンク情報抽出部130が抽出したリンク情報を解析する。リンク特徴ルールには、辞書サイトが有する特徴に応じた特徴項目が定義されており、リンク情報を解析し、特徴項目を満たすリンク情報の数を集計する。例えば、リンク特徴ルールが「リンク先が同じサイト内である割合に特徴がある」ということであれば、特徴を解析するため、同じサイトへのリンク数と、すべてのリンク数とを集計する。得られた集計結果は、リンク特徴DB113に格納する。
辞書サイト判定部150及び辞書エントリ候補作成部160は、文書群判定手段14である。辞書サイト判定部150は、辞書サイト判定ルール(記憶装置)115に格納される辞書サイト判定ルールを読み出す。そして、辞書サイト判定ルールと、リンク特徴DB113に格納される特徴項目の集計結果とに基づいて、サイトごとに当該サイトが辞書サイトであるかどうかを判定する。辞書サイトであると判定されたサイトは、辞書候補としてそのURLなどの情報を辞書候補テーブルに登録する。辞書候補テーブルは、辞書候補DB117に格納する。続いて、辞書エントリ候補作成部160は、辞書候補に登録されたサイトについて、辞書エントリ候補を作成する。辞書サイトであれば、アンカーテキストの文字列と、対応するリンク先のページのURLとの関係は、オートリンク辞書に登録される用語とその単語の解説ページのURLと同じになる。そこで、辞書サイトと判定されたサイトについて、アンカーテキストの文字列をリンク先のページのURLとを辞書エントリ候補として抽出し、辞書エントリ候補情報を生成する。このとき、辞書追加ルール(記憶装置)116に格納される辞書追加ルール情報を参照し、辞書エントリ候補の登録を行う。例えば、辞書追加ルール情報に除外キーワードが設定されていれば、このキーワードに相当するエントリは登録しないなどの処理を行う。生成された辞書エントリ候補情報は、対応する辞書サイトに関連付けて、辞書候補DB117に格納する。
ユーザ提示部170は、文書群提示手段15であり、検出された辞書候補のサイトに関する情報をユーザに提示する。そして、ユーザが指定したサイトを辞書サイトに登録し、この辞書サイトに関する情報を辞書サイトテーブルに設定し、辞書DB118に格納する。
ここで、辞書サイト検出サーバのハードウェア構成について説明する。図3は、辞書サイト検出サーバのハードウェア構成例を示すブロック図である。
辞書サイト検出サーバ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス105を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103及び通信インタフェース104が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラムが格納される。通信インタフェース104は、ネットワーク300に接続されており、ネットワーク300を介してクライアント装置200との間でデータの送受信を行う。
このようなハードウェア構成によって、辞書サイト検出サーバ100の処理機能を実現することができる。なお、辞書サイト検出サーバ100への指示は、クライアント装置200の入力手段220より入力された指示がネットワーク300を介して送られてくる。また、検出結果などは、辞書サイト検出サーバ100が生成した表示情報をクライアント装置200に送信し、クライアント装置200によって表示装置に表示される。
次に、検出の対象である辞書サイトの特徴について説明する。図4は、辞書サイトの特徴を説明するための図である。
一般的な辞書サイトは、索引または目次に相当するトップページ500と、トップページ500にエントリされている各用語を解説する解説ページ510,520,530とから成る階層構造を有する。トップページ500は、辞書サイトで解説ページ510,520,530を提供する用語の一覧501をユーザに提供するためのページである。トップページ500に設定されている各用語は、それぞれの解説ページ510,520,530にリンクされている。例えば、用語の一覧501の最上位の「VPN(Virtual Private Network)」は、用語「VPN」を解説する解説ページ(ファイル名はvpn.html)510にリンクされている。同様に、「LAN」は用語「LAN」を解説する解説ページ(ファイル名はLAN.html)520、「RSS(Rich Site Summary)」は用語「RSS」を解説する解説ページ(ファイル名はRSS.html)530、にリンクされている。
「VPN」の解説ページ510は、タイトル「VPNとは IT用語解説:DICDIC」511と、「VPN」を解説する解説文とを有する。また、解説文に他の解説ページで解説される用語が出現するときは、その用語に解説ページへのリンクが設定される。例えば、解説文に出現する「LAN」は、「LAN」の解説ページ520にリンクされている。
他の解説ページも同様である。「LAN」の解説ページ520は、タイトル「LANとは IT用語解説:DICDIC」521と、解説文とを有する。また、解説文の「ネットワーク」522は、図示しない「ネットワーク」の解説ページにリンクされている。「RSS」の解説ページ530は、タイトル「RSSとは IT用語解説:DICDIC」531と、解説文とを有する。そして、解説文の「Webサイト」532は、図示しない「Webサイト」の解説ページにリンクされている。
以上より、辞書サイトは、サイト内に閉じたリンクが高い割合で存在し、かつ、(特徴1)リンク元に指定された文字列(アンカーテキスト)とリンク先ページのタイトルタグ内の文字列(タイトル)とが一致する割合が高い、(特徴2)アンカーテキストとリンク先のファイル名が一致する割合が高い、(特徴3)サイト内の他ページのタイトルと、用語以外の文字列が一致する割合が高い、という特徴を有すると言える。したがって、辞書サイトであれば、サイト単位(図4の例では、トップページ500と、その配下にリンクされる解説ページ510,520,530の集合)で見た場合、上記の特徴1から特徴3のいずれかの特徴に該当するページが高い割合で存在する。ゆえに、サイト内のページのリンク構造を解析し、全体リンク数のうち、サイト内へのリンク数が一定の割合を超え、かつ、上記の特徴1、特徴2、特徴3のいずれか1以上を満たすリンク数の割合が一定値以上であるかどうかを調べることにより、このサイトが辞書サイトであるかどうかを判定することができる。
具体例を挙げて特徴の検出方法を説明する。
特徴1は、アンカーテキストと、リンク先ページのタイトルタグ内のタイトルとが一致するというものである。HTMLでは、リンクの設定に<a>タグを利用し、アンカーテキストを<a href=“・・・”>と<a/>で囲む。“・・・”内は、リンク先を表す。例えば、VPNがアンカーテキストであるとし、<a href=“http://・・・//vpn.html”>VPN<a/>は、文字列「VPN」が、「http://・・・//vpn.html」にリンクされていることを表す。ここで、「http://・・・//vpn.html」のタイトル部分(<title>によって示される文字列)と、アンカーテキスト「VPN」とを照合する。タイトル部分に「VPN」が含まれれば、このリンクは特徴1を満たすと判定される。
特徴2は、アンカーテキストとリンク先のファイル名が一致するというものである。上記のように、リンク先のファイル名は<a href=“・・・”>より抽出することができる。特徴1の例であれば、「http://・・・//vpn.html」のファイル名「vpn.html」が抽出され、アンカーテキスト「VPN」と照合される。一致しているときは、このリンクは特徴2を満たすと判定される。
特徴3は、サイト内の他ページのタイトルと、用語以外の文字列が一致するというものである。他ページのタイトルは、上記の特徴2と同様にして抽出することができる。例えば、<a href=“・・・”>VPN<a/>よりタイトル「VPNとは IT用語解説:DICDIC」、<a href=“・・・”>RSS<a/>よりタイトル「RSSとは IT用語解説:DICDIC」が抽出されたとする。その後、抽出されたタイトル部分の用語を除く文字列が一致しているかどうかを比較する。この例では、「VPN」を除く「とは IT用語解説:DICDIC」と、「RSS」を除く「とは IT用語解説:DICDIC」とを比較する。一致しているときは、このリンクは特徴3を満たすと判定される。
なお、図4の例の辞書サイトは、トップページ500と、解説ページ510,520,530の2階層で構成されているが、本発明はこれに限定されない。例えば、トップページ500と、解説ページ510,520,530との間に分野別索引ページを設ける階層構造の場合であっても、辞書サイトとして有する特徴は同様である。
以下、このような辞書サイトが有する特徴を用いて辞書サイトを検出する辞書サイト検出システムの動作及び辞書サイト検出処理の手順について具体例を用いて説明する。
最初にユーザが設定したキーワードが入力される。サイト取得部120は、キーワードが含まれるページを検索し、トップページを検出する。そして、トップページのリンク情報、トップページからリンクされたページ内のリンク情報に基づいて、トップページからリンクでつながった範囲のページをすべて取得する。このように、ユーザが作成したい分野に関連する語句を設定すれば、その分野の辞書サイトを検出することができる。例えば、「VPN」と設定すれば、IT用語の辞書サイトが検出される。また、「サブプライムローン」と設定すれば、金融用語の辞書サイトが検出される。具体的な処理を説明する。
図5は、キーワードが入力されてからサイトのページ情報を取得するまでの処理の流れを示した図である。
ユーザによってキーワード600が入力される。図5の例では、キーワード600を「VPN」としている。サイト取得部120は、キーワード600が入力されると、拡張検索ルール(記憶装置)111に格納される拡張検索ルールに基づいて、クエリを拡張し、拡張キーワード610を生成する。例えば、拡張語に「とは」、「用語」が設定されていたときは、キーワード600の「VPN」に基づいて、「VPNとは」612及び「VPN 用語」613の2種類の拡張キーワード610が生成される。これにより、より解説ページらしい結果に絞り込んで検索できる。続いて、拡張キーワード610を用いて検索が行われる。「VPNとは」612及び「VPN 用語」613のそれぞれにキーワードを含むページが検索される。図5では、「VPNとは」612について、「VPNとは」を含むページ621,622,623の検索ページ群620が検出されることを示している。それぞれのドメインは、ページ621がhttp://dicdic.com、ページ622がhttp://abc.com、ページ623がhttp://a.co.jpである。他の拡張キーワード613についても同様に検索ページ群が得られるが、説明は省略する。
次に、検索ページ群620のそれぞれのページのトップページを検出し、その文書データを取得する。トップページの検索の方法としては、検索ページ群620のドメインをURLとするページをトップページとして指定する。または、検索ページ群620の各ページ内に「トップページ」を含むアンカーテキストを検索し、そのアンカーテキストのリンク先ページをトップページとして判定する。図5では、ページ621のトップページ630を示している。ここでは、図4に示したトップページ500が検出されるとしている。なお、キーワード600が直接トップページのURLを指定しているときは、トップページの文書データを取得するところから処理を開始する。他のページ622,623も同様にトップページが得られるが、ここでの説明は省略する。
次に、配下の解説ページ群640を収集する。図4で説明したように、トップページ500には配下の解説ページをリンク先とするアンカーテキストが含まれている。そこで、トップページ500に含まれるすべてのアンカーテキストとそのリンク先情報とを抽出し、解説ページを取得するクローリング処理を行う。これにより、トップページ500に記載されたアンカーテキストに対応する解説ページ群640が取得される。図5の例では、解説ページ510のvpn.html、解説ページ520のlan.html及び解説ページ530のrss.htmlを含む解説ページ群640が取得される。
さらに,解説ページ510,520,530内にも他の解説ページへのリンク情報が含まれている場合は、そのリンク先の解説ページも取得する。これにより、解説ページ群640には、トップページからリンクでたどれるページがすべて含まれる。
以上の処理が、拡張キーワード610ごとに検出された検索ページ群620で実行され、それぞれについてトップページ630と、その配下の解説ページ群640が収集される。
こうして検索されたサイトのトップページ630とその配下の解説ページ群640を用いて、このサイトが辞書サイトの特徴を有しているかどうかを判定する。
まず、リンク情報抽出部130が、サイト(共通ドメイン)ごとに、トップページ630及び解説ページ群640のHTML文書ファイルを読み出し、ページ内のリンク情報を抽出する。すなわち、読み出した各ページのHTML文書を解析し、サイトのドメイン、解析を行った処理対象のページのURL、アンカーテキスト、そのリンク先URL、リンク先のページのタイトルを抽出する。そして、URL−タイトルテーブル及びアンカーテキスト−リンク先URLテーブルに登録する。なお、ドメインは、トップページ及びその配下の解説ページで共通であるので、毎回抽出する必要はない。
図6は、URL−タイトルテーブルの一例を示した図である。URL−タイトルテーブルは、リンク特徴DB113に格納される。
URL−タイトルテーブル1131には、ドメイン1131a、URL1131b及びタイトル1131cの各情報項目が登録される。
ドメイン1131aには、サイトを識別する識別子であり、トップページとその配下の解説ページ群のURLに共通して含まれるドメインが登録される。リンク情報抽出部130は、トップページまたは任意の解説ページからドメインを抽出し、ドメイン1131aに登録する。
URL1131bは、HTMLを解析して抽出されるアンカーテキストのリンク先のページのURLが登録される。
タイトル1131cには、URL1131bに格納されるリンク先のページから抽出されたこのページのタイトルが登録される。
図4及び図5で説明したように、例えば、トップページ500の「VPN」は、VPNの解説ページ510にリンクされるアンカーテキストであり、HTMLでは、<a href=“http://dicdic.com/vpn.html”>VPN<a/>」と記述される。ここから、リンク先として「http://dicdic.com/vpn.html」が抽出され、URL1131bに登録される。なお、このとき抽出されたURLが相対パスで記述されているときは、絶対パスに変換された後、URL1131bに登録される。さらに、リンク先の解説ページ510のvpn.htmlを解析し、タイトル(<title>によって示される文字列)を抽出する。図6の例では、「VPN IT用語解説:DICDIC」が抽出され、タイトル1131cに登録される。同様にしてトップページ500に記述されたリンク先ページのURLと、リンク先ページのタイトルが抽出され、URL−タイトルテーブル1131に登録される。トップページ500についての処理終了後、同様の処理を解説ページ群640の各ページについて行う。このとき、URL−タイトルテーブル1131に同じものが既に登録されていたときは、登録を行わない。
こうして、リンク情報抽出部130によって、サイトごとに、ページに出現したリンク先のURLと、そのリンク先のページのタイトルとが抽出され、URL−タイトルテーブル1131に登録される。
図7は、アンカーテキスト−リンク先URLテーブルの一例を示した図である。アンカーテキスト−リンク先URLテーブルは、リンク特徴DB113に格納される。
アンカーテキスト−リンク先URLテーブル1132には、ドメイン1132a、処理対象URL1132b、アンカーテキスト1132c及びリンク先URL1132dの各情報項目が登録される。
ドメイン1132aは、図6のドメイン1131aと同様である。
処理対象URL1132bには、HTMLの解析を行った処理対象のページのURLが登録される。
アンカーテキスト1132cには、処理対象URL1132bに登録されるページから抽出されたアンカーテキストが登録される。
リンク先URL1132dには、アンカーテキスト1132cに対応するリンク先のページのURLが登録される。
図6と同様に、例えば、トップページ500の解析を行う際には、処理対象URL1132bには、トップページ500のURL(ここでは、http://dicdic.com/index.html)が登録される。そして、「VPN」の解説ページ510がリンクされるアンカーテキスト「VPN」がアンカーテキスト1132cに登録される。また、図6と同様にして、リンク先「http://dicdic.com/vpn.html」が抽出され、リンク先URL1132dに登録される。
トップページ500についての処理終了後、同様の処理を解説ページ群640の各ページについて行う。このとき、アンカーテキスト−リンク先URLテーブル1132に同じものが既に登録されていたときは、登録を行わない。
こうして、リンク情報抽出部130によって、サイトごとに、アンカーテキストを抽出した処理対象のページのURL、アンカーテキスト、及びリンク先のURLが抽出され、アンカーテキスト−リンク先URLテーブル1132に登録される。
次に、リンク特徴集計部140は、リンク情報抽出部130によって設定されたURL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132に基づいて特徴項目を集計する。上述のように、サイトが辞書サイトであれば、サイト内に閉じたリンクが高い割合で存在し、かつ、特徴1、特徴2、特徴3のいずれか1以上の特徴を満たすリンク数の割合が一定値以上ある。リンク特徴集計部140では、これらの特徴を検出するため、以下の特徴項目を集計する。まず、サイト内に閉じたリンクの割合を検出するため、全リンク数と、サイト内に閉じたリンク(内部リンクとする)数とを集計する。さらに、特徴1の特徴項目として、リンク元のアンカーテキストとリンク先ページのタイトルタグ内の文字列(タイトル)とが一致するリンクの数を集計する。特徴2の特徴項目として、アンカーテキストとリンク先のファイル名が一致するリンクの数を集計する。そして、特徴3の特徴項目として、サイト内の他ページのタイトルと、用語以外の文字列が一致するタイトルを検出し、このタイトルが出現した数を集計する。
図8は、特徴1による集計情報の一例を示した図である。(A)は、特徴1カウンタテーブル、(B)は特徴1エントリテーブルである。どちらも、リンク特徴DB113に格納される。特徴1による集計情報は、URL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132を解析し、特徴1に合致するリンク数を集計して取得する。
(A)特徴1カウンタテーブル1133は、処理対象URL(ドメイン)1133a、全リンクカウンタ1133b、内部リンクカウンタ1133c及び特徴1カウンタ1133dの各情報項目を有する。
処理対象URL(ドメイン)1133aには、処理対象のサイトのURLが登録される。アンカーテキスト−リンク先URLテーブル1132のドメイン1132aから読み出されたURLが登録される。対応するカウンタは、このサイトごとに集計された値である。
全リンクカウンタ1133bには、サイトごとに検出されたリンク情報の集計値が登録される。集計されるリンク情報は、サイト内部のページをリンク先とするものも、サイト外部のページをリンク先とするものも含まれる。具体的には、アンカーテキスト−リンク先URLテーブル1132のドメイン1132aが、対象のサイトのドメインと一致するリンク先URL1132dに登録されたリンク情報の総数がカウントされる。
内部リンクカウンタ1133cには、サイトごとに検出されたリンク情報のうち、サイト内部のページをリンク先とするリンク情報の集計値が登録される。対象のサイトのドメインとドメイン1132aが一致し、リンク先URL1132dのドメイン部分がドメイン1132aのドメイン名と一致するリンク情報の数がカウントされる。
特徴1カウンタ1133dには、サイトごとに、アンカーテキストと、リンク先URLのページのタイトルとが一致するリンク情報の集計値が登録される。アンカーテキスト−リンク先URLテーブル1132のアンカーテキスト1132cから読み出したアンカーテキストに対応するリンク先URL1132dを抽出する。そして、抽出されたリンク先URLと一致するURLをURL−タイトルテーブル1131から検出する。一致したURLに対応するタイトル1131cからこのURLのタイトルを抽出し、最初にアンカーテキスト1132cから読み出したアンカーテキストと照合する。一致すれば、特徴1カウンタ1133dをインクリメントする。このとき、リンク先URL1132dと一致するURLがURL1131bで検出されないときは、URLに含まれる「index.html」の有無や、「#」、「?」の有無などを変えて調整し、該当するURLを検出する。
(B)特徴1エントリテーブル1134は、処理対象URL(ドメイン)1134a、単語1134b、及びURL1134cの各情報項目を有する。
処理対象URL(ドメイン)1134aには、特徴1カウンタテーブル1133と同様に、処理対象のサイトのURLが登録される。単語1134bには、特徴1の条件を満たすアンカーテキストが登録される。URL1134cには、特徴1の条件を満たしたURLがアンカーテキストに対応付けて登録される。リンク特徴集計部140がアンカーテキストと、リンク先URLのタイトルとを照合し、一致していると判定したとき、そのアンカーテキストが単語1134b、リンク先URLがURL1134cに格納される。すなわち、特徴1カウンタテーブル1133の特徴1カウンタ1133dを1増加させるとき、特徴1を満たしていると判定されたアンカーテキストとリンク先URLが登録される。処理対象URL(ドメイン)1134aには、処理対象のサイトのドメインが登録される。
図9は、特徴2による集計情報の一例を示した図である。(C)は、特徴2カウンタテーブル、(D)は特徴2エントリテーブルである。どちらも、リンク特徴DB113に格納される。
(C)特徴2カウンタテーブル1135は、処理対象URL(ドメイン)1135a、全リンクカウンタ1135b、内部リンクカウンタ1135c及び特徴2カウンタ1135dの各情報項目を有する。
処理対象URL(ドメイン)1135aには、処理対象のサイトのURLが登録される。全リンクカウンタ1135bには、サイトごとに検出されたリンク情報の集計値が登録される。内部リンクカウンタ1135cには、サイトごとに検出されたリンク情報のうち、サイト内部のページをリンク先とするリンク情報の集計値が登録される。処理対象URL(ドメイン)1135a、全リンクカウンタ1135b及び内部リンクカウンタ1135cは、特徴1カウンタテーブル1133の同じ名の情報項目と同様であるので、詳細な説明は省略する。
特徴2カウンタ1135dには、サイトごとに、アンカーテキストと、リンク先URLのページのファイル名とが一致するリンク情報の集計値が登録される。アンカーテキスト−リンク先URLテーブル1132のアンカーテキスト1132cと、対応するリンク先URL1132dとを読み出す。そして、読み出したアンカーテキストをURLエンコードし、得られた文字列と、読み出したリンク先URLに含まれるリンク先のファイル名とを照合する。一致すれば、特徴2カウンタ1135dをインクリメントする。
(D)特徴2エントリテーブル1136は、処理対象URL(ドメイン)1136a、単語1136b、及びURL1136cの各情報項目を有する。
処理対象URL(ドメイン)1136aには、特徴2カウンタテーブル1135と同様に、処理対象のサイトのURLが登録される。単語1136bには、特徴2の条件を満たすアンカーテキストが登録される。URL1136cには、特徴1の条件を満たしたURLがアンカーテキストに対応付けて登録される。満たす条件が特徴1ではなく特徴2であるという点を除いて、処理は特徴1の場合と同様である。すなわち、特徴2カウンタテーブル1135の特徴2カウンタ1135dを1増加させるとき、特徴2を満たしていると判定されたアンカーテキストとリンク先URLが登録される。
図10は、特徴3による集計情報の一例を示した図である。(E)は、特徴3カウンタテーブル、(F)は共通タイトルテーブル、(G)は特徴3エントリテーブルである。すべてリンク特徴DB113に格納される。
(E)特徴3カウンタテーブル1137は、処理対象URL(ドメイン)1137a、全リンクカウンタ1137b、内部リンクカウンタ1137c、特徴3カウンタ1137d及び共通タイトル1137eの各情報項目を有する。
処理対象URL(ドメイン)1137aには、処理対象のサイトのURLが登録される。全リンクカウンタ1137bには、サイトごとに検出されたリンク情報の集計値が登録される。内部リンクカウンタ1137cには、サイトごとに検出されたリンク情報のうち、サイト内部のページをリンク先とするリンク情報の集計値が登録される。処理対象URL(ドメイン)1137a、全リンクカウンタ1137b及び内部リンクカウンタ1137cは、特徴1カウンタテーブル1133の同じ名の情報項目と同様であるので、詳細な説明は省略する。
特徴3カウンタ1137dには、サイトごとに、アンカーテキストを除いたリンク先のURLのページのタイトルが共通するリンク情報の集計値が登録される。また、共通タイトル1137には、そのタイトルが登録される。リンク特徴集計部140は、URL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132を解析し、共通タイトルテーブルを作成する。そこで共通タイトルテーブル1138に登録された共通タイトルのうち、最もリンク情報の数が多かったものが登録される。また、その共通タイトルは、共通タイトル1137eに登録される。
(F)共通タイトルテーブル1138は、処理対象URL(ドメイン)1138a、共通タイトル1138b及びカウンタ1138cの各情報項目を有する。
処理対象URL(ドメイン)1138aには、処理対象のサイトのURLが登録される。共通タイトル1138bには、抽出されたリンク先URLの共通タイトルが登録される。そして、カウンタ1138cには、共通タイトルが出現したリンク情報の集計値が登録される。
アンカーテキスト−リンク先URLテーブル1132のアンカーテキスト1132cに対応するリンク先URL1132dと一致するURLをURL−タイトルテーブル1131から検出する。一致したURL1131bに対応するURLでURL−タイトルテーブル1131のURL1131bに対応するタイトル1131cを抽出し、最初に読み出したアンカーテキスト1132cを除いた文字列を抽出する。この文字列が共通タイトルテーブルの共通タイトル1138bに登録されていれば、対応するカウンタ1138cをインクリメントする。共通タイトル1138bに登録されていないときは、共通タイトルテーブル1138に新たなレコードを追加し、登録する。
(G)特徴3エントリテーブル1139は、処理対象URL(ドメイン)1139a、単語1139b、URL1139c及び共通タイトル1139dの各情報項目を有する。
処理対象URL(ドメイン)1139aには、特徴3カウンタテーブル1137と同様に、処理対象のサイトのURLが登録される。単語1139bには、特徴3の条件を満たすアンカーテキストが登録される。URL1139cには、特徴3の条件を満たしたURLがアンカーテキストに対応付けて登録される。共通タイトル1139dには、対応するタイトルが登録される。
このように、リンク特徴集計部140によって、抽出されたリンク情報を登録したURL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132が解析される。そして、全リンクカウンタ及び内部リンクカウンタとともに、辞書サイトの特徴を満たすリンク数である特徴1カウンタ、特徴2カウンタ、特徴3カウンタとが集計され、それぞれの要件を満たすエントリ候補テーブルが作成される。特徴1については、特徴1カウンタテーブル1133及び特徴1エントリテーブル1134が生成される。特徴2については、特徴2カウンタテーブル1135及び特徴2エントリテーブル1136が生成される。特徴3については、特徴3カウンタテーブル1137及び特徴3エントリテーブル1139が生成される。なお、集計は、予め指定された特徴についてのみ行われる。
辞書サイト判定部150は、集計された特徴1カウンタテーブル1133、特徴2カウンタテーブル1135及び特徴3カウンタテーブル1137を用いて、辞書サイト判定ルールに基づき、処理対象URL(ドメイン)が、辞書サイトであるかどうかを判定する。辞書サイト判定ルールは、辞書サイト判定ルール(記憶装置)115に格納されているのを読み出して適用する。
例えば、辞書サイト判定ルールが、「全体リンク数のうち、サイト内リンクが9割以上、かつ特徴1を満たすリンク数の割合が9割以上」というものであった場合で説明する。この場合は、特徴1カウンタテーブル1133を参照してサイト内リンクの割合及び特徴(1)を満たすリンクの割合を算出する。
サイト内リンクの割合は、全リンクに占める内部リンクの割合であるので、内部リンク数/全リンク数で求めることができる。例えば、処理対象URLが「http://dicdic/com/」の場合、全リンクカウンタ1133bは「110」、内部リンクカウンタ1133cは「101」であるので、内部リンクの割合は、Rは、
R= 101/110(=0.9181)
と、算出することができる。また、特徴1を満たすリンク数の割合R1は、
R1= 100/101(=0.99)
と、算出される。判定ルールが上記の場合、Bの値が辞書らしさスコアになる。
さらに、特徴を組み合わせて判定ルールとすることができる。例えば、「全体リンク数のうち、サイト内リンクが9割以上、かつ、特徴1を満たすリンク数の割合が9割以上、もしくは特徴2を満たすリンク数の割合が9割以上、かつ特徴3を満たすリンク数の割合が9割以上」というものであった場合で説明する。
この場合、上記と同様にして、特徴1カウンタテーブル1133、特徴2カウンタテーブル1135、または特徴3カウンタテーブル1137から、該当するURLの全リンクカウンタと内部リンクカウンタの値を抽出し、内部リンクの割合(R)を算出する。また、特徴1カウンタテーブル1133の特徴1カウンタ1133dと内部リンクカウンタ1133cから特徴1を満たすリンク数の割合(R1)を算出する。特徴2カウンタテーブル1135の特徴2カウンタ1135dと内部リンクカウンタ1135cから特徴2を満たすリンク数の割合(R2)を算出する。そして、特徴3カウンタテーブル1137の特徴3カウンタ1137dと内部リンクカウンタ1137cから特徴3を満たすリンク数の割合(R3)を算出する。そして、算出されたR,R1,R2,R3でルールが成立するかどうかを判定する。ルールが成立すれば、このサイトは辞書サイトと判定することができる。辞書サイトと判定されたサイトは、辞書候補テーブルに登録される。
また、特徴ごとのリンク数の割合を重み付けし、スコアを算出するとしてもよい。特徴1の重み付け係数α、特徴2の重み付け係数β、特徴3の重み付け係数γとして、スコアSは、
S= αR1 + βR2 + γR3 ・・・(1)
によって、算出することができる。
図11は、辞書候補テーブルとそのエントリ候補テーブルの一例を示した図である。(H)は辞書候補テーブル、(I)はエントリ候補テーブルの一例である。どちらも辞書候補DB117に格納される。
(H)辞書候補テーブル1171は、サイトURL(ドメイン)1171a及びスコア1171bの各情報項目を有する。
サイトURL(ドメイン)1171aには、辞書候補であると判定された対象のサイトのURLが登録される。
スコア1171bには、式(1)によって算出された辞書らしさスコアが格納される。
(I)エントリ候補テーブル1172は、処理対象URL(ドメイン)1172a、単語1172b及びURL1172cの各情報項目を有する。
処理対象URL(ドメイン)1172aには、辞書候補であると判定された対象のサイトのURLが登録される。単語1172bには、このサイトについて作成された特徴1エントリテーブル1134、特徴2エントリテーブル1136及び特徴3エントリテーブル1139のいずれかに登録される単語が設定される。URLには、同様にいずれかのURLが設定される。
なお、辞書候補及びエントリ候補の登録の際には、辞書追加ルール(記憶装置)116に格納される辞書追加ルールに基づいて処理を行う。例えば、辞書候補と判定されたURLが、辞書追加ルールで登録が禁止されるURLと同じであれば、辞書候補への登録は行わない。また、エントリ候補の登録であれば、除外キーワードなどが設定されていた場合、除外キーワードと一致するアンカーテキストは、エントリ候補テーブル1172に登録しない。
こうして辞書候補が決定された後、ユーザからの表示要求があれば、ユーザ提示部170は、クライアント装置200の表示部に表示させる。
図12は、辞書サイト候補一覧画面の一例を示した図である。
辞書サイト候補一覧画面2100は、クライアント装置200に接続する表示装置に表示される。辞書サイト候補一覧画面2100には、辞書サイト候補を示した辞書サイト候補一覧表2101、詳細エントリ選択ボタン2102、NGサイト登録ボタン2103及び辞書サイト登録ボタン2104などが表示される。
辞書サイト候補一覧画面2100は、チェック欄2101a、識別番号2101b、URL2101c、エントリ例2101d及びスコア2101eが、辞書候補テーブル1171及びエントリ候補テーブル1172に基づいて表示される。
チェック欄2101aは、辞書サイトとして登録するサイト、もしくはNGサイトとして登録するサイトを選択するための欄である。チェックされたサイトが処理の対象となる。識別番号2101bは、辞書サイト候補に順に振られた番号である。URL2101cは、サイトのURLで、辞書候補テーブル1171のサイトURL1171aに基づいて表示される。エントリ例2101dは、この辞書サイト候補で参照可能なエントリの例であり、エントリ候補テーブル1172の該当するサイトのURL1172cから任意の語句が選択され、そのURLが表示される。ここは、対応する単語1172bからアンカーテキストが選択され、表示されてもよい。スコア2101eには、このサイトの辞書らしさスコアが、辞書候補テーブル1171のスコア1171bから抽出され、表示されている。
詳細エントリ選択ボタン2102は、サイトごとに用意される。例えば、No.1の辞書サイト候補の詳細エントリ選択ボタン2102を操作すると、詳細エントリ選択画面2110が開かれ、No.1の辞書サイト候補に対応するエントリ候補一覧2111が表示される。エントリ候補一覧2111には、選択された辞書サイト候補のエントリ候補テーブル1172の登録が抽出され、表示される。チェック欄2111aは、このエントリを登録するか否か選択するための欄である。識別番号2111bは、各エントリ候補に順に振られた番号である。URL2101cには、選択された辞書サイト候補のエントリ候補テーブル1172の単語1172bに登録されるアンカーテキストが、URL1172cのリンク情報を付加した状態で表示される。
ユーザは、辞書サイト候補一覧画面2100を表示し、辞書サイトを選択する。このとき、必要であれば、詳細エントリ選択画面2110を表示して、エントリ候補の内容を確認することができる。このとき、エントリ候補とするか否かも選択することができる。そして、辞書サイトに登録したい候補があれば、チェック欄2101aをチェックし、「辞書サイトに登録」と記述された辞書サイト登録ボタン2104を操作する。これにより、選択された辞書サイト候補とエントリ候補が、辞書として辞書サイトテーブルに登録され、辞書DB118に格納される。また、辞書サイトとして登録したくないときは、「NGサイトに登録」と記述されたNGサイト登録ボタン2103を操作する。これにより、この辞書サイトが辞書サイト候補から削除される。このとき、今後このサイトを辞書サイト候補としないように、辞書追加ルールにNGサイトとして登録し、辞書追加ルール(記憶装置)116に格納するとしてもよい。
このように、ユーザが例となる単語をキーワードとして設定すると、そのジャンルの辞書サイトが自動で検出され、同時に辞書のエントリ(用語と解説ページのURLのペア)が抽出される。ユーザは、これを辞書サイト候補一覧画面2100で確認し、辞書として用いるかどうかを決めるだけでよいので、簡単に辞書追加ができる。また、定期的に実行させれば、辞書のメンテナンスも容易になる。
以下、上記の辞書サイト検出システムにおける辞書サイト検出方法の処理手順について、フローチャートを用いて説明する。
図13は、辞書サイト検出方法の全体の処理手順を示したフローチャートである。このフローチャートは、キーワードが入力されてから辞書サイト候補の提示までの処理手順を示している。ユーザが設定したキーワードが入力され、処理が開始される。
[ステップS01] サイト取得部120が、入力されたキーワードに基づいて、このキーワードが含まれるページを有するサイトを検索する。検索されたサイトについて、トップページと、トップページにリンクされる他のページを取得するサイト取得処理を行う。取得されたページ群は、サイトごとに取得サイト(記憶装置)112に格納される。サイト取得処理の詳細は後述する。
[ステップS02] リンク情報抽出部130が、ステップS01のサイト取得処理によって取得サイト(記憶装置)112に格納されたサイトから1つを候補サイトに選択し、そのページ群を解析する。そして、ページからリンク情報を抽出し、URL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132に登録する。リンク情報抽出処理の詳細は後述する。
[ステップS03] リンク特徴集計部140が、URL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132を解析する。そして、リンク情報に、辞書サイト特有の特徴を示す特徴項目が検出された数を集計する。そして、特徴ごとに集計情報と、エントリテーブルとを生成する。リンク特徴集計処理の詳細は後述する。
[ステップS04] 辞書サイト判定部150が、辞書サイト判定ルール115(記憶装置)に記憶される辞書サイト判定ルールに基づいて、集計情報から辞書らしさスコアを算出する。そして辞書らしさスコアが所定値以上のサイトを辞書サイト候補と判定する。辞書サイト判定処理の詳細は後述する。
[ステップS05] ステップS04の辞書サイト判定処理により、このサイトが辞書サイトと判定されたかどうかをチェックする。辞書サイトと判定されたときは、処理をステップS06に進める。辞書サイトと判定されなかったときは、処理をステップS07に進める。
[ステップS06] 辞書サイトと判定されたときは、途中抽出されたエントリテーブルに基づいて、辞書エントリ候補を作成する。辞書エントリ候補作成処理の詳細は後述する。
[ステップS07] キーワードによって検出された全候補サイトの処理が終了したかどうかを判定する。全候補サイトの処理が終了したときは、処理をステップS08に進める。全候補サイトの処理が終了していないときは、ステップS02に戻って、次の候補サイトの処理を行う。
[ステップS08] 全候補サイトの処理が終了したときは、辞書サイト候補に登録されたサイトと、そのエントリとをユーザに提示する処理を行う。ユーザ提示処理の詳細は後述する。
以上の処理手順が実行されることにより、入力されたキーワードに基づいて所望のジャンルの辞書サイトの可能性があるサイトが検出され、そのサイト内にページ間のリンク情報に基づきそのサイトが辞書サイトとしての特徴を有しているかどうかが判定される。そして、辞書サイト候補と判定されたときは、そのサイトがユーザに提示される。また、このとき同時に、リンク情報からオートリンク辞書の作成に必要な辞書エントリ候補も生成される。これにより、ユーザは、所望のジャンルに関連するキーワードを設定するだけで、簡単に所望のジャンルの辞書サイトを検出することができる。また、辞書のエントリ(単語とその解説ページのURLとを対応付けた情報)も同時に得ることができるため、オートリンク辞書の作成が容易になる。
以下、各処理の詳細を説明する。
図14は、サイト取得処理の手順を示したフローチャートである。
キーワードが入力されて処理が開始される。
[ステップS11] 拡張検索ルール(記憶装置)111に格納される拡張検索ルールを読み出し、キーワードを拡張検索ルールに基づき変化させ、クエリを拡張する。
[ステップS12] ステップS11で作成されたクエリを用いて検索を行う。これにより、キーワードを含むページが検出される。なお、検索では、複数のキーワードを受け付け、それぞれの検索結果のANDをとるなどしてもよい。
[ステップS13] ステップS12で検索されたページの1つを選択し、そのトップページを検出する。検出したトップページは、取得サイト(記憶装置)112に格納する。
[ステップS14] ステップS13で検出されたトップページに記述されるリンク情報を抽出する。
[ステップS15] ステップS14で検出されたリンク情報に基づき、リンクされる配下の解説ページを取得する。取得した解説ページは、取得サイト(記憶装置)112に格納する。
[ステップS16] ステップS15で取得した解説ページ内に記述されるリンク情報を抽出する。
[ステップS17] ステップ14およびステップS16で抽出したリンク情報に基づき,トップページからリンクでたどれるすべての解説ページが収集されたかどうかを判定する。収集されたときは、処理をステップS17に進める。すべて収集し終わっていないときは、処理をステップS15に戻し、次の解説ページを収集する。
[ステップS18] ステップS12で検索された全検索ページについて処理が終了したかどうかを判定する。終了していないときは、ステップS13に戻って、検索結果の次のサイトを取得する処理を行う。終了したときは、サイト取得処理を終了する。
以上の処理手順が実行されることにより、キーワードに基づいて検索されたページが属するサイトのトップページと、トップページにリンクされる配下のページが収集され、取得サイト(記憶装置)112に格納される。
図15は、リンク情報抽出処理の手順を示したフローチャートである。
サイト取得処理(ステップS01)によって取得サイト(記憶装置)112に格納された1つのサイトを候補サイトとし、そのページ群(トップページと解説ページ群)を読み出し、処理を開始する。
[ステップS21] 候補サイトのドメイン名を抽出する。例えば、トップページのURLからドメイン名を抽出する。抽出されたドメイン名は、他の情報項目登録時に、URL−タイトルテーブル1131のドメイン1131a及びアンカーテキスト−リンク先URLテーブル1132のドメイン1132aに格納される。
[ステップS22] 候補サイトのページ群から未処理のページを1ページ取り出す。処理対象のページは、トップページ、解説ページのどちらも含む。
[ステップS23] 取り出したページのHTMLの解析を行う。また、取り出したページのURLをアンカーテキスト−リンク先URLテーブル1132の処理対象URL1132bに格納する。
[ステップS24] ページ内のリンク情報Aを抽出し、URL−タイトルテーブル1131に登録する。処理の詳細は、後述する。
[ステップS25] ページ内のリンク情報Bを抽出し、アンカーテキスト−リンク先URLテーブル1132に登録する。処理の詳細は、後述する。
[ステップS26] 候補サイトに属する全ページの処理が終了したかどうかを判定する。終了していないときは、ステップS22に戻って、次のページの処理を行う。終了したときは、リンク情報抽出処理を終了する。
図16は、リンク情報A抽出処理の手順を示したフローチャートである。
リンク情報A(リンク先のページのURLとそのページのタイトル)を抽出し、URL−タイトルテーブル1131に登録する処理を行う。
[ステップS241] 処理対象のページから未処理のリンク情報を1つ抽出する。
[ステップS242] リンク先URLの指定情報を抽出し、URLが相対パスであれば、処理対象のページのファイル位置からリンク先のページのURLを絶対パスに変換する。リンク先URLは、処理対象のページからの相対パスで記載されている場合があるため、このような相対パスを絶対パスに変換する。
[ステップS243] ステップS242で抽出されたリンク先URLのページを取得し、HTMLを解析して、タイトルを抽出する。
[ステップS244] ステップS242で絶対パスに変換したリンク先のページのURLをURL−タイトルテーブル1131のURL1131bに登録する。また、ステップS243で抽出されたリンク先のページのタイトルを先に登録したURLに対応付けてタイトル1131cに登録する。前段で抽出されたドメイン名もドメイン1131aに登録する。URL−タイトルテーブル1131は、リンク特徴DB113に格納する。
[ステップS245] 処理対象のページの最後のリンク情報であるかどうかを判定する。最後のリンク情報でないときは、ステップS241に戻って次のリンク情報の処理を行う。最後のリンク情報であれば、リンク情報A抽出処理を終了する。
以上の処理手順が実行されることにより、処理対象のページのリンク情報に記述されるリンク先のURLと、リンク先のページのタイトルとが、URL−タイトルテーブル1131に登録される。
図17は、リンク情報B抽出処理の手順を示したフローチャートである。
リンク情報B(処理対象のページのURL、アンカーテキスト及びリンク先のページのURL)を抽出し、アンカーテキスト−リンク先URLテーブル1132に登録する処理を行う。
[ステップS251] 処理対象のページから未処理のリンク情報を1つ抽出する。
[ステップS252] リンク情報から、アンカーテキストと、リンク先URLとを抽出する。
[ステップS253] ステップS252で抽出されたリンク先URLが相対パスであるかどうかを判定する。相対パスであれば、処理をステップS254に進める。相対パスでなければ、処理をステップS255に進める。
[ステップS254] リンク先URLが相対パスであったときは、処理対象のページのファイル位置からリンク先のページのURLを絶対パスに変換する。
[ステップS255] ステップS252で抽出されたアンカーテキストを、アンカーテキスト−リンク先URL1132のアンカーテキスト1132cに登録する。また、リンク先URL(絶対パス)も、アンカーテキストに対応付けて、リンク先URL1132dに登録する。前段で抽出されたドメイン名はドメイン1132a、処理対象のページのURLは処理対象URL1132bに登録する。アンカーテキスト−リンク先URL1132は、リンク特徴DB113に格納される。
[ステップS256] 処理対象のページの最後のリンク情報であるかどうかを判定する。最後のリンク情報でないときは、ステップS251に戻って次のリンク情報の処理を行う。最後のリンク情報であれば、リンク情報(特徴2)抽出処理を終了する。
以上の処理手順が実行されることにより、処理対象のページのリンク情報に記述されるアンカーテキストと、リンク先URLとが、アンカーテキスト−リンク先テーブル1132に登録される。
図18は、リンク特徴集計処理の手順を示したフローチャートである。
URL−タイトルテーブル1131及びアンカーテキスト−リンク先URLテーブル1132を用いて、特徴ごとのデータ集計を行う。
[ステップS31] リンク特徴ルール(記憶装置)114からリンク特徴ルールを読み出す。リンク特徴ルールに基づいて、特徴1の分析を行うか否かを判定する。分析を行うときは、処理をステップS32に進める。分析を行わないときは、処理をステップS33に進める。
[ステップS32] 特徴1の分析を行うと判定されたときは、特徴1に応じた分析を行い、特徴を満たすリンクの数を集計する。特徴1分析処理の詳細は後述する。
[ステップS33] リンク特徴ルールに基づいて、特徴2の分析を行うか否かを判定する。分析を行うときは、処理をステップS34に進める。分析を行わないときは、処理をステップS35に進める。
[ステップS34] 特徴2の分析を行うと判定されたときは、特徴2に応じた分析を行い、特徴を満たすリンクの数を集計する。特徴2分析処理の詳細は後述する。
[ステップS35] リンク特徴ルールに基づいて、特徴3の分析を行うか否かを判定する。分析を行うときは、処理をステップS36に進める。分析を行わないときは、リンク特徴集計処理を終了する。
[ステップS36] 特徴3の分析を行うと判定されたときは、特徴3に応じた分析を行い、特徴を満たすリンクの数を集計する。特徴3分析処理の詳細は後述する。特徴3分析処理の終了後、リンク特徴集計処理を終了する。
以上の処理手順が実行されることにより、特徴1、特徴2、特徴3のうち、任意の特徴を用いて辞書サイトの判定を行うことができる。
図19は、特徴1分析処理の手順を示したフローチャートである。
特徴1分析処理では、特徴1に基づき、リンク元のアンカーテキストとリンク先ページのタイトルタグ内の文字列(タイトル)とが一致するリンクの数を特徴1カウンタとして集計する。
[ステップS321] アンカーテキスト−リンク先URLテーブル1132から1行読み出す。ドメイン、処理対象URL、アンカーテキスト及びリンク先URLが読み出される。
[ステップS322] ステップS321で読み出したドメインに該当する特徴1カウンタテーブル1133の全リンクカウンタ1133bを1増やして格納する。特徴1カウンタテーブル1133のドメイン1133aに該当するドメインが設定されていなかったときは、新たにレコードを作成し、対応する全リンクカウンタ1133bに1を設定する。
[ステップS323] ステップS321で読み出したリンク先URLは、自サイト内のリンクであるかどうかを判定する。自サイト内のリンクであれば、処理をステップS324に進める。自サイト内のリンクでなければ、処理をステップS329に進める。
[ステップS324] ステップS321で読み出したドメインに該当する特徴1カウンタテーブル1133の内部リンクカウンタ1133cを1増やして格納する。
[ステップS325] URL−タイトルテーブル1131のURL1131bを検索し、ステップS321で読み出したリンク先URLと同じURLが登録される行を検出する。そして、検出されたURLに対応するタイトル1131cからタイトルを取り出す。
[ステップS326] ステップS321で読み出したアンカーテキストが、ステップS325で取り出したタイトルの中に含まれているかどうかを判定する。アンカーテキストがタイトルに含まれているときは、処理をステップS327に進める。含まれていないときは、処理をステップS329に進める。
[ステップS327] アンカーテキストがタイトルに含まれているときは、特徴1カウンタテーブル1133の該当するドメインの行の特徴1カウンタ1133dを1増やして格納する。
[ステップS328] 特徴1エントリテーブル1134にアンカーテキストがタイトルに含まれているリンク情報をエントリする。処理対象のページのURLは、処理対象URL(ドメイン)1134a、アンカーテキストは単語1134b、そしてリンク先URLはURL1134cに登録する。
[ステップS329] アンカーテキスト−リンク先URLテーブル1132の処理対象URL1132bに、未処理のURLが残っているかどうかを判定する。残っていれば、処理をステップS321に戻し、次の処理対象URLについて処理を行う。残っていなければ、特徴1分析処理を終了する。
以上の処理手順が実行されることにより、全リンクカウンタ、内部リンクカウンタ及び特徴1を満たしたリンクの数を集計した特徴1カウンタが得られる。集計結果は、処理対象のサイトのドメインに対応付けて、特徴1カウンタテーブル1133に登録される。また、このとき同時に、特徴1の要件を満たすアンカーテキストとリンク先URLとを対応付けた特徴1エントリテーブル1134も生成される。
図20は、特徴2分析処理の手順を示したフローチャートである。
特徴2分析処理では、特徴2に基づき、リンク元のアンカーテキストとリンク先ページのファイル名とが一致するリンクの数を特徴2カウンタとして集計する。
[ステップS341] アンカーテキスト−リンク先URLテーブル1132から1行読み出す。ドメイン、処理対象URL、アンカーテキスト及びリンク先URLが読み出される。
[ステップS342] ステップS341で読み出したドメインに該当する特徴2カウンタテーブル1135の全リンクカウンタ1135bを1増やして格納する。特徴2カウンタテーブル1135のドメイン1135aに該当するドメインが設定されていなかったときは、新たにレコードを作成し、対応する全リンクカウンタ1135bに1を設定する。
[ステップS343] ステップS341で読み出したリンク先URLは、自サイト内のリンクであるかどうかを判定する。自サイト内のリンクであれば、処理をステップS344に進める。自サイト内のリンクでなければ、処理をステップS346に進める。
[ステップS344] ステップS341で読み出したドメインに該当する特徴2カウンタテーブル1135の内部リンクカウンタ1135cを1増やして格納する。
[ステップS345] ステップS341で読み出したアンカーテキストをURLエンコードする。一般に、URLとして使用できない記号や全角文字などは、URLに組み込む際にURLエンコード処理され、「%E3」などの半角文字の組み合わせに変換される。このため、リンク先URLに含まれるファイル名とアンカーテキストとを照合する際には、アンカーテキストをURLエンコード処理しておく必要がある。
[ステップS346] ステップS345でURLエンコード処理されたアンカーテキストと、ステップS341で読み出したリンク先URLに含まれるファイル名とを照合する。アンカーテキストとファイル名が一致するときは、処理をステップS347に進める。一致しないときは、処理をステップS349に進める。
[ステップS347] アンカーテキストとファイル名とが一致するときは、特徴2カウンタテーブル1135の該当するドメインの行の特徴2カウンタ1135dを1増やして格納する。
[ステップS348] 特徴2エントリテーブル1135にアンカーテキストがタイトルに含まれているリンク情報をエントリする。処理対象のページのURLは、処理対象URL(ドメイン)1135a、アンカーテキストは単語1135b、そしてリンク先URLはURL1135cに登録する。
[ステップS349] アンカーテキスト−リンク先URLテーブル1132の処理対象URL1132bに、未処理のURLが残っているかどうかを判定する。残っていれば、処理をステップS341に戻し、次の処理対象URLについて処理を行う。残っていなければ、特徴2分析処理を終了する。
以上の処理手順が実行されることにより、全リンクカウンタ、内部リンクカウンタ及び特徴2を満たしたリンクの数を集計した特徴2カウンタが得られる。集計結果は、処理対象のサイトのドメインに対応付けて、特徴2カウンタテーブル1135に登録される。なお、特徴1の分析処理を同時に行う場合には、いずれか一方で全リンクカウンタ及び内部リンクカウンタを集計する処理を行えばよい。また、このとき同時に、特徴2の要件を満たすアンカーテキストとリンク先URLとを対応付けた特徴2エントリテーブル1136も生成される。
図21は、特徴3分析処理の手順を示したフローチャートである。
特徴3分析処理では、特徴3に基づき、リンク先ページのタイトルからアンカーテキストを除いた文字列を共通タイトルとして抽出し、共通タイトルが出現する数を集計する。
[ステップS361] アンカーテキスト−リンク先URLテーブル1132から1行読み出す。ドメイン、処理対象URL、アンカーテキスト及びリンク先URLが読み出される。
[ステップS362] ステップS361で読み出したドメインに該当する特徴3カウンタテーブル1137の全リンクカウンタ1137bを1増やして格納する。特徴3カウンタテーブル1137のドメイン1137aに該当するドメインが設定されていなかったときは、新たにレコードを作成し、対応する全リンクカウンタ1137bに1を設定する。
[ステップS363] ステップS361で読み出したリンク先URLは、自サイト内のリンクであるかどうかを判定する。自サイト内のリンクであれば、処理をステップS364に進める。自サイト内のリンクでなければ、処理をステップS369に進める。
[ステップS364] ステップS361で読み出したドメインに該当する特徴3カウンタテーブル1137の内部リンクカウンタ1137cを1増やして格納する。
[ステップS365] URL−タイトルテーブル1131のURL1131bを検索し、ステップS361で読み出したリンク先URLと同じURLが登録される行を検出する。そして、検出されたURLに対応するタイトルをタイトル1131cから取り出す。
[ステップS366] ステップS365で取り出したタイトルに、ステップS361で読み出したアンカーテキストが含まれているかどうかを判定する。含まれているときは、処理をステップS367に進める。含まれていないときは、処理をステップS369に進める。
[ステップS367] タイトルにアンカーテキストが含まれていたときは、タイトルからアンカーテキストを除いた文字列を抽出し、共通タイトルとする。抽出された共通タイトルと、共通タイトルテーブル1138の共通タイトル1138bとを照合し、一致するものがあれば、対応するカウンタ1138cを1増やして格納する。一致するものがなければ、共通タイトル1138bに新たにレコードとして登録し、対応するカウンタ1138cに1を設定する。
[ステップS368] 特徴3エントリテーブル1139にステップS367で共通タイトルを登録したリンク情報をエントリする。処理対象のページのURLは、処理対象URL(ドメイン)1139a、アンカーテキストは単語1139b、リンク先URLはURL1139c、そして共通タイトルは共通タイトル1139dに登録する。
[ステップS369] アンカーテキスト−リンク先URLテーブル1132の処理対象URL1132bに、未処理のURLが残っているかどうかを判定する。残っていれば、処理をステップS361に戻し、次の処理対象URLについて処理を行う。残っていなければ、処理をステップS370に進める。
[ステップS370] ステップS369までの処理により共通タイトルテーブル1138に登録されたカウンタ1138cのカウント値を比較し、最大のカウント値と、その共通タイトルとを抽出する。そして、特徴3カウンタテーブル1137の特徴3カウンタ1137dに抽出された最大のカウント値、共通タイトル1137eに最大のカウント値に対応する共通タイトルを登録する。
[ステップS371] ステップS370で登録された共通タイトルを、特徴3エントリテーブル1139の共通タイトル1139と順次照合する。そして、共通タイトルが一致するものを除き、そのレコードを削除する。これにより、最大数のページで一致する共通タイトルを持つエントリのみが特徴3エントリテーブル1139に残る。
以上の処理手順が実行されることにより、全リンクカウンタ、内部リンクカウンタ及び特徴3を満たした共通タイトルを有するリンクの数を集計した特徴3カウンタが得られる。集計結果は、処理対象のサイトのドメインに対応付けて、特徴3カウンタテーブル1137に登録される。なお、特徴1または特徴2の分析処理を同時に行う場合には、いずれか一方で全リンクカウンタ及び内部リンクカウンタを集計する処理を行えばよい。また、このとき同時に、特徴3の要件を満たすアンカーテキストとリンク先URLとを対応付けた特徴3エントリテーブル1139も生成される。
こうしてリンク特徴集計処理が終了すると、辞書サイト判定部150は、検出されたサイトが辞書サイトであるかどうかの判定処理を行う。
図22は、辞書サイト判定処理の手順を示したフローチャートである。
辞書サイト処理が開始されたときには、前の処理から処理中のドメイン名を引き継いでいるとする。
[ステップS41] 辞書サイト判定部150は、辞書サイト判定ルールを辞書サイト判定ルール(記憶装置)115から読み出す。
[ステップS42] 辞書サイト判定部150は、ステップS41で読み出した辞書サイト判定ルールに基づいて、辞書らしさスコアを算出する。このとき、該当する特徴1カウンタテーブル1133、特徴2カウンタテーブル1135、または特徴3カウンタテーブル1137に登録される該当サイトの集計結果を用いる。
[ステップS43] ステップS42で算出された辞書らしさスコアを、辞書サイト判定ルールに定義される閾値と比較する。辞書サイト判定ルールを満たしている場合は、辞書サイト候補と判定することができる。
[ステップS44] ステップS43による比較結果に基づいて、辞書サイト候補と判定されたときは、処理をステップS45に進める。辞書サイト候補と判定されなかったときは、辞書サイト判定処理を終了する。
[ステップS45] 辞書サイト候補と判定されたときは、このサイトを辞書候補とし、辞書候補テーブル1171に登録する。処理対象URL(ドメイン)を辞書候補テーブル1171のサイトURL(ドメイン)1171aに登録する。また、算出された辞書らしさスコアは、スコア1171bに登録する。登録後、辞書サイト判定処理を終了する。
辞書サイト候補が決定すると、辞書エントリ候補作成部160は、辞書サイト候補について辞書エントリ候補を作成する処理を行う。
図23は、辞書エントリ候補作成処理の手順を示したフローチャートである。
[ステップS61] リンク特徴DB113に格納されるエントリテーブル(特徴1エントリテーブル1134、特徴2エントリテーブル1136及び特徴3エントリテーブル1139)からエントリを読み出す。該当する処理対象URL(ドメイン)の単語1134b,1136b,1139bと、URL1134c,1136c,1139cと、のペアのエントリをひとつ取り出す。
[ステップS62] ステップS61で取り出されたエントリが、辞書候補DB117のエントリ候補テーブル1172の該当する処理対象URLにこのエントリが登録されているかどうかを判定する。未登録であれば、処理をステップS63に進める。未登録でなければ、処理をステップS64に進める。
[ステップS63] エントリ候補テーブル1172に未登録であれば、このエントリを新たなレコードとしてエントリ候補テーブル1172に登録する。
[ステップS64] エントリがまだ残っているかどうかを判定する。次のエントリがあれば、処理をステップS61に戻し、エントリの抽出からの処理を行う。次のエントリがなければ、辞書エントリ候補作成処理を終了する。
以上の処理手順により、辞書サイト候補のエントリ候補テーブルが作成される。なお、エントリ候補登録のルールを予め決めておき、辞書追加ルール(記憶装置)116に格納しておいてもよい。例えば、除外キーワードやURL指定、複数サイトで検出された単語だけ登録するなどのルールを設定しておく。辞書エントリ候補作成処理では、ルールに定義される条件を満たしたエントリのみをエントリ候補テーブル1172に登録する。
こうして辞書サイト候補が決定され、その辞書エントリ候補が作成されると、ユーザ提示部170は、辞書サイト候補と辞書エントリ候補とをユーザに提示する処理を行う。
図24は、ユーザ提示処理の手順を示したフローチャートである。
[ステップS81] 辞書候補DB117に格納される辞書候補テーブル1171及びエントリ候補テーブル1172に設定される辞書サイト候補の情報をクライアント装置200へ出力する。クライアント装置200では、取得した情報に基づいて図12に示した辞書サイト候補一覧画面2100を表示する。
[ステップS82] クライアント装置200を介してユーザからの指示が受け付けられるのを待つ。受け付けたときは、処理をステップS83に進める。
[ステップS83] ステップS82で受け付けた指示が登録要求であったかどうかを判定する。登録要求であれば、処理をステップS84に進める。登録要求でなければ、処理をステップS86に進める。
[ステップS84] 登録要求であったときは、この辞書サイト候補を辞書登録し、辞書DB118に格納する。
[ステップS85] 受け付け確認画面をクライアント装置200へ出力し、ユーザ提示処理を終了する。
[ステップS86] 登録要求でなかったときは、要求された処理を実行し、ユーザ提示処理を終了する。
以上の処理手順が実行されることにより、ユーザが例として入力した単語に基づいて、そのジャンルの辞書サイトが自動で検出され、同時に辞書のエントリ(用語と解説ページのURLのペア)が抽出される。これにより、ユーザの辞書作成作業を大幅に軽減することが可能となる。また、定期的に実行させれば、辞書のメンテナンスも容易になる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、文書群検出装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
以上の実施の形態に関し、更に以下の付記を開示する。
(付記1) ネットワーク上で提供される文書の集合であって1またはそれ以上のコンピュータによって管理されている所定の文書群を検出する文書群検出方法において、
前記コンピュータが、
特定文書の配下に複数の配下文書が存在する階層構造を成す文書群を対象にして、特定のキーワードを用いて該配下文書のいずれかを検索し、検索された該配下文書に基づいて前記特定文書を検出し、該特定文書の配下の複数の配下文書を収集する収集手順と、
収集された前記文書群の前記特定文書及び複数の配下文書それぞれについて、配下文書内の任意の文字列に付加される特定の他文書との関連を示す連結情報を抽出して、該配下文書と、関連付けられた連結先文書とで特定の関係となる状態数を集計する特徴集計手順と、
前記特定の関係を用いた条件である特徴ルールが格納される特徴ルール記憶手段から該特徴ルールを読み出し、前記文書群の特定の関係の状態数が該特徴ルールの条件を満たしているか判定し、条件を満たしている文書群を対象文書群候補に登録する文書群判定手順と、
前記対象文書群候補に登録された前記文書群を出力する手順と、
を有することを特徴とする文書群検出方法。
(付記2) 前記収集手順は、前記検出対象の文書群または前記文書群に属する文書を特徴付けるキーワードが取得されると、前記キーワードに予め設定される拡張語を付加して拡張キーワードを生成し、前記キーワードに加え、前記拡張キーワードを用いて検索を行う、手順であることを特徴とする付記1記載の文書群検出方法。
(付記3) 前記検出対象の文書群は、任意の分野の複数の用語の解説情報に関する文書群であり、前記特定文書は解説される用語の一覧が記述され、また、前記複数の配下文書は用語の解説が記述される用語解説文書である辞書文書群であって、
また、前記連結情報は前記特定文書及び前記用語解説文書に出現する前記用語を表す文字列に付加され、該文字列と該文字列に対応する前記用語解説文書を関連付けており、
前記特徴集計手順における前記特定の関係は、前記連結情報によって関連付けられた前記文字列と、前記連結先文書との特定の関係である、
ことを特徴とする付記1記載の文書群検出方法。
(付記4) 前記特徴集計手順において、前記連結情報が付加された前記文字列と、前記文字列に対応する前記連結先文書とを解析し、前記連結情報によって同じ前記文書群に属している前記用語解説文書が関連付けられている内部連結情報の数と、前記特定の関係となる状態として前記連結情報が付加される前記文字列と前記連結先文書のタイトルに含まれる文字列とが一致する特定内部連結情報の数と、を集計し、
前記文書群判定手順において、前記特定内部連結情報が前記内部連結情報全体に占める割合を、辞書らしさスコアとして算出し、前記辞書らしさスコアを前記特徴ルールに基づく閾値と比較して前記文書群が前記辞書文書群の条件を満たすかどうかを判定する、
手順であることを特徴とする付記3記載の文書群検出方法。
(付記5) 前記特徴集計手順において、前記連結情報が付加された前記文字列と、前記文字列に対応する前記連結先文書とを解析し、前記連結情報によって同じ前記文書群に属している前記用語解説文書が関連付けられている内部連結情報の数と、前記特定の関係となる状態として前記連結情報が付加される前記文字列と前記連結先文書のファイル名に含まれる文字列とが一致する特定内部連結情報の数と、を集計し、
前記文書群判定手順において、前記特定内部連結情報が前記内部連結情報全体に占める割合を、辞書らしさスコアとして算出し、前記辞書らしさスコアを前記特徴ルールに基づく閾値と比較して前記文書群が前記辞書文書群の条件を満たすかどうかを判定する、
手順であることを特徴とする付記3記載の文書群検出方法。
(付記6) 前記特徴集計手順において、前記連結情報が付加された前記文字列と、前記文字列に対応する前記連結先文書とを解析し、前記連結情報によって同じ前記文書群に属している前記用語解説文書が関連付けられている内部連結情報の数と、前記特定の関係となる状態として、前記連結先文書について、前記連結先文書のタイトルから前記連結先文書を関連付けた前記連結情報が付加される文字列と同じ部分を除いた共通タイトル部を抽出して比較し、前記共通タイトル部が一致する特定連結情報の数と、を集計し、
前記文書群判定手順において、前記特徴ルールに基づいて、前記特定連結情報が前記内部連結情報全体に占める割合を、辞書らしさスコアとして算出し、前記辞書らしさスコアを前記特徴ルールに基づく閾値と比較して前記文書群が前記辞書文書群の条件を満たすかどうかを判定する、
手順であることを特徴とする付記3記載の文書群検出方法。
(付記7) 前記文書群判定手順は、前記特定の関係が複数選択されるときは、それぞれの前記特定の関係の重要度に応じた所定の係数が定義される前記特徴ルールに基づいて、選択された前記特定の関係について算出された前記辞書らしさスコアに前記所定の係数を乗算して重み付けを行って、選択された前記特定の関係に応じた辞書らしさスコアを算出する、手順であることを特徴とする付記4、5、及び6記載の文書群検出方法。
(付記8) 前記特徴集計手順は、さらに、前記特定の関係を満たした前記文字列と前記連結先文書について、前記文字列と前記連結先文書の識別情報とを関連付けたエントリ情報を生成し、
前記出力する手順は、前記対象文書群候補に登録された前記文書群の識別情報とともに前記文書群について生成された前記エントリ情報を出力する、
手順であることを特徴とする付記4、5、または6記載の文書群検出方法。
(付記9) 前記出力する手順は、利用者が前記対象文書群候補を目的の文書群に指定したときは、指定された前記対象文書群候補の識別情報を前記目的の文書群が登録される文書群情報に登録して文書群記憶手段に格納するとともに、前記対象文書群候補に対応する前記エントリ情報を前記文書群情報に関連付けて前記文書群記憶手段に格納する、手順であることを特徴とする付記8記載の文書群検出方法。
(付記10) ネットワーク上で提供される文書の集合であって1またはそれ以上のコンピュータによって管理されている所定の文書群を検出する文書群検出装置において、
特定文書の配下に複数の配下文書が存在する階層構造を成す文書群を対象にして、特定のキーワードを用いて該配下文書のいずれかを検索し、検索された該配下文書に基づいて前記特定文書を検出し、該特定文書の配下の複数の配下文書を収集する収集手段と、
収集された前記特定文書及び前記文書群の複数の配下文書それぞれについて、配下文書内の任意の文字列に付加される特定の他文書との関連を示す連結情報を抽出して、該配下文書と、関連付けられた連結先文書とで特定の関係となる状態数を集計する特徴集計手段と、
前記特定の関係を用いた条件である特徴ルールが格納される特徴ルール記憶手段から該特徴ルールを読み出し、前記文書群の特定の関係の状態数が該特徴ルールの条件を満たしているか判定し、条件を満たしている文書群を対象文書群候補に登録する文書群判定手段と、
前記対象文書群候補に登録された前記文書群を出力する出力手段と、
を有することを特徴とする文書群検出装置。
(付記11) ネットワーク上で提供される文書の集合であって1またはそれ以上のコンピュータによって管理されている所定の文書群を検出する文書群検出プログラムにおいて、
コンピュータを、
特定文書の配下に複数の配下文書が存在する階層構造を成す文書群を対象にして、特定のキーワードを用いて該配下文書のいずれかを検索し、検索された該配下文書に基づいて前記特定文書を検出し、該特定文書の配下の複数の配下文書を収集する収集手段、
収集された前記特定文書及び前記文書群の複数の配下文書それぞれについて、配下文書内の任意の文字列に付加される特定の他文書との関連を示す連結情報を抽出して、該配下文書と、関連付けられた連結先文書とで特定の関係となる状態数を集計する特徴集計手段、
前記特定の関係を用いた条件である特徴ルールが格納される特徴ルール記憶手段から該特徴ルールを読み出し、前記文書群の特定の関係の状態数が該特徴ルールの条件を満たしているか判定し、条件を満たしている文書群を対象文書群候補に登録する文書群判定手段、
前記対象文書群候補に登録された前記文書群を出力する出力手段、
として機能させることを特徴とする文書群検出プログラム。