(57)【要約】【課題】イベント情報をデータベース化する際には開催日をどう表現するかが問題となる。本来、１日毎に独立した年月日データとしてイベントの開催期間を表示することが柔軟性の点からは望ましい。しかし、このようなデータ形式の情報を、そのままホームページ・印刷物等に変換すると、多数の開催日が並ぶ表現となり読み取り難い課題があった。【解決手段】一日毎に独立したデータ形式を有するイベントデータに対して、「開催が連続しているが若干の休日がある」等のイベント開催日のパタンを検出するパタンマッチ処理と、パタンマッチに成功したときには、テンプレートの該当する開催開始日等のデータを補完して「何月何日から何月何日まで、ただし、何月何日が休日」といった自然言語表現を生成する表現生成処理を組み合わせる。これにより、一日ずつ独立した年月日データでありながら、人間から見て分かりやすい表現を自動生成できる。【選択図】    図１
2006040080.tif 000002
【特許請求の範囲】
【請求項１】
日毎に表現された日付データ形式でイベントデータを生成するイベント入力処理と、前記イベント入力処理により生成されたイベントデータとパタンマッチングして連続開催、特定曜日開催、休日付き開催を少なくとも判別するパタンマッチ処理と、前記パタンマッチ処理の結果に対応した自然言語表現文を選択する表現生成処理から構成されることを特徴とする自然言語表現生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、お祭り、講演会、講習会、展覧会などの「イベント」情報の開催日付データが、ＸＭＬなどのデータ表現において、一日一日とバラバラに表現されているために、そのままホームページ公開あるいは出版すると読みにくい場合について、「何月何日から何月何日まで毎週日曜日に開催。ただし、８月３日を除く。」といった、人間にわかりやすい自然言語表現に変換する自然言語表現生成方法に関する。
【背景技術】
【０００２】
近年、お祭り、講演会、講習会、展覧会などの「イベント」情報をホームページ上で公開して、一般の利用に供するシステムが多数、立ち上がっている。例えば、関西広域連携協議会は、『関西芸術文化イベント情報』と呼ばれるホームページを立ち上げている。図８は、この関西広域連携協議会のホームページから引用した詳細なイベント情報の例である。尚、関西広域連携協議会を開示にあたっての従来技術として例示していることには他意はない。公共性の高いサイトとして選択・例示している。関西広域連携協議会のサイトは、見てもらうために工夫を加えている優れたイベント情報公開システムのサイトのひとつと思われる。
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｋｉｐｐｏ．ｏｒ．ｊｐ／ａｒｔ／ｉｎｄｅｘ．ａｓｐ（平成１６年７月１８日確認））
【０００３】
図８に示すようなイベント上のホームページは、以前は、ひとつひとつ手作成されていた。しかし、現在では、ＸＭＬなどでデータベース化しておけば、そこから自動的にホームページ用ＨＴＭＬを生成することが広く行なわれている。例えば、出願人らによる発明である特開２００２−３１２５２５『イベント情報表示システム、イベント情報表示方法、及び、イベント情報表示プログラム』（平成１４年１０月２５日公開）は、イベント情報をＸＭＬにより保持して、これから自動的にホームページを生成するシステムを開示している。ＸＭＬを利用したイベント公開システムとしては、わが国では草分け的な存在の一つである（平成１３年４月、出願日翌日にホームページとして公開。ｈｔｔｐ：／／ｗｗｗ．ｍａｉｎｉｃｈｉ．ｃｏ．ｊｐ／ａｒｅａ／ｋｙｏｕｔｏ／で４年間ほど運用していたが現在は更改のために休止中）。
【特許文献１】特開２００２−３１２５２５
【０００４】
しかし、既存のイベント情報公開システムには実は大きな問題点がある。図９は、同じく関西広域連携のホームページから引用したものであるが、開催年月日の欄には２月２８日から３月１３日と書いてある。一方、概要のところには、３回分の日程がかかれている（２月２８日、３月６日、４月２８日）。この図９のホームページがなぜ、このような３月１３日という、開催日には無関係な日付を書いた理由は定かではない。しかし、これは、関西広域連携協議会のミスとも見られるが、現実に３日間の開催日を開始と終了の日付のみで表現することができなかったことが，その原因であろう。イベントの日付を表現することは実は簡単ではないのである。
【０００５】
そもそも、イベント情報には、開催場所などの情報とともに、開催日を表わす日付が必須である。例えば、『３月２３日から２７日まで』といった表現が用いられる。しかし、困ったことに、一般生活の上では、日付には色々の表現方法がある。例えば、１）『何月何日から何月何日まで』、２）『何月何日から何月何日まで、但し、何月何日を除く』、３）『何月何日から何月何日まで毎週×曜日』などと言う様々な表現方法がある。この何月何日から何月何日までとの表現も、月が異なればこう書くが、もし、同一の月であれば、後半の何月は省略されて、『何月何日から何日まで』とされるであろうことは容易に推定できる。一方、美術展などの場合には、月曜日が休みになることも多い。そして、更に、その月曜休館日にたまたま国民の祭日が入っていると、さらに、表現は変化して翌日の火曜が休館であったりする。前述の図９は、そのような柔軟な開催年月日の表現方法に対して、コンピュータ側が対応できていない、ひとつの例である。開催年月日をあくまでも開始日と終了日のペアで表現しているため、柔軟に対応できていないと思われる。
【０００６】
以上のような複雑な日付表現への対応は、ホームページに記載するときのみが問題となっているわけではない。そもそも、イベントのデータを表現するデータベースの構築方法にも影響を与える。図５は、図８と図９のイベントの開催日をＸＭＬタグ形式で表現した例である。「開催日」タグの下に、年月日のタグがあり、年月日タグの個数は制限していない。たまたま図８は２日間のみの開催なので、図５左側のように素直に表現できる。また、図９のイベントも、図５右側のように表現できる。
【０００７】
しかし、開催日の数が多いと、図５の様な簡単なものではすまない。ひとつの方法は、すべての開催日をひとつひとつタグに落とす方法である（以下、本明細書では、このようなデータの表現方法を「日毎に日付をデータ化した」と呼ぶことにする）。この方法は、極めて柔軟である。開催日が何日あろうが、休館日の関係で、規則的でない抜け方で長期の開催期間から一部の日付が除外されていても、事実データとしては、あいまい性なく表現できる。言い換えれば、日毎に日付をデータ化する方法は、極めて、ロバストな日付の表現方法である。図５の例は、開催日数は少ないものの、そのように全ての開催日に対してタグを持たせる方法の例である。
【０００８】
ただし、日毎に日付をデータ化する方法にも多少工夫する点が無いわけではない。ひとつは、開催期間が長い場合に、データ量が多くなる。しかし、データ量が多くなること自体は、今日の高性能化したコンピュータにとって、何ら問題になるものではない。工夫を要するのは、そのデータを人間が入力する場合である。例えば、ユーザインタフェースとしてカレンダーのようなものを準備したとしても、何十日もある開催日を、間違いなくひとつひとつクリックして入力することは手間がかかる。このため、実際には、開始日と終了日を入力したあとで、特別のボタンを押すと、その間が補間されて、開始日から終了日までのすべての月日が入力されたと同様になるようなインタフェースが（必須ではないが）効果的である。いずれにせよ、この入力方法の工夫は、本明細書が開示する発明が利用するデータ表現方法とはまた別の問題であるので、本明細書では、これ以上、議論しない。
【０００９】
話題を元に戻す。図５のように、開催日をすべてタグとして表現する方法は、どんな開催日のパタンでも確実に対応できる。そして、上述のように、多少、入力方法を工夫すれば、長期間の開催日程をもつイベントでも、自然に入力される。しかしながら、そのような日毎に日付が表現されたデータ形式は、コンピュータが読み取るデータ形式としては自然でロバストだとしても、これを人間が読み取るのは容易ではない。例えば、７月１０日（土）から開催されて、８月１日（日）まで開催される美術展がある。データとしては、次の段落に示すように、すべての日程を表現することとなる。
【００１０】
『７月１０日、７月１１日、７月１３日、７月１４日、７月１５日、７月１６日、７月１７日、７月１８日、７月１９日、７月２１日、７月２２日、７月２３日、７月２４日、７月２５日、７月２７日、７月２８日、７月２９日、７月３０日、８月１日。』ここで、７月１２日、７月２０日、７月２６日が抜けていることに注意されたい。これは、月曜日が休館日であるためにイベントが無いためである。更に言えば、本当は、月曜休館なので、７月１９日が休館日であるが、その日が国民の祝日のために、休館日が７月２０日にずれている。
【００１１】
上記のデータをコンピュータが扱うことは容易である。何のあいまい性もなくシンプルにすべての開催日が明示されている。しかし、人間にとっては、そうは行かない。上記の何十日分もの日付を読まされても、読む気にならない。読み誤りも発生する。イベントの開催日数が少ない図５のようなケースでは開催日を列挙することも可能かもしれない。しかし、上記のように、多数の開催日がある場合において、それを列挙してホームページに表示しても、誰も読まない（読めない）。
【００１２】
以上見てきたように、コンピュータに扱いやすい開催日データ形式としては、開催日のそれぞれをそのままデータ化する（図５のような）方法があいまい性がなく、どんな開催パタンでも表現できるので望ましい。データの入力方法も、上述のように、カレンダー状のインタフェース上で開始日と終了日のみを指定し、その後で、特別なボタンで間を全部埋めてしまい、どうしも存在する休みの日のみをクリックして外すようなアプローチで十分に入力できる。しかし、開催日の数が多い場合には、その多数の開催日をそのままホームページ、あるいは印刷物に列挙することは現実的ではない。人間が読むためには、例えば、「何月何日から何日まで。ただし、月曜を除く」といった自然言語風の表現が必要である。この問題は従来技術では解決していない。
【００１３】
一方、例えば、開始日と終了日のみをＸＭＬタグとしてまず記載し、それとは別に「連続開催」といったＸＭＬタグを設け、連続的に開催される場合には、このタグの値を「ＯＮ」にするような方法も考えられる。しかし、この方法では、上記の「何月何日から何日まで、但し、月曜を除く。」といったデータは表現できない。その意味では、課題は解決されないままである。日程表現のロバスト性を考えれば、すべての開催日を「日毎に日付をデータ化」する方が、より効果的であることは明らかである。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
以上から、本発明が解決しようとする課題は、イベント情報において、日毎に日付をデータ化する情況において、これをホームページに掲載したり、あるいは、印刷物として人間に可読な形で出力する場合に「何月何日から何日まで。ただし、月曜を除く」といった、人間に読みやすい形に変換出力可能とすることにある。
【課題を解決するための手段】
【００１５】
本発明では、日毎に日付をデータ化したイベント情報に対して、その連続性や規則性を検出するルールを設け、マッチしたルールに対応した自然言語形式で出力することを構成上の最大の特徴とする。
【発明の効果】
【００１６】
本発明により、日程表現として柔軟性（ロバスト性）の高い、日毎に日付をデータ化したイベントデータ形式を採用できる。
【００１７】
また、本発明によれば、日毎に日付をデータ化したイベントデータ形式であっても、それをホームページなどに掲載する場合には、「何月何日から何日まで。ただし、月曜を除く」「何月何日から何日まで毎週月曜、火曜、水曜」といった、人間にわかりやすい表現を利用できる。
【発明を実施するための最良の形態】
【００１８】
本発明の自然言語表現先生方法は、日毎に表現された日付データ形式でイベントデータを生成するイベント入力処理と、前記イベント入力処理により生成されたイベントデータとパタンマッチングして連続開催、特定曜日開催、休日付き開催を少なくとも判別するパタンマッチ処理と、前記パタンマッチ処理の結果に対応した自然言語表現文を選択する表現生成処理から構成されることを特徴とする。
【００１９】
ここで、前記イベント入力処理は、例えば、開催日のみをクリックするとそこにチェックが入るようなユーザインタフェースとその結果を受けてＸＭＬデータを生成するイベントデータ生成ルーチンから構成される。これにより、図５に示したような形式で、開催日のみがタグデータとして存在するイベントデータを生成する。
【００２０】
次に、前記パタンマッチ処理は、上記のイベントデータを入力として、例えば、１）開始日から終了日まで連続した開催、２）特定の曜日のみ開催している、３）特定の曜日のみ開催していない、などを判別する。これによって、例えば、特定曜日のみ開催していると判断されれば、次に、前記表現生成処理において、例えば、「何月何日から何日まで、毎水曜日、金曜日開催」といった自然言語が生成される。
【００２１】
前記表現生成処理の結果は、上記のように、人間に可読なテキストであり、そのままホームページに掲載したり、あるいは、印刷物として出力すればよい。例えば、生成表現処理の結果が、ひとつのＸＭＬのタグ値として出力されていれば、このような処理は当業者には通常の知識により達成できる。以上の処理により、表現の自由度が高い日毎の日付表現形式を用いながら、しかも、ホームページ上や印刷物上では、人間にとって読みやすい形式が実現される。
【実施例１】
【００２２】
本発明の実施例を図１に示す。  本発明の自然言語表現生成方法１は、日毎に表現された日付データ形式でイベントデータ１０を生成するイベント入力処理２と、イベント入力処理２により生成されたイベントデータ１０とパタンマッチングして連続開催、特定曜日開催、休日付き開催を少なくとも判別するパタンマッチ処理３と、パタンマッチ処理３の結果に対応した自然言語表現文２１を選択する表現生成処理３から構成されることを特徴とする。
【００２３】
イベントの情報は、イベント入力処理１により、イベントデータとなる。データ形式は、当業者の選択に任されるが、日毎に表現された日付の情報を有するものである。そして、そのイベントデータ１０に対して、パタンマッチ処理２の結果、物理的にどのパタンとマッチするかが判定される。例えば、「何月何日から何月何日まで」といった内容に相当するパタンがマッチする。そして、マッチしたパタンに応じて、表現生成処理３により、実際の自然言語が生成される。
【００２４】
図２は、イベント入力処理１の実現例である。この場合、イベント入力処理１は、ＷＥＢブラウザ（２００）とＣＧＩのＷＥＢパラメータ形式でブラウザ側の入力値を取得するＪａｖａ（登録商標）サーブレット及びＤＯＭ（２０１）から構成される。イベントの名称、主催者、開催場所、開催時間などのほか、開催日がＷＥＢブラウザで走行するＨＴＭＬ、Ｊａｖａ（登録商標）スクリプト、あるいは、Ｊａｖａ（登録商標）アプレットにより環境変数として取得される。この環境変数はＣＧＩ機能によってＪａｖａ（登録商標）サーブレット及びＤＯＭ（２０１）が走行するサーバにＨＴＴＰプロトコルにより送信される。環境変数にバインドされた値は、Ｊａｖａ（登録商標）サーブレットで受信されて、ＤＯＭによりＸＭＬツリーとして出力される。なお、Ｊａｖａ（登録商標）はサンマイクロ社の登録商標です。
【００２５】
前記のイベントデータ１０の生成例を図３に示す。開催日に相当する部分は一般的な記述として示している。開催日は、一日一日、分けて独立に記述されている。ただし、このＸＭＬデータのタグＤＴＤ（あるいはＸＭＬスキーマ）は、当業者が設計上の都合により自由に選択可能であるし、ＸＭＬ形式である必要はない。可変長ＥＤＩ、あるいは固定長ＥＤＩの規定に従っても良い。
【００２６】
前記のパタンマッチ処理２、及び、表現生成処理３の実現例を図４に示す。パタンマッチ処理２は、イベントデータ１０と照合可能な複数のパタンにより実現される。パタンのひとつひとつは、例えば、「開始日から終了日が連続していて、休みがない」状態のイベントデータ１０が与えられたときに、照合に成功する。
【００２７】
図６は、パタンマッチ処理２のより詳細な説明のための図である。パタンは、実際には３階層のルーチン群から成っている。最初のレベル１のルーチン群は、図３のようなイベントデータ１０とパタンマッチして、「開始日はいつか」「終了日はいつか」といった基本的な情報を取り出す。これは、日付データをソートして、最大値と最小値を取り出すことにより実現する。得られた開始日、終了日のデータは（図６には示されていないが）レベル２のルーチン群に送られる。
【００２８】
図６のレベル２には、「連続抽出」「準連続抽出」「休日抽出」「曜日抽出」の４つのルーチンが具備されている。「連続抽出」とは、レベル１から送られた開始日と終了日の間が、抜けなく開催日としてイベントデータ１０上に存在することを検出するルーチンである。また、「準連続抽出」はレベル１から得れらた開始日と終了日の間に、例えば１日のみ休み（抜け）があるかどうかを、イベントデータ１０から判定するルーチンである。「休日抽出」とは、レベル１から得られた開始日と終了日との間に、数日の休日がある場合に、それを検出して休日の年月日を取り出すルーチンである。最後に「曜日抽出」は、レベル１から送られた開始日と終了日の間には、特定の曜日のみが存在することを検出するルーチンである。
【００２９】
以上のレベル２のルーチン群の判定結果を受けて、最終的に、レベル３の判定ロジック（図６）によって、パタンは実現される。図６では、レベル２の結果を受けて、パタンに相当する論理を実現するための判定ロジックが並んでいる。判定ロジックのより具体的な姿は、図７に示される。ここでは、レベル２の「連続抽出」「準連続抽出」「休日抽出」「曜日抽出」の４つのルーチンからの結果を受けて、「完全な連続開催」「連続開催であるが一部の年月日は休日」「開始日から終了日までの特定の曜日」の３つのパタン照合結果が生成される。論理はＡＮＤ回路で書いてあるが、もちろん、プログラムの論理により実現してもよい。このＡＮＤ回路を見れば、例えば、「完全な連続開催」パタンの場合には、「連続抽出」ルーチンの出力が「ＯＮ」であればよいことが分かる。また、「準連続」ルーチンの判定結果が「ＯＮ」であって、かつ、「休日抽出」ルーチンから休日が出力される場合には、上から２つめの「開始日から終了日、ただし休日を除く」パタンが照合に成功することになる。
【００３０】
最後に、表現生成処理３の実施例は図４及び図７から分かる。図７を見れば、パタンがマッチすると、パタンマッチ処理２より、開始日、終了日、休日のデータなどを受信して、自然言語で書かれたテンプレートに刷り込むことにより、生成すべき自然言語が得られることが分かる。
【００３１】
ここで、１）連続開催、２）特定曜日開催、３）休日付き開催を判別するロジックについて図６を用いてより詳細に説明する。まず、連続開催の判別であるが、レベル１ルーチン群で、図３に示したフォーマットのＸＭＬデータから、開始日と終了日が検出される。図３の例では、『年月日』タグが複数あるので、これをまず、ソートして、その中で最も前の年月日を取り出すのが、図６の『開始日抽出』ルーチンである。一方、最後の日を見つけるのが、『終了日抽出』ルーチンである。
【００３２】
つぎに、この開始日と終了日の情報は、レベル２のルーチン群に渡される。レベル２の『連続抽出』ルーチンは、開始日から終了日の間が抜けなくデータとして存在することを確認する。そして、『連続抽出』ルーチンが照合成功が報告されれば、図７に示す様に、そのまま、連続開催を判定できるので、図７のように、『何月何日から何月何日』といった自然言語表現文（２１）を選択する。尚、このように決まりきった自然言語表現のうちの一部が変数化されて、そこに外部からのデータを刷り込んで、自然言語表現を生成することは、当業者にはよく知られた『テンプレートによる自然言語生成』である。以上が、『連続開催』の処理である。
【００３３】
次に、『特定曜日開催』の処理を例示する。完全な連続開催ではなく、例えば、月・火・水・木・金の毎週開催のようなケースである。レベル１の『開始日抽出』『終了日抽出』は上記と変わらない。開始日と終了日がレベル２に送られる。レベル２では、こんどは、『連続抽出』ルーチンは照合成功は報告しない。これに対して、ぬけがあるが連続的なケースについては、『準連続抽出』ルーチンの照合が成功する。ここでは、一応、準連続開催とは、最大でも、期間中に１日または２日の開催抜けがあることは許容して連続性をチェックするものとする。つまり、休みが間に１日か２日入っていても、全体を連続開催的なものと判断するルーチンである。したがって、『月・火・水・木・金』の開催であれば、このルーチンの照合成功が報告される。
【００３４】
更に、『準連続抽出』とは別に、『曜日抽出』ルーチンも照合成功を報告する。この『曜日抽出』ルーチンは、開始日と終了日の間の特定の曜日がすべてデータベースに存在するときに限って、照合成功を報告するものであるとする。そうすると、『曜日抽出』と『準連続抽出』が両方とも照合成功となると、これは、ほぼ連続的に、特定曜日のみ開催されるイベントであることとなる。この論理を実現するのが図７の一番下のＡＮＤ論理である。この照合成功は、図７の自然言語表現の中で、一番下のものが選択され、開始日、終了日、曜日の情報が刷り込まれて、自然言語表現が生成される。
【００３５】
では、連続開催ではあるが、ごくわずか、休日がある場合についてはどうなるか考えたい。この場合には、レベル２のルーチンでは、『準連続開催』が照合に成功する。また、『休日抽出』ルーチンも照合に成功する、このルーチンは、例えば、開始日と終了日の間に、孤立して、１日（１回）、あるいは、２日（２回）、休日があることを見つけ出す。従って、この場合には、『準連続開催』と『休日抽出』ルーチンが照合成功を報告していることを図７の中央のＡＮＤ回路で検出して、自然言語表現を選択・生成する。この場合では、真中の自然言語表現の変数部分が、休日の具体的な年月日に変更されて、自然言語表現が出力される。
【００３６】
尚、以上の説明では、あくまで、開始日と終了日の間には、多数の日があることを前提として説明した。しかし、実際のイベントデータ１０には、一日のみの講演であったり、あるいは、２〜３日のバラバラに開かれるイベントも存在する。従って、このようなケースについては、別途、レベル１のルーチン群で検出して対応する必要があるが、これらはいずれも、開催日データをそのまま出力することとなるので、パタンを判断するのみで、日付データはそのまま自然言語表現に刷り込めば良い。
【００３７】
以上見てきたように、本発明によれば、イベントの開催日が日毎に日付が表現される形式でイベントデータとなっていたとしても、人間にわかりやすい自然言語に近いフォーマットの開催日の説明が生成可能である。このため、利用者には分かりやすく、一方で、イベントデータ１０のデータ形式として、開催日の形に依存しない、自由なイベントデータ表現が実現されることとなる。その適用先は，ホームページの自動作成，あるいは，ＤＴＰツールを利用した印刷原版作成などがある。
【図面の簡単な説明】
【００３８】
【図１】自然言語表現生成方法１の構成例
【図２】イベント入力処理２の構成例
【図３】イベントデータ１０の構成例
【図４】パタンマッチ処理３及び表現生成処理４の構成例
【図５】図８、図９の日付データの例
【図６】パタンマッチ処理３のより詳細な説明
【図７】表現生成処理４のより詳細な説明
【図８】関西広域連携ホームページからの引用
【図９】関西広域連携ホームページからの引用
【符号の説明】
【００３９】
１      自然言語表現生成方法
２      イベント入力処理
３      パタンマッチ処理
４      表現生成処理
１０    イベントデータ
２１    自然言語表現
２００  ＷＥＢブラウザ
２１０  Ｊａｖａ（登録商標）サーブレット及びＤＯＭ
【図１】
2006040080.tif 000003
【図２】
2006040080.tif 000004
【図３】
2006040080.tif 000005
【図４】
2006040080.tif 000006
【図５】
2006040080.tif 000007
【図６】
2006040080.tif 000008
【図７】
2006040080.tif 000009
【図８】
2006040080.tif 000010
【図９】
2006040080.tif 000011