(57)【要約】【課題】要件定義書の要件の記載漏れを判断できること。【解決手段】システム開発時、自然言語で記載された要件の見出しと当該見出しの本文を有する要件定義書Ｓ２が作成される。この要件定義書Ｓ２のレビュー時、予め用意された基準の要件定義書Ｓ１と比較し、比較結果によって得られた２つの要件定義書の前記見出しと当該見出しの本文を単位として２つの要件定義書全体での類似性を判断する。本文だけではなく、本文の見出しを含めて類似性を判断することにより、要件定義書Ｓ２の見出しのみに記載された要件を見落とすことがなく、正確なレビューが行える。【選択図】図１
2020197834.tif 000002
【特許請求の範囲】
【請求項１】
自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
処理をコンピュータに実行させることを特徴とする要件定義書作成支援プログラム。
【請求項２】
一方の要件定義書は、予め基準となる見出しと当該見出しの本文の情報を含み、
他方の要件定義書は、被検査対象として作成された見出しと当該見出しの本文の情報を含み、
前記比較結果に基づき、一方と他方の前記要件定義書全体に対し、他方の前記要件定義書の前記見出しと当該見出しの本文を単位とした記載事項が、基準となる一方の前記要件定義書の記載事項に記載されているか否かを判断する、
ことを特徴とする請求項１に記載の要件定義書作成支援プログラム。
【請求項３】
自然言語で記載された２つの前記要件定義書の構造を、それぞれ構造化文書に変換し、
２つの前記構造化文書を、それぞれ前記見出しと当該見出しの本文を単位とした複数の文書データを作成し、
２つの前記構造化文書を前記見出しと当該見出しの本文を単位とした複数の組み合わせで比較し、
前記複数の組み合わせ毎の類似性を判断する、
ことを特徴とする請求項１または２に記載の要件定義書作成支援プログラム。
【請求項４】
変換後の２つの前記構造化文書それぞれについて、当該構造化文書上の記号符号に基づき、前記見出しおよび当該見出しの本文の位置を判断し、前記見出しと当該見出しの本文を単位とした複数の前記文書データを作成し、
前記文書データを用いて類似性を判断することを特徴とする請求項３に記載の要件定義書作成支援プログラム。
【請求項５】
２つの前記構造化文書の前記見出しに含まれる単語を抽出し、当該単語が前記２つの前記構造化文書のいずれに含まれるかを示す見出し語データを作成し、
前記２つの前記構造化文書の前記本文に含まれる単語を抽出し、当該単語が前記見出し語データの見出し語に含まれるか否かを判断し、
前記見出し語データに２つの前記構造化文書のいずれにも含まれる単語であれば、前記本文に含まれる単語のうち、前記見出しに含まれる単語の重要度を高くする調整を行った単語重要度データを作成し、
前記単語重要度データに基づき、２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
ことを特徴とする請求項４に記載の要件定義書作成支援プログラム。
【請求項６】
前記類似性の判断は、
２つの前記要件定義書の前記見出しと当該見出しの本文を単位としてコサイン類似度を算出する、
ことを特徴とする請求項１〜５のいずれか一つに記載の要件定義書作成支援プログラム。
【請求項７】
２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を、前記単位毎の対応関係をイメージ図として出力する、
ことを特徴とする請求項１〜６のいずれか一つに記載の要件定義書作成支援プログラム。
【請求項８】
前記類似性の判断に基づき、他方の前記要件定義書に類似性が低い文書しか見つからない場合、他方の前記要件定義書に要件の記載漏れがある、と判断し、通知することを特徴とする請求項２〜７のいずれか一つに記載の要件定義書作成支援プログラム。
【請求項９】
自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
処理をコンピュータが実行することを特徴とする要件定義書作成支援方法。
【請求項１０】
自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する制御部、
を有することを特徴とする要件定義書作成支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム開発で用いる要件定義書の作成を支援する要件定義書作成支援プログラム、要件定義書作成支援方法および要件定義書作成支援装置に関する。
【背景技術】
【０００２】
システム開発の際には、システムに対する要件を要件定義書と呼ばれるドキュメントに記述する。例えば、要件は、業務においてシステムが実現する処理等を具体的に規定したものであり、システムの開発者によって主に自然言語で記述され、章・節等の見出しを用いた階層的な構造を有し、少なくとも末端の構造には１個以上の文章が含まれている。作成された要件定義書に対しては、要件の記載漏れをチェックするレビューが行われる。
【０００３】
上記要件は、システムを用いる業務の種類によって異なり、システム開発には、多数の要件が記載されている。このような要件定義書のレビューは、業務に関する標準的な要件を把握している有識者によって行われていたが、レビュー期間を短縮するために要件定義書のレビューの自動化が求められている。
【０００４】
例えば、システム開発のプロジェクトが作成した要件定義書を標準的な要件定義書と文書比較し、この際、二つの文書内の単語等の類似度を用いて判断することで、レビューを自動化することが考えられる。
【０００５】
このような二つの文書比較の技術として、各文書を構成するデータ要素から特徴ベクトルを作成し、ベクトル間距離と特徴ベクトルの大きさを求め、見出しなどのキーワードに重みを与え、特徴ベクトルの距離で二つの文書の類似度を求める技術がある。また、特徴単語を抽出し、未分類文書の特徴単語に対する重要度として尤もらしいカテゴリを予測した重みづけを行い、特徴単語同士を比較する技術がある。また、検索ワードの文書位置と、ユーザが文字入力する位置の距離や、検索ワードの加重値に基づき検索ワードに優先順位をつけ、参考図書を推薦する技術がある。また、第１の文書と第２の文書の構成要素の単語の依存関係を示す第１の構造と第２の構造を抽出し、構成要素の相違点を検出し、第１の文書および第２の文書の単語の抽象度を求める技術がある。また、コンテンツの見出し語を元にオントロジーを生成し、新たなコンテンツ内の単語と生成済みのオントロジーとマッチングを行い、オントロジーの中から最も類似度が高いものをコンテンツのメタデータとして設定する技術がある。また、構造化文書のキーワード検索において、検索結果として文書の見出しを表示する際に、概念辞書を用いて検索キーワードと関連度の高い見出しを優先して取得し検索結果として表示する技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１６５５７２号公報
【特許文献２】特開２０１４−５６３３１号公報
【特許文献３】特表２０１８−５０４７２７号公報
【特許文献４】特開２０１７−９１０００号公報
【特許文献５】特開２０１６−１６２０５４号公報
【特許文献６】国際公開第２０１３／１３６５４５号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
レビューの自動化にあたり、二つの文書間の類似度だけに基づく判断では、レビューが不十分である。例えば、多くの要件のうち、どの要件の記載が漏れているのかが分からない。また、同一の単語であっても、出現する構造によってその重要度が変わる。
【０００８】
例えば、文書等のコンテンツの構造的な情報、例えば見出しを考慮していないため、見出しにのみ含まれ、見出し直下の本文に含まれない語句がある場合、見出しの語句を含まずに類似度を判定するため、正確な類似性が得られない。また、単に文書構造を考慮しただけでは、上位階層の見出しとその下位の階層の部分文書の関連度を算出する際に、途中階層の部分文書に同じ語彙が出現しても考慮されず、適切でない見出しの関連度が高くなってしまう。
【０００９】
一つの側面では、本発明は、要件定義書の要件の記載漏れを判断できることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、前記比較結果によって得られた２つの要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、ことを本発明の要件とする。
【発明の効果】
【００１１】
本発明の一態様によれば、要件定義書の要件の記載漏れを判断できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明による要件定義書作成支援処理の概要を説明する図である。
【図２】図２は、実施の形態にかかる要件定義書作成支援装置の機能を示すブロック図である。
【図３】図３は、実施の形態にかかる要件定義書作成支援装置のハードウェア構成例を示す図である。
【図４】図４は、実施の形態で扱う要件定義書を説明する図である。
【図５】図５は、既存技術により見出しを考慮せずに文章照合を行った場合の課題を説明する図である。
【図６】図６は、実施の形態にかかる要件定義書作成支援装置が行う全体処理例を示すフローチャートである。
【図７】図７は、実施の形態にかかる資料構造解析の処理の説明図である。
【図８Ａ】図８Ａは、実施の形態にかかる資料構造解析の処理例を示すフローチャートである。（その１）
【図８Ｂ】図８Ｂは、実施の形態にかかる資料構造解析の処理例を示すフローチャートである。（その２）
【図９】図９は、実施の形態にかかる文書作成の処理の説明図である。
【図１０Ａ】図１０Ａは、実施の形態にかかる文書作成の処理例を示すフローチャートである。（その１）
【図１０Ｂ】図１０Ｂは、実施の形態にかかる文書作成の処理例を示すフローチャートである。（その２）
【図１１Ａ】図１１Ａは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。（その１）
【図１１Ｂ】図１１Ｂは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。（その２）
【図１１Ｃ】図１１Ｃは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。（その３）
【図１１Ｄ】図１１Ｄは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。（その４）
【図１１Ｅ】図１１Ｅは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。（その５）
【図１２】図１２は、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。（その１）
【図１３Ａ】図１３Ａは、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。（その２）
【図１３Ｂ】図１３Ｂは、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。（その３）
【図１４】図１４は、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。（その４）
【図１５】図１５は、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。（その５）
【図１６Ａ】図１６Ａは、実施の形態にかかる文書間類似度算出の処理の説明図である。（その１）
【図１６Ｂ】図１６Ｂは、実施の形態にかかる文書間類似度算出の処理の説明図である。（その２）
【図１７】図１７は、実施の形態にかかる文書間類似度算出の処理例を示すフローチャートである。
【図１８】図１８は、実施の形態にかかる文書間類似度出力の処理の説明図である。（その１）
【図１９】図１９は、実施の形態にかかる文書間類似度出力の処理の説明図である。（その２）
【発明を実施するための形態】
【００１３】
以下に図面を参照して、開示の要件定義書作成支援プログラム、要件定義書作成支援方法および要件定義書作成支援装置の実施の形態を詳細に説明する。
【００１４】
図１は、本発明による要件定義書作成支援処理の概要を説明する図である。要件定義書作成支援装置１００は、自然言語で表され、かつ自然言語で表された文章が章・節・項目等の構造を持っている資料を被検査対象とする。そして、資料の一部分を取り出した文書に、その文書の資料内での構造的な位置づけを示す情報として見出し文（章・節・項目等の名称）を付与する。そして、文書内に出現する単語が見出し文に含まれる単語であるか否か、また、単語と見出し文の構造的な距離をもとにして単語に設定する重要度を調整する。そして、調整された単語の重要度を用いて他文書との文書間類似度を算出する。
【００１５】
実施の形態では、資料の一部を取り出した文書に、その文書の構造的な位置づけに関わる情報を設定する。また、文書の構造的な位置づけとその文書自身の関わりの強さを算出する。これらの二つの情報を用いて、文書内の単語に重要度を設定する。
【００１６】
図１には、実施の形態で被検査対象とする資料として、要件定義書Ｓ１，Ｓ２を示す。要件定義書Ｓ１，Ｓ２は、主に自然言語で記述され、章・節等の見出しを用いた階層的な構造があり、各見出しには少なくとも末端の構造に１個以上の文章が含まれている。
【００１７】
実施の形態では、要件定義書のレビューを自動化するため、要件定義書が有する構造に対応した判断処理を行う。例えば、要件定義書の構造に対応して１要件毎の文章の抽出や、文書内の単語の重要度に応じた文書間の類似性の判断を行う。
【００１８】
標準の要件定義書Ｓ１は、予め用意された基準となる資料である。比較文書Ｌ２は、被検査対象であるシステム開発で作成された要件定義書Ｓ２であり、要件定義書Ｓ１と比較される。これら要件定義書Ｓ１，Ｓ２には、１個以上の要件が記述されている。各要件は、１個以上の自然言語で書かれた文章やいくつかの単語の集合で表現されている。実施の形態では、１個の要件について記述している文章や単語の集合を「文書」と呼ぶ。
【００１９】
標準の要件定義書Ｓ１には、ある業務の要件としてシステムの顧客と合意が必要なことが全て記述されている。システム開発時に作成される要件定義書Ｓ２は、システム開発時の開発プロジェクトで作成したものである。要件定義書作成支援装置１００は、これら要件定義書Ｓ１，Ｓ２を比較し、記載漏れがある要件を「記述無し」等と指摘する。このため、要件定義書作成支援装置１００は、文書照合技術を用い、新たに作成された要件定義書Ｓ２について、標準の要件定義書Ｓ１との文書の類似性（類似度）を算出する。ここで、類似性が低い文書しか見つからない場合は、要件定義書Ｓ２に要件の記載漏れがある、と判断する。
【００２０】
図１の例では、標準の要件定義書Ｓ１には、章や段落「１．出荷」と、自然言語により要件１０１「ピッキング方式の各例」、要件１０２「仕訳方式の各例」、要件１０３「データの抽出例」が記載されている。作成された要件定義書Ｓ２には、章や段落「２．出荷業務」と、自然言語により要件１０１’「ピッキング方式の各例」、要件１０３’「データの抽出例」が記載されている。
【００２１】
この場合、要件定義書作成支援装置１００は、これら要件定義書Ｓ１，Ｓ２を比較し、要件を表す文書間の類似性を判断し、要件定義書レビューＲＶを出力する。要件定義書レビューＲＶは、これら二つの要件定義書Ｓ１，Ｓ２のファイル選択表示部１０１と、二つの要件定義書Ｓ１，Ｓ２内の要件毎を組み合わせ毎に類似度の一覧の判定結果表示部１０２と、を含む。
【００２２】
そして、要件定義書作成支援装置１００は、基準とみなす要件定義書Ｓ１の各項目名（見出し）とその項目の本文（見出し内の文）とを抽出する。また、被検査対象の要件定義書Ｓ２の各項目名とその本文とを抽出する。このように、実施の形態では、資料の構造的な位置づけとして、見出し＋本文の構造単位で要件定義書Ｓ１，Ｓ２を比較し、互いの類似度を算出する。
【００２３】
類似度算出の詳細は後述するが、文書内の単語が見出しに含まれるか否か、また、単語と見出しの構造的な距離に基づき、単語に重要度を設定することで、単語の重要度を用いて要件定義書Ｓ１，Ｓ２の類似度を算出する。また、要件定義書作成支援装置１００は、被検査対象の要件定義書に、基準とみなす要件定義書にある項目の記載が無いと判断すれば、その項目を出力する。
【００２４】
例えば、要件定義書作成支援装置１００は、判定結果表示部１０２に、作成された要件定義書Ｓ２の見出し「２．１出荷情報の抽出」項目番号「１」に対する、標準の要件定義書Ｓ１の見出し「１．１出荷データの準備」項目番号「１」との類似性を示す。なお、項目番号「１」，「２」は、同じ見出し内に二つの項目（別の要件）が記載されていることを示す。
【００２５】
要件定義書Ｓ２の見出し「２．１出荷情報の抽出」項目番号「１」は、要件１０１’「ピッキング方式の各例」に対応し、標準の要件定義書Ｓ１の見出し「１．１出荷データの準備」項目番号「１」は、要件１０１「ピッキング方式の各例」に対応する。ここでは、要件定義書Ｓ２は、標準の要件定義書Ｓ１に対する類似度が高い値「０．８９９」と判断し表示されている。類似度は０〜１の値であり、１が最も類似度が高い。また、所定の類似度閾値以上の類似度が高い要件については、要件定義書作成支援装置１００は、「記述無し」の指摘は行わない。
【００２６】
一方、作成された要件定義書Ｓ２の見出し「２．２」項目番号「２」は、標準の要件定義書Ｓ１の見出し「１．２」項目番号「２」に対し類似性が低いと判断し、類似度は「０．１０５」であり、類似度閾値より低い値であったとする。この場合、要件定義書作成支援装置１００は、作成された要件定義書Ｓ２に記載漏れがあると判断し、「記述無し」等と指摘（出力）する。また、要件定義書作成支援装置１００は、要件定義書Ｓ１，Ｓ２の項目毎の組み合わせのうち、最も低い類似度の項目の行を強調表示してもよい。例えば、最も類似度が低い「０．１０５」の行部分を赤色で表示し、次に、類似度が低い「０．２２４」の行部分を黄色で表示している。これにより、作成した要件定義書Ｓ２の記載漏れの程度に対応した段階的な注意を促すことができる。
【００２７】
このように、実施の形態による処理結果（類似度）によれば、多くの要件のうち、どの要件の記載が漏れているのかを把握できるようになる。また、同一の単語であっても、出現する構造によってその重要度が変わる。これに対応して要件定義書から１要件を表している自然言語の１個以上の文章（文書）を抽出し、要件定義書の構造を反映して、文書内の単語の重要度を設定し、単語の重要度に応じて文書間の類似性を判断する。これにより、要件定義書作成支援装置１００が行う要件定義書の自動レビューのレビュー結果の信頼性を向上できるようになる。
【００２８】
図２は、実施の形態にかかる要件定義書作成支援装置の機能を示すブロック図である。要件定義書作成支援装置１００は、処理部として、資料構造解析部２０１、文書作成部２０２、調整済単語重要度算出部２０３、文書間類似度算出部２０４、文書間類似度出力部２０５を含む。また、データ記憶部として、資料構造データ２１１、比較文書データ２１２、距離と調整値対応表２１３、見出し語データテーブル２１４、調整済単語重要度テーブル２１５、文書間類似度テーブル２１６の各記憶部を含む。
【００２９】
資料構造解析部２０１には、類似度を算出する二つの比較資料１，２として、標準の要件定義書Ｓ１と、被検査対象であるシステム開発で作成された要件定義書Ｓ２が入力され、これら比較資料１，２の資料構造を解析する。資料構造解析部２０１は、構造の解析時、比較資料１，２内の見出し、見出しの階層構造、見出しの下に記述されている文章を抽出した資料構造データを作成する。作成した資料構造データ２１１は、記憶部に記憶される。
【００３０】
文書作成部２０２は、資料構造解析部２０１が解析した資料構造データから、見出しを構成する単語と、見出し直下の文章を組み合わせた比較文書Ｌを作成する。作成した比較資料１，２の比較文書Ｌ１，Ｌ２は、比較文書データ２１２として記憶される。
【００３１】
調整済単語重要度算出部２０３は、文書作成部２０２が作成した比較資料１，２の比較文書内に出現する単語の重要度をＴＦ−ＩＤＦを用いて算出する。ＴＦは、Ｔｅｒｍ  Ｆｒｅｑｕｅｎｃｙ（単語の出現頻度）であり、ＩＤＦは、Ｉｎｖｅｒｓｅ  Ｄｏｃｕｍｅｎｔ  Ｆｒｅｑｕｅｎｃｙ（逆文書頻度）である。
【００３２】
また、類似度を算出するために、比較文書Ｌ１，Ｌ２が属する見出しに含まれる単語を取得し、取得した単語が比較文書Ｌ１，Ｌ２のいずれに現れるかを示した見出し語データを作成する。作成した見出し語データは、見出し語データテーブル２１４に記憶される。
【００３３】
また、調整済単語重要度算出部２０３は、比較文書Ｌ１，Ｌ２の文書中に現れる各単語に対してＴＦを算出する。そして、単語と見出し語との距離を取得し、取得した距離から調整倍率を求めて調整値を算出する。また、ＴＦの値と調整値から調整済単語重要度（調整済ＴＦ）を算出する。また、調整済単語重要度算出部２０３は、比較文書Ｌ１，Ｌ２に出現した単語の調整済ＴＦの値を用いて、各単語の重要度（調整済ＴＦ−ＩＤＦ）の値を求める。
【００３４】
距離と調整値対応表２１３には、単語に関する見出しに含まれる（同じ）単語との距離と、距離に対応する調整値（調整倍率）とが設定記憶されている。また、調整済単語重要度算出部２０３は、調整済単語重要度テーブル２１５に、比較文書Ｌ１，Ｌ２それぞれの抽出単語、調整済ＴＦ、単語出現数、ＩＤＦ、調整済ＴＦ−ＩＤＦをそれぞれ記憶する。
【００３５】
文書間類似度算出部２０４は、比較文書Ｌ１，Ｌ２に出現する単語の重要度（調整済ＴＦ−ＩＤＦ）の値から、例えば、コサイン類似度の手法を用いて、比較文書Ｌ１，Ｌ２の文書間類似度を算出し、文書間類似度テーブル２１６に記憶する。
【００３６】
文書間類似度出力部２０５は、文書間類似度算出部２０４の算出結果である、比較資料１，２内の文書の類似度を画面やファイル等に出力する。出力状態は、例えば、比較文書Ｌ１と比較文書Ｌ２それぞれの項目（見出し）単位の組み合わせと、組み合わせに対する類似度の値を出力する。また、類似度の値を出力するに限らず、類似度が閾値以上の比較文書の個数を元に、比較文書Ｌ１，Ｌ２の対応関係のイメージ図を出力してもよい。
【００３７】
図３は、実施の形態にかかる要件定義書作成支援装置のハードウェア構成例を示す図である。要件定義書作成支援装置１００は、例えば、図３に示すハードウェアからなる汎用のサーバ等で構成することができる。
【００３８】
要件定義書作成支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１、メモリ３０２、ネットワークインタフェース（ＩＦ）３０３、記録媒体ＩＦ３０４、記録媒体３０５、を含む。３００は各部を接続するバスである。
【００３９】
ＣＰＵ３０１は、要件定義書作成支援装置１００の全体の制御を司る制御部として機能する演算処理装置である。メモリ３０２は、不揮発性メモリおよび揮発性メモリを含む。不揮発性メモリは、例えば、ＣＰＵ３０１のプログラムを格納するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。揮発性メモリは、例えば、ＣＰＵ３０１のワークエリアとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等である。
【００４０】
ネットワークＩＦ３０３は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワークＮＷに対する通信インタフェースである。要件定義書作成支援装置１００は、ネットワークＩＦ３０３を介してネットワークＮＷに通信接続する。例えば、要件定義書作成支援装置１００は、ネットワークＮＷを介して、外部の端末にアクセスし、比較文書Ｌ１，Ｌ２の情報を取得し、比較結果（文書の類似度）を端末に出力する。
【００４１】
記録媒体ＩＦ３０４は、ＣＰＵ３０１が処理した情報を記録媒体３０５との間で読み書きするためのインタフェースである。記録媒体３０５は、メモリ３０２を補助する記録装置であり、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）や、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュドライブ等を用いることができる。
【００４２】
メモリ３０２または記録媒体３０５に記録されたプログラムをＣＰＵ３０１が実行することにより、図２に示した要件定義書作成支援装置１００の各機能を実現する。また、メモリ３０２や記録媒体３０５は、要件定義書作成支援装置１００の記憶部が記憶する情報、例えば、図２に示した資料構造データ２１１〜文書間類似度テーブル２１６の各情報を更新可能に記憶保持する。
【００４３】
（要件定義書について）
図４は、実施の形態で扱う要件定義書を説明する図である。実施の形態では、比較文書Ｌ１，Ｌ２の具体例として、システム開発時に作成される要件定義書を用いて説明する。比較文書Ｌ１は標準の要件定義書Ｓ１であり、比較文書Ｌ２は、被検査対象であるシステム開発で作成された要件定義書Ｓ２である。
【００４４】
これら要件定義書Ｓ１，Ｓ２には、１個以上の要件が記述されている。各要件は、１個以上の自然言語で書かれた文章やいくつかの単語の集合で表現されている。実施の形態では、１個の要件について記述している文章や単語の集合を「文書」と呼ぶ。
【００４５】
標準の要件定義書Ｓ１には、ある業務の要件としてシステムの顧客と合意が必要なことが全て記述されている。システム開発時に作成される要件定義書Ｓ２は、システム開発時の開発プロジェクトで作成したものである。要件定義書作成支援装置１００は、これら要件定義書Ｓ１，Ｓ２を比較し、記載漏れがある要件を「記述無し」等と指摘する。このため、要件定義書作成支援装置１００は、文書照合技術を用い，要件定義書Ｓ１，Ｓ２の文書の類似性を算出する。ここで、類似性が低い文書しか見つからない場合は、要件の記載漏れがある、と判断する。
【００４６】
図４の例では、標準の要件定義書Ｓ１には、章や段落「１．出荷」と、自然言語により要件１０１「ピッキング方式の各例」、要件１０２「仕訳方式の各例」、要件１０３「データの抽出例」が記載されている。作成された要件定義書Ｓ２には、章や段落「２．出荷業務」と、自然言語により要件１０１’「ピッキング方式の各例」、要件１０３’「データの抽出例」が記載されている。
【００４７】
この場合、要件定義書作成支援装置１００は、これら要件定義書Ｓ１，Ｓ２を比較し、要件を表す文書間の類似性を判断する。そして、標準の要件定義書Ｓ１の要件１０１「ピッキング方式の各例」と、作成された要件定義書Ｓ２の要件１０１’「ピッキング方式の各例」は類似性のある文書が記述されており、類似性が高いと判断する。また、標準の要件定義書Ｓ１の要件１０３「データの抽出例」と、作成された要件定義書Ｓ２の要件１０３’「データの抽出例」には類似性のある文書が記述されており、類似性が高いと判断する。これら類似性が高い要件については、要件定義書作成支援装置１００は、「記述無し」の指摘は行わない。
【００４８】
一方、標準の要件定義書Ｓ１の要件１０２「仕訳方式の各例」は、作成された要件定義書Ｓ２に類似性のある文書が全くないため、作成された要件定義書Ｓ２に記載漏れがあると判断し、「記述無し」等と指摘（出力）する。
【００４９】
図５は、既存技術により見出しを考慮せずに文章照合を行った場合の課題を説明する図である。従来技術等による文書が属する見出しを考慮せずに２文書間の類似度を算出した場合に、類似度が低くなる例を示す。文書間類似度の値域は、０以上であるとする。
【００５０】
図５に示す標準の要件定義書Ｓ１には、階層化された見出し「１．出荷」の下層の「１．１出荷データの準備」の文書Ｓ１１「営業日の１５時に、出荷データの状態が”未出荷”であるデータの中から、翌営業日が出荷日となっている出荷データを抽出」と記載されている。また、作成した要件定義書Ｓ２には、階層化された見出し「２．出荷業務の下層の「２．１出荷情報の抽出」の文書Ｓ２１「毎日１５時に翌日分の情報を抽出」と記載されている。
【００５１】
これら要件定義書Ｓ１，Ｓ２を人手で対比し、要件定義書Ｓ２の要件の記載漏れをチェックした場合、チェック作業者は、これら要件定義書Ｓ１，Ｓ２から「翌日分の出荷情報を前日の１５時に抽出すること」と理解する。これにより、文書Ｓ１１，Ｓ２１が類似していると判断できる。
【００５２】
しかし、既存の技術による文書間類似度の算出技術では、要件定義書Ｓ２の文書Ｓ２１内には「出荷データ」の記載が無いため、例えば、文書間類似度が低い（例えば０．０８３）と誤った判断を行ってしまう。
【００５３】
実施の形態では、自然言語で表された文章が章・節・項目等の構造を持っている比較資料１，２について、これら比較資料１，２の一部分を取り出した文書（部分）に、資料内での構造的な位置づけを示す情報として見出し文（章・節・項目等の名称）を付与する。そして、文書内に出現する単語が見出し文に含まれる単語であるか否かを付与する。また、単語と見出し文の構造的な距離をもとにして単語に設定する重要度を調整し、調整した単語の重要度を用いて他文書との文書間類似度を算出する。
【００５４】
そして、資料の一部を取り出した文書（部分）に、文書の構造的な位置づけに関わる情報を設定し、「文書の構造的な位置づけ」と、「文書自身の関わりの強さを」を算出する。これら「文書の構造的な位置づけ」と、「文書自身の関わりの強さを」の二つの情報を用いて、文書内の単語に重要度を設定する。
【００５５】
実施の形態では、単語の重要度算出は既存技術を用いている。上記の調整済単語重要度算出部２０３がはじめに単語の重要度を算出する際には、文書内に現れる単語の重要度を算出する既存技術の一つとして上述した「ＴＦ−ＩＤＦ」を用いる。ＴＦ−ＩＤＦは下記で定義される。なお、調整済単語重要度算出部２０３は、この後、単語と見出し語との距離から調整値を算出し、調整済単語重要度（調整済ＴＦ）を算出する。
【００５６】
ＴＦ−ＩＤＦij＝ＴＦij×ＩＤＦi
ＴＦij＝ｎij
（ｎijは文書Ｄjにおける、単語ｔiの出現数）
ＩＤＦi＝Ｌｏｇ（｜Ｄ｜／｜ｄ：ｔi∈ｄ｜）＋１
（ ｜Ｄ｜は総文書数、｜ｄ：ｔi∈ｄ｜は単語ｔiを含む文書数）
実施の形態では、総文書数は上記の比較文書Ｌ１，Ｌ２であり「２」である。
【００５７】
また、実施の形態において、文書間の類似度算出は既存技術を用いている。二つの比較文書Ｌ１，Ｌ２の文書間類似度を算出する既存技術「コサイン類似度」を用い、その定義を下記に示す。単語の重要度は、上記ＴＦ−ＩＤＦ等を使って予め求めておく。
【００５８】
Ａ＝（ａ1，ａ2，…，ａn）
（ａiは、文書Ａ（比較文書Ｌ１）に現れる単語の重要度。iは、１≦ｉ≦ｎの整数）
Ｂ＝（ｂ1，ｂ2，…，ｂn）
（ｂiは、文書Ｂ（Ａ≠Ｂ、比較文書Ｌ２）に現れる単語の重要度。iは、１≦ｉ≦ｎの整数）
そして、コサイン類似度は下記（１）式に基づき算出する。ａiとＢiは同じ単語である。
【００５９】
【数１】
2020197834.tif 000003
【００６０】
（要件定義書作成支援装置の処理内容）
図６は、実施の形態にかかる要件定義書作成支援装置が行う全体処理例を示すフローチャートである。図６に示す処理は、制御部（ＣＰＵ３０１）が実行処理する。はじめに、制御部（資料構造解析部２０１）は、入力された二つの比較資料１，２（要件定義書Ｓ１，Ｓ２）の資料構造を解析する（ステップＳ６０１）。この際、制御部は、比較資料１，２内の見出し、見出しの階層構造、見出しの下に記述されている文章を抽出した資料構造データを作成する。制御部は、資料構造データとして、資料ＩＤ、見出し語、内容、下位構造リストを含み資料構造データ２１１として記憶される。
【００６１】
次に、制御部（文書作成部２０２）は、資料構造データから、見出しを構成する単語と、見出し直下の文章を組み合わせた比較文書を作成する（ステップＳ６０２）。制御部は、作成した比較資料１，２の比較文書として、資料ＩＤ、見出しＩＤ、グループＩＤ、見出し語階層リスト、記述内容を含み、比較文書データ２１２として記憶される。
【００６２】
次に、制御部は、見出しを構成する単語と、見出し直下の文章を組み合わせた比較資料１，２の比較文書の各組合せに対して、調整済単語重要度の算出と（ステップＳ６０３）、文書間類似度の算出（ステップＳ６０４）の処理をそれぞれ実行する。
【００６３】
ステップＳ６０３では、まず、制御部（調整済単語重要度算出部２０３）は、比較資料１，２の「比較資料」内に出現する単語の重要度をＴＦ−ＩＤＦを用いて算出する。また、比較文書Ｌ１，Ｌ２が属する見出しに含まれる単語を取得し、取得した単語が比較文書Ｌ１，Ｌ２のいずれに現れるかを示した見出し語データを作成する。制御部は、作成した見出し語データは、見出し語リスト、文書１出現有無、文書２出現有無、調整値加算有無を含み、見出し語データテーブル２１４に記憶する。
【００６４】
また、制御部（調整済単語重要度算出部２０３）は、比較文書Ｌ１，Ｌ２の文書中に現れる各単語に対してＴＦを算出する。そして、単語と見出し語との距離を取得し、取得した距離から調整倍率を求めて調整値を算出する。また、ＴＦの値と調整値から調整済単語重要度（調整済ＴＦ）を算出する。また、比較文書Ｌ１，Ｌ２に出現した単語の調整済ＴＦの値を用いて、各単語の重要度（調整済ＴＦ−ＩＤＦ）の値を求める。
【００６５】
ステップＳ６０３において、制御部（調整済単語重要度算出部２０３）は、単語に関する距離と、調整値（調整倍率）を調整値対応表２１３に記憶する。また、調整済単語重要度テーブル２１５に、比較文書Ｌ１，Ｌ２それぞれの抽出単語、調整済ＴＦ、単語出現数、ＩＤＦ、調整済ＴＦ−ＩＤＦを記憶する。
【００６６】
ステップＳ６０４では、制御部（文書間類似度算出部２０４）は、比較文書Ｌ１，Ｌ２に出現する単語の重要度（調整済ＴＦ−ＩＤＦ）の値から、例えば、コサイン類似度の手法を用いて、比較文書Ｌ１，Ｌ２の文書間類似度を算出する。そして、制御部（文書間類似度算出部２０４）は、算出した比較文書Ｌ１，Ｌ２の情報と、算出したコサイン類似度の値を、文書間類似度テーブル２１６に記憶する。制御部（文書間類似度算出部２０４）は、比較文書Ｌ１，Ｌ２それぞれの資料ＩＤ、見出し語ＩＤ、グループＩＤ、コサイン類似度を文書間類似度テーブル２１６に記憶する。
【００６７】
この後、制御部（文書間類似度出力部２０５）は、文書間類似度算出部２０４の算出結果である、比較資料１，２内の文書の類似度を画面やファイル等に出力する（ステップＳ６０５）。
【００６８】
（要件定義書作成支援装置の各機能の詳細）
次に、要件定義書作成支援装置１００の各機能の詳細について説明する。
【００６９】
（資料構造解析部）
図７は、実施の形態にかかる資料構造解析の処理の説明図である。上記資料構造解析部２０１の処理機能を説明する。比較資料１としての要件定義書Ｓ１と、比較資料２としての要件定義書Ｓ２の例を示す。資料構造解析部２０１は、それぞれの要件定義書Ｓ１，Ｓ２内の見出し、見出しの階層構造、見出しの下に記述されている文章を解析し、資料構造データＤ１，Ｄ２を作成する。
【００７０】
例えば、要件定義書Ｓ１のインデント、改行、行頭や記号等を元に、見出しや、文書のグループを抽出する。要件定義書Ｓ１ではグループ単位の文書Ｓ１１、Ｓ１２を抽出し、要件定義書Ｓ２ではグループ単位の文書Ｓ２１，Ｓ２２を抽出する。グループ単位の文書Ｓ１１，Ｓ２１は、大見出し単位のグループ、グループ単位の文書Ｓ１２，Ｓ２２は、大見出しの下層の見出し単位のグループである。
【００７１】
そして、資料構造解析部２０１は、要件定義書Ｓ１に対し抽出したグループ単位の文書Ｓ１１，Ｓ１２に対応して、資料構造データＤ１のグループＤ１１，Ｄ１２を作成する。同様に、要件定義書Ｓ２に対し抽出したグループ単位の文書Ｓ２１，Ｓ２２に対応して、資料構造データＤ２のグループＤ２１，Ｄ２２を作成する。図示のように、資料構造データはＪＳＯＮ等、タグを使用した構造化文書データであり、見出しや本文の文章は、構造化文書データの値として設定される。
【００７２】
図８Ａ，図８Ｂは、実施の形態にかかる資料構造解析の処理例を示すフローチャートである。制御部（ＣＰＵ３０１）が資料構造解析部２０１の機能を実行することで、図７に示した資料構造データの作成処理例を示し、例えば、比較資料１に対する処理実行後に、比較資料２に対する処理を実行する。
【００７３】
図８Ａに示すように、はじめに、制御部は、比較資料ｍ（比較資料１または２）の入力により、資料構造データｄの作成を開始する（ステップＳ８０１）。はじめに、制御部は、比較資料ｍから資料名を抽出し、フィールド（ｍａｔｅｒｉａｌ＿ＩＤ）の値に設定して資料構造データｄに追加する（ステップＳ８０２）。
【００７４】
次に、制御部は、比較資料ｍから処理対象の文ｓを抽出する（ステップＳ８０３）。文ｓは、比較資料で抽出した１行の文（見出しや文章）である。そして、制御部は、文ｓは取得できたかを判断し（ステップＳ８０４）、文ｓが取得できれば（ステップＳ８０４：Ｙｅｓ）、ステップＳ８０５の処理に移行し、文ｓが取得できなければ（ステップＳ８０４：Ｎｏ）、以上の処理を終了する。
【００７５】
ステップＳ８０５では、制御部は、文ｓが見出しであるか判断し（ステップＳ８０５）、文ｓが見出しであれば（ステップＳ８０５：Ｙｅｓ）、ステップＳ８０６の処理に移行する。文ｓが見出しでなければ（ステップＳ８０５：Ｎｏ）、ステップＳ８０９の処理に移行する。
【００７６】
ステップＳ８０６では、制御部は、見出しに続く下位データ構造の作成を行う（ステップＳ８０６）。下位データ構造（ｓ，ｍ）は、次の処理対象の文ｎｅｘｔＳ，下位の資料構造ｄであり、処理内容を図８Ｂに示す。ステップＳ８０６の処理後、制御部は、ステップＳ８０７の処理を実行する。
【００７７】
ステップＳ８０７では、制御部は、資料構造データｄにフィールド（ｓｕｂ＿ｈｅａｄｉｎｇｓ）が無ければ追加し、その値にｓＳｕｂを追加する（ステップＳ８０７）。この後、制御部は処理対象の文ｓをｎｅｘｔＳに更新し（ステップＳ８０８）、ステップＳ８０４の処理に戻る。
【００７８】
ステップＳ８０９では、制御部は、フィールド（ｃｏｎｔｅｎｔｓ）が資料構造データｄに無ければ作成し、文ｓをその値の末尾に追加する（ステップＳ８０９）。この後、制御部は、文ｓ＝比較資料ｍから抽出した文ｓの次の文に設定し（ステップＳ８１０）、ステップＳ８０４の処理に戻る。
【００７９】
図８Ｂでは、制御部は、下位データ構造作成のため、新しい見出し構造データｄを作成する（ステップＳ８１１）。この見出し構造データｄは、図７に示す比較資料１の資料構造データＤ１の｛”ｈｅａｄｉｎｇ”：”出荷”〜出荷データを抽出”］｝までの領域に相当する。
【００８０】
次に、制御部は、見出し構造データｄにフィールド（ｈｅａｄｉｎｇ）を追加し、文ｓをその値に設定する（ステップＳ８１２）。次に、制御部は、ｓ＝比較資料ｍから次の文ｓの次の文を取得する（ステップＳ８１３）。
【００８１】
この後、制御部は、文ｓは取得できたかを判断し（ステップＳ８１４）、文ｓが取得できれば（ステップＳ８１４：Ｙｅｓ）、ステップＳ８１５の処理に移行し、文ｓが取得できなければ（ステップＳ８１４：Ｎｏ）、以上の処理を終了する。
【００８２】
ステップＳ８１５では、制御部は、文ｓが見出しであるか判断し（ステップＳ８１５）、文ｓが見出しであれば（ステップＳ８１５：Ｙｅｓ）、ステップＳ８１６の処理に移行する。例えば、制御部は、比較資料１の「１．」の文字を見出しと判断する。文ｓが見出しでなければ（ステップＳ８１５：Ｎｏ）、ステップＳ８２０の処理に移行する。
【００８３】
ステップＳ８１６では、制御部は、文ｓは下位見出しであるか判断する（ステップＳ８１６）。文ｓが下位見出しであれば（ステップＳ８１６：Ｙｅｓ）、制御部は、ステップＳ８１７の処理に移行し、文ｓが下位見出しでなければ（ステップＳ８１６：Ｎｏ）、以上の処理を終了する。
【００８４】
ステップＳ８１７では、制御部は、再帰的に下位データ構造の作成を行う（ステップＳ８０６）。ステップＳ８１７処理後、制御部は、ステップＳ８１８の処理を実行する。
【００８５】
ステップＳ８１８では、見出し構造データｄにフィールド（ｓｕｂ＿ｈｅａｄｉｎｇｓ）が無ければ追加し、その値にｄＳｕｂを追加する（ステップＳ８１８）。この後、制御部は処理対象の文ｓをｎｅｘｔＳに更新し（ステップＳ８１９）、ステップＳ８１４の処理に戻る。
【００８６】
ステップＳ８２０では、制御部は、フィールド（ｃｏｎｔｅｎｔｓ）が見出し構造データｄに無ければ作成し、文ｓをその値の末尾に追加する（ステップＳ８２０）。この後、制御部は、文ｓ＝比較資料ｍから抽出した文ｓの次の文に設定し（ステップＳ８２１）、ステップＳ８１４の処理に戻る。
【００８７】
（文書作成部）
図９は、実施の形態にかかる文書作成の処理の説明図である。上記文書作成部２０２の処理機能を説明する。制御部（文書作成部２０２）は、資料構造解析部２０１が作成した資料構造データＤ１，Ｄ２それぞれで抽出した見出しを構成する単語と、その見出し直下の記述内容をまとめた比較文書Ｌ１，Ｌ２を作成処理する。
【００８８】
図９には、比較資料１（要件定義書Ｓ１）の資料構造データＤ１を示し、見出しを構成する単語と、その見出し直下の記述内容の部分Ｐ１について、比較文書Ｌ１１を作成する。また、部分Ｐ１の下層の見出しを構成する単語と、その見出し直下の記述内容の部分Ｐ２についても同様に、比較文書Ｌ１２を作成する。比較文書Ｌ１１は、最上位層にあるため、リストの長さは［”出荷”］の「１」である。リストの個々の要素は、見出しから抽出した単語のリストである。比較文書Ｌ１２は、第２階層のため、リストの長さは［”出荷”］、［”出荷”，”データ”，”準備”］の「２」である。
【００８９】
図１０Ａ，図１０Ｂは、実施の形態にかかる文書作成の処理例を示すフローチャートである。制御部（ＣＰＵ３０１）が文書作成部２０２の機能を実行することで、図９に示した比較文書の作成処理例を示し、例えば、比較資料１に対する処理実行後に、比較資料２に対する処理を実行する。
【００９０】
図１０Ａに示すように、はじめに、制御部は、比較資料の識別子（ｍａｔｅｒｉａｌ＿ＩＤ）を取得する（ステップＳ１００１）。次に、制御部は、ヘッダ識別子（ｈ＿ＩＤ）＝「１」、階層の深さ（ｄｅｐｔｈ）＝「０」、上位階層のヘッダリスト（ｈｅａｄｉｎｇＬｉｓｔ）＝［］（文字格納用の領域作成）に設定する（ステップＳ１００２）。
【００９１】
次に、制御部は、ｓｕｂ＿ｈｅａｄｉｎｇｓの最初の要素ｓｕｂＨを取得する（ステップＳ１００３）。そして、要素ｓｕｂＨが取得できたか判断する（ステップＳ１００４）。要素ｓｕｂＨが取得できれば（ステップＳ１００４：Ｙｅｓ）、制御部は、ステップＳ１００５の処理に移行し、要素ｓｕｂＨが取得できなければ（ステップＳ１００４：Ｎｏ）、以上の処理を終了する。
【００９２】
ステップＳ１００５では、制御部は、比較文書データを作成する（ステップＳ１００５）。比較文書データは、資料識別子（ｍａｔｅｒｉａｌ＿ＩＤ），処理中の文書の階層の深さ（ｄｅｐｔｈ），ヘッダ識別子（ｈ＿ＩＤ），上位階層のヘッダリスト（ｈｅａｄｉｎｇＬｉｓｔ），処理対象の要素（ｓｕｂＨ）を引数とする。
【００９３】
次に、制御部は、ｈ＿ＩＤをインクリメントし（ステップＳ１００６）、ｓｕｂ＿ｈｅａｄｉｎｇｓのｓｕｂＨの次の要素ｓｕｂＨを取得し（ステップＳ１００７）、ステップＳ１００４の処理に戻る。
【００９４】
図１０Ｂは、ステップＳ１００５の比較文書データ作成の処理内容を示す。はじめに、制御部は、段落番号（ｇｒｏｕｐＩＤ）＝「０」に設定する（ステップＳ１０１０）。次に、制御部は、要素（ｅｌｍ）のフィールド（ｈｅａｄｉｎｇ）に含まれる単語のリスト（ｗＬｉｓｔ）を取得する（ステップＳ１０１１）。また、ｅｌｍのフィールド（ｃｏｎｔｅｎｔｓ）の値（ｃｏｎｔ）を取得する。また、ｎｅｗＨｅａｄｉｎｇＬｉｓｔ＝ｈｅａｄｉｎｇＬｉｓｔ．ａｐｐｅｎｄ（ｗＬｉｓｔ）を設定する。このＬ．ａｐｐｅｎｄ（ｖ）はリストＬの末尾に引数ｖを追加する関数を示す。また、制御部は、ｄｅｐｔｈとｈ＿ＩＤから見出しの識別子（ｎｅｗＨ＿ＩＤ）を作成する。
【００９５】
次に、制御部は、ｃｏｎｔから一つの文ｓを取得し（ステップＳ１０１２）。文ｓが取得できたか判断する（ステップＳ１０１３）。そして、制御部は、文ｓが取得できれば（ステップＳ１０１３：Ｙｅｓ）、制御部は、ステップＳ１０１４の処理に移行し、文ｓが取得できなければ（ステップＳ１０１３：Ｎｏ）、ステップＳ１０１６の処理に移行する。
【００９６】
ステップＳ１０１３の処理では、ｃｏｎｔの中から文ｓを取得する方法は、１文ずつとしたが、他の方法、例えば、箇条書きの場合は１項目ずつ取得してもよい。また、１段落ずつ取得してもよい。
【００９７】
ステップＳ１０１４では、制御部は、段落番号（ｇｒｏｕｐＩＤ）をインクリメントする（ステップＳ１０１４）。次に、制御部は、比較文書データｄを作成し、ｄに以下のフィールドと値を設定後、比較文書データ２１２として保存する（ステップＳ１０１５）。フィールド（ｍａｔｅｒｉａｌ＿ＩＤ）にｍａｔｅｒｉａｌ＿ＩＤを設定し、フィールド（ｈｅａｄｉｎｇ＿ＩＤ）にｎｅｗＨ＿ＩＤを設定し、フィールド（ｈｅａｄｉｎｇＬｉｓｔ）にｎｅｗＨｅａｄｉｎｇＬｉｓｔを設定する。また、フィールド（ｇｒｏｕｐＩＤ）にｇｒｏｕｐＩＤを設定し、フィールド（ｃｏｎｔｅｎｔｓ）に文ｓを設定する。
【００９８】
ステップＳ１０１６では、制御部は、ｅｌｍのフィールド（ｓｕｂ＿ｈｅａｄｉｎｇｓ）の最初の要素ｓｕｂＨを取得する（ステップＳ１０１６）。次に、制御部は、要素ｓｕｂＨが取得できたか判断する（ステップＳ１０１７）。要素ｓｕｂＨが取得できれば（ステップＳ１０１７：Ｙｅｓ）、制御部は、ステップＳ１０１８の処理に移行し、要素ｓｕｂＨが取得できなければ（ステップＳ１０１７：Ｎｏ）、以上の処理を終了する。
【００９９】
ステップＳ１０１８では、制御部は、比較文書データを作成する（ステップＳ１０１８）。比較文書データは、資料識別子（ｍａｔｅｒｉａｌ＿ＩＤ），処理中の文書の階層の深さ（ｄｅｐｔｈ＋１），ヘッダ識別子（ｈ＿ＩＤ），上位階層のヘッダリスト（ｈｅａｄｉｎｇＬｉｓｔ），処理対象の要素（ｓｕｂＨ）を含む。
【０１００】
次に、制御部は、ｈ＿ＩＤをインクリメントし（ステップＳ１０１９）、ｓｕｂ＿ｈｅａｄｉｎｇｓのｓｕｂＨの次の要素ｓｕｂＨを取得し（ステップＳ１０２０）、ステップＳ１０１７の処理に戻る。
【０１０１】
（調整済単語重要度算出部）
図１１Ａ〜図１１Ｅは、実施の形態にかかる調整済単語重要度算出の処理の説明図である。上記調整済単語重要度算出部２０３の処理機能を説明する。
【０１０２】
調整済単語重要度算出部２０３は、文書作成部２０２が作成した比較資料１，２の比較文書内に出現する単語の重要度をＴＦ−ＩＤＦを用いて算出する。その際に、以下の３種類の見出しとの関係を元に重要度を調整する。
１．単語が属する見出しの中で使用されているか
２．見出しの中で使われている場合は、単語とその見出しとの距離
３．二つの比較文書に共通する見出し語であるか
【０１０３】
図１１Ａには、調整済単語重要度算出部２０３が作成する見出し語データを示す。類似度を算出するために比較する二つの比較文書Ｌ１，Ｌ２が属する見出しに含まれる単語を取得し、その単語がどちらの文書に現れるかを示した見出し語データを作成する。この図１１Ａには、比較資料１の比較文書Ｌ１２と、比較資料２の比較文書Ｌ２２により作成する見出し語データテーブル２１４の例を示す。調整済単語重要度算出部２０３は、比較資料１の比較文書Ｌ１２のｈｅａｄｉｎｇＬｉｓｔ（ｔ１部分）の文字と、比較資料２の比較文書Ｌ２２のｈｅａｄｉｎｇＬｉｓｔ（ｔ２部分）の文字を見出し語として抽出し、見出し語データテーブル２１４に設定する。
【０１０４】
そして、調整済単語重要度算出部２０３は、比較文書Ｌ１，Ｌ２のフィールドには、抽出した見出し語が比較文書Ｌ１１、比較文書Ｌ１２にそれぞれ含まれているか否かの値「有／無」を設定する。また、調整済単語重要度算出部２０３は、抽出した見出し語が比較文書Ｌ１１，Ｌ１２のいずれにも含まれる単語（ｔ３部分の見出し語「出荷」）の場合、調整値加算有無フィールドの値を「有」に設定する。また、抽出した見出し語が比較文書Ｌ１１，Ｌ１２のいずれか一方にのみ含まれる単語の場合、調整値加算有無フィールドの値を「無」に設定する。
【０１０５】
図１１Ｂには、比較文書Ｌ１２に対し、調整済単語重要度算出部２０３が作成する調整済単語重要度データ１１０２と、距離と調整値対応表２１３の例を示す。調整済単語重要度算出部２０３は、比較文書Ｌ１２中に現れる各単語に対してＴＦを求める。次に、その単語と見出し語との距離を取得し、その距離から調整倍率を求めて調整値を算出する。そして、ＴＦの値と調整値から、調整済単語重要度（調整済ＴＦ）を算出する。
【０１０６】
調整済単語重要度データ１１０２は、比較文書Ｌ１２の抽出単語、ＴＦ（出現数）、見出しとの距離、調整値、調整済ＴＦの各フィールドを有する。抽出単語のフィールドには、比較文書Ｌ１２の抽出単語が設定される。ＴＦ（出現数）のフィールドには、各抽出単語の文中（ｃｏｎｔｅｎｔｓ）の出現数が設定される。例えば、抽出単語「出荷」の出現数は「６」である。調整済単語重要度算出部２０３は、これら抽出単語と、ＴＦ（出現数）は、調整済単語重要度算出部２０３が、ｃｏｎｔｅｎｔｓの値（文）を形態素解析して、名刺、動詞、形容詞、接頭詞とその出現数を算出する。
【０１０７】
見出しとの距離のフィールドには、各抽出単語と見出しとの距離が設定される。例えば、抽出単語「出荷」は、見出し語リスト（ｈｅａｄｉｎｇＬｉｓｔ）ｔ３に含まれているため、見出しとの距離の値が「１」に設定される。見出しとの距離の値が「０」は見出し語リスト（ｈｅａｄｉｎｇＬｉｓｔ）ｔ３に含まれていない抽出単語（例えば「営業」）に対応して設定される。
【０１０８】
ここで、距離と調整値対応表２１３には、抽出単語と見出しとの距離に対応する調整倍率を設定しておく。例えば、距離「１」の調整倍率は「４」である（部分ｔ４）。
【０１０９】
そして、調整済単語重要度算出部２０３は、調整済単語重要度データ１１０２の調整値のフィールドには、抽出単語が見出し語データテーブル２１４に含まれており、かつ調整値加算の有無が「有」の場合は、調整倍率の二乗を調整値として設定する。
【０１１０】
例えば、抽出単語「出荷」は、抽出単語が見出し語データテーブル２１４に含まれており、かつ調整値加算の有無が「有」である。この場合、調整済単語重要度算出部２０３は、抽出単語「出荷」について、距離と調整値対応表２１３から調整倍率「４」を読み出し、この値「４」の二乗＝「１６」を調整値に設定する。一方、抽出単語が見出し語データテーブル２１４に含まれているが、調整値加算の有無が「無」の場合は、調整倍率を調整値に設定する。
【０１１１】
そして、調整済単語重要度算出部２０３は、調整済単語重要度データ１１０２の調整済ＴＦのフィールドには、ＴＦ×見出しとの距離×調整値で算出した値を設定する。例えば、抽出単語「出荷」は、６×１×１６＝「９６」となる。
【０１１２】
図１１Ｃは、比較文書Ｌ２２に対し、調整済単語重要度算出部２０３が作成する調整済単語重要度データ１１０２と、距離と調整値対応表２１３の例を示す。この例では、抽出単語「情報」は、ＴＦ（出現数）が「２」、見出しとの距離が「１」、調整値が「４」（見出し語データテーブル２１４の調整値加算の有無が「無」のため二乗せず、調整倍率「４」のまま）、調整済ＴＦが「８」となる。
【０１１３】
上述した距離と調整値対応表２１３の調整倍率は、例えば、調整倍率の算出関数（ａｄｊｕｓｔ（ｄ））に基づき求める。
【０１１４】
図１１Ｄは、調整倍率の算出関数を示し、横軸は単語と見出し間の距離、縦軸は単語の重要度である。ａｄｊｕｓｔ（ｄ）の定義を下記に示す。
パラメータｄは、ある単語ｗが同一文書内で見出しとして出現する位置との距離である。見出しとして出現しない場合は「０」である（０以上の整数）。複数の見出しに、同じ単語が出現する場合の距離ｄは、最も深い見出しの深さとの相対距離を用いる。なお、見出しの距離を深さの絶対値にしない理由は、ｗの重要度を求める関数のため、ｗとの相対距離が適切とした。
算出式は、ｄ＝０の場合、ａｄｊｕｓｔ（ｄ）＝１であり、ｄ＞０の場合、ａｄｊｕｓｔ（ｄ）＝ｍ／ｄである。但し、ｍは１より大きい正の実数で、距離が１、すなわち最も近い見出しに単語ｗが含まれている場合の倍率として定めた定数である。上記例に示す距離と調整値対応表２１３ではｍ＝４とした。
ａｄｊｕｓｔ（ｄ）の値域：０＜ａｄｊｕｓｔ（ｄ）≦ｍとする。
【０１１５】
図１１Ｅは、調整済単語重要度テーブル２１５の例を示す。調整済単語重要度算出部２０３は、調整済単語重要度テーブル２１５として、比較文書Ｌ１，Ｌ２それぞれの抽出単語毎に、調整済ＴＦ、単語出現文書数（比較文書Ｌ１，Ｌ２での出現数「１または２」を設定する。また、上述したＴＦ−ＩＤＦを用いて算出した単語の重要度（ＩＤＦ）と、比較文書Ｌ１，Ｌ２それぞれにおける調整済ＴＦ−ＩＤＦとを算出する。
【０１１６】
例えば、単語「出荷」について、比較文書Ｌ１の抽出単語「出荷」の調整済ＴＦは「９６」（図１１Ｂ参照）、同じ抽出単語「出荷」の比較文書Ｌ２の抽出単語「出荷」の調整済ＴＦは「３２」（図１１Ｃ参照）である。また、単語出現文書数は、比較文書Ｌ１，Ｌ２いずれにも出現しているため「２」である。また、「出荷」はＴＦ−ＩＤＦの算出式に基づきＩＤＦがＬｏｇ（２／２）＋１＝「１」、比較文書Ｌ１のＴＦ−ＩＤＦは１×９６＝「９６」、「比較文書Ｌ２」のＴＦ−ＩＤＦは１×３２＝「３２」となる。
【０１１７】
図１２〜図１５は、実施の形態にかかる調整済単語重要度算出の処理例を示すフローチャートである。図１２には、調整済単語重要度算出部２０３が行う調整済単語重要度算出の全体処理例を示す。制御部（ＣＰＵ３０１）が実行する調整済単語重要度算出部２０３の全体処理を示す。
【０１１８】
はじめに、制御部は、見出し語データテーブル２１４の作成処理を行う（ステップＳ１２０１）。次に、制御部は、作成した見出し語データテーブル２１４および距離と調整値対応表２１３を用いて比較文書Ｌ１の調整済単語重要度データ１１０２を作成する（ステップＳ１２０２）。同様に、制御部は、作成した見出し語データテーブル２１４および距離と調整値対応表２１３を用いて比較文書Ｌ２の調整済単語重要度データ１１０２を作成する（ステップＳ１２０３）。この後、制御部は、作成した比較文書Ｌ１，Ｌ２の調整済単語重要度データ１１０２を用いて調整済単語重要度テーブル２１５（図１１Ｅ参照）を作成し（ステップＳ１２０４）、以上の処理を終了する。
【０１１９】
図１３Ａ，図１３Ｂには、見出し語データ（図１１Ａおよび図１２のステップＳ１２０１対応）の作成処理例を示す。図１３Ａに示すように、はじめに、制御部は、比較資料１（Ｓ１）から作成された比較文書データＬ１を取得する（ステップＳ１３０１）。そして、制御部は、比較文書データＬ１のｈｅａｄｉｎｇＬｉｓｔから先頭の要素ｈＥｌｅｍｅｎｔを取得する（ステップＳ１３０２）。そして、制御部は、要素ｈＥｌｅｍｅｎｔが取得できたか判断する（ステップＳ１３０３）。要素ｈＥｌｅｍｅｎｔが取得できれば（ステップＳ１３０３：Ｙｅｓ）、制御部は、ステップＳ１３０４の処理に移行し、要素ｈＥｌｅｍｅｎｔが取得できなければ（ステップＳ１３０３：Ｎｏ）、ステップＳ１３１０の処理に移行する。
【０１２０】
ステップＳ１３０４では、制御部は、要素ｈＥｌｅｍｅｎｔから先頭の文字列ｈＳｔｒｉｎｇを取得する（ステップＳ１３０４）。そして、制御部は、ｈＳｔｒｉｎｇが取得できたか判断する（ステップＳ１３０５）。ｈＳｔｒｉｎｇが取得できれば（ステップＳ１３０５：Ｙｅｓ）、制御部は、ステップＳ１３０７の処理に移行し、ｈＳｔｒｉｎｇが取得できなければ（ステップＳ１３０５：Ｎｏ）、ステップＳ１３０６の処理に移行する。
【０１２１】
ステップＳ１３０６では、制御部は、比較文書データＬ１のｈｅａｄｉｎｇＬｉｓｔから次の要素ｈＥｌｅｍｅｎｔを取得し（ステップＳ１３０６）、ステップＳ１３０４の処理に戻る。
【０１２２】
ステップＳ１３０７では、制御部は、見出し語データテーブル２１４から、見出し語フィールドが文字列ｈＳｔｒｉｎｇと一致するレコードＲを取得する。一致するレコードＲがなければレコードＲを追加し、見出し語フィールドにｈＳｔｒｉｎｇを設定し、比較文書Ｌ１、比較文書Ｌ２、調整値加算の有無の各フィールドに「無」を設定する（ステップＳ１３０７）。
【０１２３】
次に、制御部は、レコードＲの比較文書Ｌ１フィールドに「有」を設定する（ステップＳ１３０８）。次に、制御部は、要素ｈＥｌｅｍｅｎｔから次の文字列ｈＳｔｒｉｎｇを取得し（ステップＳ１３０９）、ステップＳ１３０５の処理に戻る。
【０１２４】
ステップＳ１３１０では、制御部は、比較資料２から作成された比較文書データＬ２を取得する（ステップＳ１３１０）。そして、制御部は、比較文書データＬ２のｈｅａｄｉｎｇＬｉｓｔから先頭の要素ｈＥｌｅｍｅｎｔを取得する（ステップＳ１３１１）。そして、制御部は、要素ｈＥｌｅｍｅｎｔが取得できたか判断する（ステップＳ１３１２）。要素ｈＥｌｅｍｅｎｔが取得できれば（ステップＳ１３１２：Ｙｅｓ）、制御部は、ステップＳ１３１３の処理に移行し、要素ｈＥｌｅｍｅｎｔが取得できなければ（ステップＳ１３１２：Ｎｏ）、ステップＳ１３１９（図１３Ｂ）の処理に移行する。
【０１２５】
ステップＳ１３１３では、制御部は、要素ｈＥｌｅｍｅｎｔから先頭の文字列ｈＳｔｒｉｎｇを取得する（ステップＳ１３１３）。そして、制御部は、ｈＳｔｒｉｎｇが取得できたか判断する（ステップＳ１３１４）。ｈＳｔｒｉｎｇが取得できれば（ステップＳ１３１４：Ｙｅｓ）、制御部は、ステップＳ１３１６の処理に移行し、ｈＳｔｒｉｎｇが取得できなければ（ステップＳ１３１４：Ｎｏ）、ステップＳ１３１５の処理に移行する。
【０１２６】
ステップＳ１３１５では、制御部は、比較文書データＬ２のｈｅａｄｉｎｇＬｉｓｔから次の要素ｈＥｌｅｍｅｎｔを取得し（ステップＳ１３１５）、ステップＳ１３１３の処理に戻る。
【０１２７】
ステップＳ１３１６では、制御部は、見出し語データテーブル２１４から、見出し語フィールドが文字列ｈＳｔｒｉｎｇと一致するレコードＲを取得する。一致するレコードＲがなければレコードＲを追加し、見出し語フィールドにｈＳｔｒｉｎｇを設定し、比較文書Ｌ１、比較文書Ｌ２、調整値加算の有無の各フィールドに「無」を設定する（ステップＳ１３１６）。
【０１２８】
次に、制御部は、レコードＲの比較文書Ｌ２フィールドに「有」を設定する（ステップＳ１３１７）。次に、制御部は、要素ｈＥｌｅｍｅｎｔから次の文字列ｈＳｔｒｉｎｇを取得し（ステップＳ１３１８）、ステップＳ１３１４の処理に戻る。
【０１２９】
図１３Ｂに示すステップＳ１３１９では、制御部は、見出し語データテーブル２１４からレコードＲを取得する（ステップＳ１３１９）。そして、制御部は、レコードＲが取得できたか判断する（ステップＳ１３２０）。レコードＲが取得できれば（ステップＳ１３２０：Ｙｅｓ）、ステップＳ１３２１の処理に移行し、レコードＲが取得できなければ（ステップＳ１３２０：Ｎｏ）、以上の処理を終了する。
【０１３０】
ステップＳ１３２１では、制御部は、レコードＲのフィールドの比較文書Ｌ１と比較文書Ｌ２が両方とも「有」の場合は、フィールド「調整値加算の有無」の値を「有」に設定する（ステップＳ１３２１）。そして、制御部は、見出し語データテーブル２１４から次のレコードＲを取得し（ステップＳ１３２２）、ステップＳ１３２０の処理に戻る。
【０１３１】
図１４は、比較文書Ｌ１，Ｌ２の調整済単語重要度データ１１０２（図１１Ｂおよび図１２のステップＳ１２０２，ステップＳ１２０３対応）の作成処理例を示す。図１４に示すように、はじめに、制御部は、比較資料Ｎ（Ｎ＝１，２）から作成された比較文書データＬ（Ｌ１，Ｌ２）を取得する（ステップＳ１４０１）。
【０１３２】
次に、制御部は、比較文書データＬのｃｏｎｔｅｎｔｓフィールドから単語ｗを取得する（ステップＳ１４０２）。そして、制御部は、単語ｗが取得できたか判断する（ステップＳ１４０３）。単語ｗが取得できれば（ステップＳ１４０３：Ｙｅｓ）、ステップＳ１４０４の処理に移行し、単語ｗが取得できなければ（ステップＳ１４０３：Ｎｏ）、以上の処理を終了する。
【０１３３】
ステップＳ１４０４では、制御部は、比較資料Ｎ用の調整済単語重要度データ１１０２から、「文書Ｎ抽出単語」フィールドが単語ｗと一致するレコードＲを取得し、「文書ＮのＴＦ」フィールドの値に「１」を加算する（ステップＳ１４０４）。この際、該当レコードがなければレコードＲを追加し、「文書Ｎ抽出単語」フィールドにｗを設定し、「文書ＮのＴＦ」フィールドの値に「１」を設定する。
【０１３４】
次に、制御部は、比較文書データＬのｈｅａｄｉｎｇＬｉｓｔフィールドの後ろから最初にｗが含まれているリストを探索する（ステップＳ１４０５）。ここで、ｎ番目のリストに含まれている場合は「見出しとの距離」フィールドに「ｎ」を設定し、いずれにも含まれていない場合は「見出しとの距離」フィールドに「０」を設定する。
【０１３５】
次に、制御部は、距離と調整値対応表２１３の「距離」フィールドの値が「見出しとの距離」フィールドの値と一致するレコードを取得し、そのレコードの「調整倍率」フィールドの値Ｍを取得する（ステップＳ１４０６）。
【０１３６】
次に、制御部は、見出し語データテーブル２１４の中に「見出し語」フィールドの値がｗと一致するレコードがあり、そのレコードの「調整値加算の有無」フィールドが「有」の場合はＰ＝２とし、「無」の場合はＰ＝１とする（ステップＳ１４０７）。なお、この例では「有」の場合にＰ＝２としているが、「無」の場合よりも大きな値であればよい。
【０１３７】
次に、制御部は、レコードＲの「調整値」フィールドに、調整倍率ＭをＰ乗した値Ｖ１を設定し、「文書Ｎの調整済ＴＦ」フィールドに「文書ＮのＴＦ」フィールドの値とＶ１の積を設定する（ステップＳ１４０８）。
【０１３８】
そして、制御部は、比較文書データＬのｃｏｎｔｅｎｔｓフィールドから次の単語ｗを取得し（ステップＳ１４０９）、ステップＳ１４０３の処理に戻る。
【０１３９】
図１５は、調整済単語重要度テーブル２１５（図１１Ｅおよび図１２のステップＳ１２０４対応）の作成処理例を示す。はじめに、制御部は、比較資料１用の調整済単語重要度データ１１０２の各レコードの「文書１抽出単語」フィールドと、「文書１の調整済ＴＦ」フィールドの値を取得し、調整済単語重要度テーブル２１５の同名のフィールドに転記する（ステップＳ１５０１）。
【０１４０】
次に、制御部は、比較資料２用の調整済単語重要度データ１１０２の各レコードの「文書２抽出単語」フィールドの値Ａと「文書２の調整済ＴＦ」フィールドの値Ｂを取得する（ステップＳ１５０２）。そして、調整済単語重要度データ１１０２の「文書１抽出単語」フィールドの値が値Ａと一致するレコードがあればそのレコードＲを取得し、なければレコードＲを追加し、「文書１調整済ＴＦ」フィールドに「０」を設定する。また、レコードＲに対して、値ＡとＢを調整済単語重要度テーブル２１５の同名のフィールドに転記する。
【０１４１】
次に、制御部は、調整済単語重要度データ１１０２の総レコード数ｎを取得する（ステップＳ１５０３）。次に、調整済単語重要度データ１１０２の先頭のレコードＲＲを取得する（ステップＳ１５０４）。そして、制御部は、レコードＲＲが取得できたか判断する（ステップＳ１５０５）。レコードＲＲが取得できれば（ステップＳ１５０５：Ｙｅｓ）、ステップＳ１５０６の処理に移行し、レコードＲＲが取得できなければ（ステップＳ１５０５：Ｎｏ）、以上の処理を終了する。
【０１４２】
ステップＳ１５０６では、制御部は、レコードＲＲの「単語出現文書数」フィールドに以下の値を設定する（ステップＳ１５０６）。「文書１抽出単語」フィールドと「文書２抽出単語」フィールドの両方に値が設定されている場合は「２」、いずれか一つだけに値が設定されている場合は「１」を設定する。
【０１４３】
次に、制御部は、レコードＲＲの「単語出現文書数」フィールドの値ｄを取得する（ステップＳ１５０７）。そして、レコードＲＲの「ＩＤＦ」フィールドに以下の値ＩＤＦを設定する。ＩＤＦ＝Ｌｏｇ10（２／ｄ）（ステップＳ１５０８）。
【０１４４】
次に、制御部は、レコードＲＲの「文書１調整済ＴＦ」フィールドの値Ｖ１と、「文書２調整済ＴＦ」フィールドの値Ｖ２を取得する（ステップＳ１５０９）。そして、制御部は、レコードＲＲの「文書１調整済ＴＦ−ＩＤＦ」フィールドにＶ１とＩＤＦの積を設定し、「文書２調整済ＴＦ−ＩＤＦ」フィールドにＶ２とＩＤＦの積を設定する（ステップＳ１５１０）。
【０１４５】
この後、制御部は、調整済単語重要度データ１１０２の次のレコードＲＲを取得し（ステップＳ１５１１）、ステップＳ１５０５の処理に戻る。
【０１４６】
（文書間類似度算出部）
図１６Ａ，図１６Ｂは、実施の形態にかかる文書間類似度算出の処理の説明図である。上記文書間類似度算出部２０４の処理機能を説明する。
【０１４７】
文書間類似度算出部２０４は、比較資料１，２に出現する単語の重要度（調整済ＴＦ−ＩＤＦ）の値から、コサイン類似度の算出式を用いて文書間類似度を算出する。図１６Ａには、文書間類似度算出データ１６００の例を示す。文書間類似度算出データ１６００は、比較文書Ｌ１，Ｌ２それぞれの調整済ＴＤ−ＩＤＦ、コサイン類似度分子小計、コサイン類似度の分母（比較文書Ｌ１，Ｌ２）の各フィールドを有する。
【０１４８】
比較文書Ｌ１，Ｌ２それぞれの調整済ＴＤ−ＩＤＦのフィールドは、調整済単語重要度テーブル２１５の値である。コサイン類似度分子小計、コサイン類似度の分母（比較文書Ｌ１，Ｌ２）の各フィールドは、上記式（１）のコサイン類似度の算出時のパラメータである。コサイン類似度分子小計は上記式（１）の（ａｉ×ｂｉ）に相当し、コサイン類似度の分母（比較文書Ｌ１）は、ａｉ2，コサイン類似度の分母（比較文書Ｌ２）は、ｂｉ2に相当する。
【０１４９】
また、文書間類似度算出データ１６００には、最下段の部分に示したように、コサイン類似度分子小計、コサイン類似度の分母（比較文書Ｌ１，Ｌ２）それぞれの値の小計と、算出したコサイン類似度の値１６０１を含む。
【０１５０】
また、図１６Ｂには、文書間類似度テーブル２１６を示す。文書間類似度算出部２０４は、図１６Ａの文書間類似度算出データ１６００に示したコサイン類似度の算出に用いた二つの比較文１，２書の情報と、算出したコサイン類似度の値を文書間類似度テーブル２１６に出力する。
【０１５１】
文書間類似度テーブル２１６は、比較文書Ｌ１，Ｌ２それぞれのｍａｔｅｒｉａｌ＿ＩＤ、ｈｅａｄｉｎｇ＿ＩＤ、ｇｒｏｕｐ＿ＩＤと、コサイン類似度のフィールドを含む。
【０１５２】
比較文書Ｌ１は、比較資料１の一部に見出しの情報を付加したものであるため、文書作成部２０２において、比較資料１から複数個（Ｎ個）の比較文書Ｌ１が作成される。比較文書Ｌ２についても同様に複数個（Ｍ個）作成される。
【０１５３】
したがって、全体の処理例（図６参照）でも説明したように、調整済単語重要度算出部２０３と、文書間類似度算出部２０４の処理は、比較文書Ｌ１と比較文書Ｌ２それぞれの文書内の部分（見出し＋本文）毎を組み合わせて行う。すなわち、Ｎ×Ｍ個の個々の組み合わせに対し、調整済単語重要度算出部２０３と、文書間類似度算出部２０４の二つの算出処理を実行する。
【０１５４】
文書間類似度テーブル２１６の各レコードは、これら個々の組み合わせに対して調整済単語重要度算出部２０３と、文書間類似度算出部２０４の処理を行った結果である。したがって、全組み合わせの処理が終了した時、この文書間類似度テーブル２１６のレコード数はＮ×Ｍ個となる。以下に示す文書間類似度算出部２０４の処理内容は、個々の組み合わせに対して行う処理である。
【０１５５】
図１７は、実施の形態にかかる文書間類似度算出の処理例を示すフローチャートである。制御部（ＣＰＵ３０１）が実行する文書間類似度算出部２０４の処理例を示す。
【０１５６】
はじめに、制御部は、調整済単語重要度テーブル２１５から先頭のレコードＲを取得する（ステップＳ１７０１）。そして、制御部は、レコードＲが取得できたか判断する（ステップＳ１７０２）。レコードＲが取得できれば（ステップＳ１７０２：Ｙｅｓ）、ステップＳ１７０３の処理に移行し、レコードＲが取得できなければ（ステップＳ１７０２：Ｎｏ）、ステップＳ１７０７の処理に移行する。
【０１５７】
ステップＳ１７０３では、制御部は、文書間類似度算出データ１６００にレコードＲＲを追加する（ステップＳ１７０３）。そして、制御部は、レコードＲの２フィールド「文書１調整済ＴＦ−ＩＤＦ」と、「文書２調整済ＴＦ−ＩＤＦ」の値Ｖ１、Ｖ２を取得し、レコードＲＲの同名のフィールドに転記する（ステップＳ１７０４）。
【０１５８】
次に、制御部は、ステップＳ１７０５の処理で、レコードＲＲの「コサイン類似度分子小計」フィールドにＶ１とＶ２の積の値を設定する。また、フィールド「コサイン類似度の分母（比較文書Ｌ１）」にＶ１の二乗の値を設定する。また、フィールド「コサイン類似度の分母（比較文書Ｌ２）」にＶ２の二乗の値を設定する（ステップＳ１７０５）。
【０１５９】
次に、制御部は、調整済単語重要度テーブル２１５から次のレコードＲを取得し（ステップＳ１７０６）、ステップＳ１７０２の処理に戻る。
【０１６０】
ステップＳ１７０７では、制御部は、文書間類似度算出データ１６００の全レコードのフィールド「コサイン類似度分子小計」の総和Ｔ１を算出する。また、フィールド「コサイン類似度の分母（比較文書Ｌ１）」の総和Ｔ２を算出する。また、フィールド「コサイン類似度の分母（比較文書Ｌ２）」の総和Ｔ３、を算出する（ステップＳ１７０７）。
【０１６１】
この後、制御部は、上記式（１）に基づき、コサイン類似度を算出する（ステップＳ１７０８）。この処理例では、コサイン類似度＝Ｔ１／（Ｔ２の平方根＋Ｔ３の平方根）となる。
【０１６２】
この後、制御部は、文書間類似度テーブル２１６にレコードを追加し、追加したレコードに比較文書Ｌ１と比較文書Ｌ２のｍａｔｅｒｉａｌ＿ＩＤ、ｈｅａｄｉｎｇ＿ＩＤ、ｇｒｏｕｐＩＤ、算出したコサイン類似度を出力する（ステップＳ１７０９）。以上により、制御部は、文書間類似度算出にかかる処理を終了する。
【０１６３】
図１８、図１９は、実施の形態にかかる文書間類似度出力の処理の説明図である。文書間類似度算出部２０４は、文書間類似度テーブル２１６を参照し、作成した要件定義書Ｓ２内の、ある要件を表した文書（比較文書Ｌ２）に対して最も類似度が高い標準の要件定義書Ｓ１内の要件を表した文書（比較文書Ｌ１）を判断する。そして、これら比較文書Ｌ１，Ｌ２の組み合わせＮ×Ｍ毎の類似度を画面やファイル等に出力する。
【０１６４】
図１８には、要件定義書レビューＲＶの画面例を示す。判定結果表示部１０２の上部領域Ａに比較文書Ｌ２に対して、最も類似度が高い比較文書Ｌ１を類似度と共に表示している。ａ１で示した行は、文書間類似度テーブル２１６例の中で最も高い類似度を示したレコードを元にしている行である。ａ２で示した行は算出した類似度の中では最高値だが、一般的には低い値で、ａ１の行に示された二つの文書が似ていないことを示している（ケース２）。
【０１６５】
また、判定結果表示部１０２の下部領域Ｂには、上部領域Ａに現れなかった比較文書Ｌ１を表示している。ｂ１で示した行の類似度は低く二つの文書が似ていないことを示している（ケース１）。また、ｂ２で示した行の類似度は一般的には低いとはいえず、また、見出し「２−２」の項目番号１が上部領域Ａにも現れている。これらから、見出し「２−２」の項目番号「１」は、標準的な要件定義書Ｓ１に記述されている二つの要件が、要件定義書Ｓ２ではまとめて記述されている可能性を示している。
【０１６６】
また、上部領域Ａの中のａ２に該当する行と、下部領域Ｂに含まれる行は、確認すべき要件を示しており、所定色（類似度が最も低いものは赤色、次に低いものは黄色等）をつけて注意を促している。例えば、所定の類似度閾値の設定値の大きさによって注意の度合いが異なるので、非常に値が小さく注意が必要なものとそれ以外の場合とで色を変えてもよい。
【０１６７】
また、上記表示例の要件定義書レビューＲＶの判定結果表示部１０２には、類似度の高低に関わらず全ての組み合わせを出力していたが、類似度が低い組み合わせだけを表示してもよい。すなわち、比較文書間の類似度が高いということは、標準的な要件定義書Ｓ１に含まれる要件が、作成した要件定義書Ｓ２にも記述されていることを示す。逆に、類似度が低いことは、対応する比較文書Ｌ２、つまり類似した要件が要件定義書Ｓ２には存在しないということを意味し、次の二つの場合がある。これらの場合、作成した要件定義書Ｓ２の確認が必要である。
【０１６８】
ケース１：標準的な要件定義書Ｓ１に含まれる要件が、作成した要件定義書Ｓ２には記述されていない場合。この場合、要件定義書Ｓ２に要件の記載漏れの可能性があることを意味する。
ケース２：標準的な要件定義書Ｓ１には含まれていない要件が作成した要件定義書Ｓ２に記述されている場合。この場合、要件定義書Ｓ２に不要な要件が記載されている可能性があることを意味する。
【０１６９】
図１９には、要件定義書レビューＲＶの他の出力例を示す。上記例では、要件定義書レビューＲＶに類似度の数値を出力したが、これに限らず他の出力例としてもよい。図１９の例では、類似度が閾値以上の比較文書の個数を元に、表分類したものである。この例の要件定義書レビューＲＶは、比較文書Ｌ１，Ｌ２の数、対応関係のイメージ図、分類結果を含む。対応関係のイメージ図は、〇印が比較文書Ｌに記載されている各要件、×は記載が無い要件であり、比較文書Ｌ１，Ｌ２間の各要件を線分でつないで示す。
【０１７０】
例えば、比較文書Ｌ１と類似度が高い比較文書Ｌ２が２個以上ある場合は、標準的な要件定義書Ｓ１に記述されている要件が要件定義書Ｓ２に複数回記述されており、冗長な要件であることを示す（ケース３）。また、比較文書Ｌ２と類似度が高い比較文書Ｌ１が２個以上ある場合は、標準的な要件定義書Ｓ１に記述されている複数個の要件が、要件定義書Ｓ２の１個の要件に記述されており、複雑な要件であることを示す（ケース４）。このほか、上述したケース１，２、および１：１で標準に類似した要件、についてもそれぞれ示す。
【０１７１】
また、比較文書Ｌ１，Ｌ２の要件毎の対応関係をイメージ図として表示することで、より直感的に比較文書Ｌ１，Ｌ２の要件毎の対応関係を把握できるようになる。
【０１７２】
以上説明した実施の形態によれば、自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、比較結果によって得られた２つの要件定義書の見出しと当該見出しの本文を単位とした類似性を判断する。これにより、階層構造で記載された要件定義書の構造に対応し、見出しと本文の単位ごとに２つの要件定義書の類似性を判断することができる。類似性の判断に見出しを考慮するため、例えば、見出しにのみ含まれ、見出し直下の本文に含まれない語句がある場合であっても、単位ごとの正確な類似性を判断できるようになる。また、見出しを単位として類似性を判断するため、上位階層の見出しと下位の階層、さらには途中階層であっても、この階層の制約を受けずに類似性を判断でき、２つの要件定義書全体の見出しの単位ごとの類似性を判断できるようになる。例えば、類似性が低いと判断された要件定義書には、要件の記載漏れの可能性があることを知らせることができる。
【０１７３】
また、一方の要件定義書は、予め基準となる見出しと当該見出しの本文の情報を含み、他方の要件定義書は、被検査対象として作成された見出しと当該見出しの本文の情報を含んでもよい。この場合、比較結果に基づき、一方と他方の要件定義書全体に対し、他方の要件定義書の見出しと当該見出しの本文を単位とした記載事項が、基準となる一方の要件定義書の記載事項に記載されているか否かを判断する。これにより、例えば、システム開発時毎に作成した要件定義書を基準の要件定義書と比較することで、作成毎の要件定義書で類似性が低いと判断された場合、要件の記載漏れの可能性があることを知らせることができる。
【０１７４】
また、自然言語で記載された２つの要件定義書の構造を、それぞれ構造化文書に変換し、２つの構造化文書を、それぞれ見出しと当該見出しの本文を単位とした複数の文書データを作成する。そして、２つの構造化文書を見出しと当該見出しの本文を単位とした複数の組み合わせで比較し、複数の組み合わせ毎の類似性を判断してもよい。これにより、２つの要件定義書全体について、見出しの単位ごとの組み合わせＮ×Ｍでそれぞれ類似性を判断できるようになる。例えば、同様の要件の記載箇所や記載階層が２つの要件定義書で異なる場合にも対応でき、これら２つの要件定義書全体にわたり類似性を判断でき、また、要件の記載漏れの可能性があることを知らせることができる。
【０１７５】
また、２つの構造化文書それぞれについて、当該構造化文書上の記号符号に基づき、見出しおよび当該見出しの本文の位置を判断し、見出しと当該見出しの本文を単位とした複数の文書データを作成し、文書データを用いて類似性を判断してもよい。これにより、要件定義書が有する構造に対応した判断処理を適切に行うことができるようになる。例えば、要件定義書の構造に対応して１要件毎の文章を抽出でき、また、文書内の単語の重要度に応じて２つの要件定義書間の類似性を判断できるようになる。
【０１７６】
また、変換後の２つの構造化文書の見出しに含まれる単語を抽出し、当該単語が２つの構造化文書のいずれに含まれるかを示す見出し語データを作成し、２つの構造化文書の本文に含まれる単語を抽出してもよい。そして、当該単語が見出し語データの見出し語に含まれるか否かを判断し、見出し語データに２つの構造化文書のいずれにも含まれる単語であれば、本文に含まれる単語のうち、見出しに含まれる単語の重要度を高くする調整を行った単語重要度データを作成する。この単語重要度データに基づき、２つの要件定義書の見出しと当該見出しの本文を単位とした類似性を判断してもよい。これにより、２つの要件定義書に現れる全ての単語を対象として各単語の重要度を調整することで、類似性の判断精度をより高めることができるようになる。
【０１７７】
また、類似性の判断は、２つの要件定義書の見出しと当該見出しの本文を単位としてコサイン類似度を算出してもよい。これにより、汎用の技術を用いて簡単に２つの文書間の類似度を判断できるようになる。
【０１７８】
また、２つの要件定義書の見出しと当該見出しの本文を単位とした類似性を、単位毎の対応関係をイメージ図として出力してもよい。このように、類似性は、類似度の算出に限らずイメージ図としてもよく、２つの要件定義書の類似性を直感的に容易に判断できるようになる。
【０１７９】
また、類似性の判断に基づき、他方の要件定義書に類似性が低い文書しか見つからない場合、他方の要件定義書に要件の記載漏れがある、と判断し、通知してもよい。これにより、作成した要件定義書のレビュー時に要件の記載漏れがあることを適切に知らせることができるようになる。
【０１８０】
これらのことから、実施の形態によれば、自然言語でかつ階層化して記載された要件定義書であっても、２つの要件定義書間の類似性を正しく判断することができるようになる。例えば、類似性が低いと判断された要件定義書には、要件の記載漏れの可能性があることを知らせることができ、作成した要件定義書のレビューを自動化できるようになる。
【０１８１】
なお、本発明の実施の形態で説明した要件定義書作成支援にかかる方法は、予め用意されたプログラムをサーバ等のプロセッサに実行させることにより実現することができる。本方法は、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本方法は、インターネット等のネットワークを介して配布してもよい。
【０１８２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８３】
（付記１）自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
処理をコンピュータに実行させることを特徴とする要件定義書作成支援プログラム。
【０１８４】
（付記２）一方の要件定義書は、予め基準となる見出しと当該見出しの本文の情報を含み、
他方の要件定義書は、被検査対象として作成された見出しと当該見出しの本文の情報を含み、
前記比較結果に基づき、一方と他方の前記要件定義書全体に対し、他方の前記要件定義書の前記見出しと当該見出しの本文を単位とした記載事項が、基準となる一方の前記要件定義書の記載事項に記載されているか否かを判断する、
ことを特徴とする付記１に記載の要件定義書作成支援プログラム。
【０１８５】
（付記３）自然言語で記載された２つの前記要件定義書の構造を、それぞれ構造化文書に変換し、
２つの前記構造化文書を、それぞれ前記見出しと当該見出しの本文を単位とした複数の文書データを作成し、
２つの前記構造化文書を前記見出しと当該見出しの本文を単位とした複数の組み合わせで比較し、
前記複数の組み合わせ毎の類似性を判断する、
ことを特徴とする付記１または２に記載の要件定義書作成支援プログラム。
【０１８６】
（付記４）変換後の２つの前記構造化文書それぞれについて、当該構造化文書上の記号符号に基づき、前記見出しおよび当該見出しの本文の位置を判断し、前記見出しと当該見出しの本文を単位とした複数の前記文書データを作成し、
前記文書データを用いて類似性を判断することを特徴とする付記３に記載の要件定義書作成支援プログラム。
【０１８７】
（付記５）２つの前記構造化文書の前記見出しに含まれる単語を抽出し、当該単語が前記２つの前記構造化文書のいずれに含まれるかを示す見出し語データを作成し、
前記２つの前記構造化文書の前記本文に含まれる単語を抽出し、当該単語が前記見出し語データの見出し語に含まれるか否かを判断し、
前記見出し語データに２つの前記構造化文書のいずれにも含まれる単語であれば、前記本文に含まれる単語のうち、前記見出しに含まれる単語の重要度を高くする調整を行った単語重要度データを作成し、
前記単語重要度データに基づき、２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
ことを特徴とする付記４に記載の要件定義書作成支援プログラム。
【０１８８】
（付記６）前記類似性の判断は、
２つの前記要件定義書の前記見出しと当該見出しの本文を単位としてコサイン類似度を算出する、
ことを特徴とする付記１〜５のいずれか一つに記載の要件定義書作成支援プログラム。
【０１８９】
（付記７）２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を、前記単位毎の対応関係をイメージ図として出力する、
ことを特徴とする付記１〜６のいずれか一つに記載の要件定義書作成支援プログラム。
【０１９０】
（付記８）前記類似性の判断に基づき、他方の前記要件定義書に類似性が低い文書しか見つからない場合、他方の前記要件定義書に要件の記載漏れがある、と判断し、通知することを特徴とする付記２〜７のいずれか一つに記載の要件定義書作成支援プログラム。
【０１９１】
（付記９）自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する、
処理をコンピュータが実行することを特徴とする要件定義書作成支援方法。
【０１９２】
（付記１０）自然言語で記載された要件の見出しと当該見出しの本文を有する２つの要件定義書を比較し、
前記比較結果によって得られた２つの前記要件定義書の前記見出しと当該見出しの本文を単位とした類似性を判断する制御部、
を有することを特徴とする要件定義書作成支援装置。
【０１９３】
（付記１１）前記制御部は、
前記類似性の判断に基づき、他方の前記要件定義書に類似性が低い文書しか見つからない場合、他方の前記要件定義書に要件の記載漏れがあると判断し、通知することを特徴とする付記１０に記載の要件定義書作成支援装置。
【符号の説明】
【０１９４】
１００  要件定義書作成支援装置
１０２  判定結果表示部
２０１  資料構造解析部
２０２  文書作成部
２０３  調整済単語重要度算出部
２０４  文書間類似度算出部
２０５  文書間類似度出力部
２１１  資料構造データ
２１２  比較文書データ
２１３  距離と調整値対応表
２１４  見出し語データテーブル
２１５  調整済単語重要度テーブル
２１６  文書間類似度テーブル
３０１  ＣＰＵ（制御部）
３０２  メモリ
３０３  ネットワークインタフェース（ＩＦ）
３０５  記録媒体
１１０２  調整済単語重要度データ
１６００  文書間類似度算出データ
Ｄ１，Ｄ２  資料構造データ
Ｌ（Ｌ１，Ｌ２）  比較文書（比較文書データ）
ＮＷ    ネットワーク
ＲＶ  要件定義書レビュー
Ｓ１，Ｓ２  要件定義書
Ｓ１１，Ｓ１２，Ｓ２１，Ｓ２２  グループ単位の文書
【図１】
2020197834.tif 000004
【図２】
2020197834.tif 000005
【図３】
2020197834.tif 000006
【図４】
2020197834.tif 000007
【図５】
2020197834.tif 000008
【図６】
2020197834.tif 000009
【図７】
2020197834.tif 000010
【図８Ａ】
2020197834.tif 000011
【図８Ｂ】
2020197834.tif 000012
【図９】
2020197834.tif 000013
【図１０Ａ】
2020197834.tif 000014
【図１０Ｂ】
2020197834.tif 000015
【図１１Ａ】
2020197834.tif 000016
【図１１Ｂ】
2020197834.tif 000017
【図１１Ｃ】
2020197834.tif 000018
【図１１Ｄ】
2020197834.tif 000019
【図１１Ｅ】
2020197834.tif 000020
【図１２】
2020197834.tif 000021
【図１３Ａ】
2020197834.tif 000022
【図１３Ｂ】
2020197834.tif 000023
【図１４】
2020197834.tif 000024
【図１５】
2020197834.tif 000025
【図１６Ａ】
2020197834.tif 000026
【図１６Ｂ】
2020197834.tif 000027
【図１７】
2020197834.tif 000028
【図１８】
2020197834.tif 000029
【図１９】
2020197834.tif 000030