බ⾗⥙㐺⏝
4.2 提案手法
前述した通り,構造化されていない自然言語で記述されている要求仕様書か らの自動構造化による試験項目の自動生成手法を示す.
試験項目の自動生成の手順は以下の通りである(図4.3).
【パート1】
(1) 要求仕様書に対し,試験項目に相当する部分にタグを付与し,タグ付 けドキュメントを作成する.
【パート2】
(2) タグ付けドキュメントを教師データとして蓄積し,機械学習機に学習 させる.
(3) 学習結果をタグの付与されていない要求仕様書に適用しタグを自動的 に付与する.
(4) タグ付けドキュメントから試験項目を自動的に作成する.
本章では,STEP2の機械学習機への学習方法について以降の節で機械学習 の性能向上を目指した手法の提案を行う.
4.2.1 要求仕様書に対するタグ付与手法
試験項目自動作成のため,構造化されていない自然言語記述の要求仕様書に 対し,安定化試験項目を作成するためのタグを付与する.付与されたタグに よって試験項目を作成することを目標とするため,要求仕様書に付与したタグ については,そのタグで括られる文章を集めることによって試験項目を作成す ることができなくてはならない.このため,タグの種類は試験項目の作成を意 識した構成とする必要がある.
システムに対する試験項目は一般的に,システムに与える入力情報(input) と,その時のシステムの状態(condition),そして,その入力がされた時のシス テムからの出力 (output)で構成される.このため,最低限のタグの情報とし て,『input/condition/output』を定義した.
さらに,入力およびそれに伴う出力条件が複合的であり,詳細な条件が付与 される場合を考慮し,入力条件情報(input condition)と出力条件情報 (output
condition)を定義した.また,通信システムにおいては複数のシステムで通信
網が構成されており,要求仕様書においても複数のシステム(セッション制御 システム/付加サービス制御システム 等)に同一の入力(SIP等のセッション の接続信号 等)が行われ,別の出力となる記述があるため,試験対象となるシ ステム情報(agent)を表すタグを定義した.
ф/ŶƉƵƚх ф/ŶƉƵƚ ĐŽŶĚŝƚŝŽŶх
фKƵƚƉƵƚĐŽŶĚŝƚŝŽŶх 㻮
㻯
фKƵƚƉƵƚх
фŐĞŶƚх
фŽŶĚŝƚŝŽŶх 㻭
ධຊሗ ධຊ᮲௳ሗ
ືసయ
䝅䝇䝔䝮᮲௳
фŚĞĐŬƉŽŝŶƚх
☜ㄆ䝫䜲䞁䝖
ฟຊሗ ฟຊ᮲௳ሗ
ˁಮίᐯᚕᛖὸ ἑἂ˄Ậ
ࢧ࣮ࣅࢫ᮲௳
ሗࢧ࣮ࣅࢫ᥋⥆
,1387!Ⓨ࣮ࣘࢨࡽࡢሗࢧ࣮ࣅࢫⓎ
ಙ,1387!
287387!Ⓨ࣮ࣘࢨࡢሗ࢞ࢲࣥࢫ⫈ྲྀࢆྍ
⬟287387!ࡍࡿࡲࡓ&21'!ሗ࢞ࢲࣥ
ࢫࡣࠊㄢ㔠࢞ࢲࣥࢫ&21'!ࡍࡿ
&21'!ሗࢧ࣮ࣅࢫࡣⓎ࣮ࣘࢨᑐࡋ
࡚ᇶᮏࢧ࣮ࣅࢫࡋ࡚ᥦ౪&21'!ࡍࡿ
ࢧ࣮ࣅࢫ᮲௳
ሗࢧ࣮ࣅࢫ᥋⥆
Ⓨ࣮ࣘࢨࡽࡢሗࢧ࣮ࣅࢫⓎಙ
Ⓨ࣮ࣘࢨࡢሗ࢞ࢲࣥࢫ⫈ྲྀࢆྍ⬟
ࡍࡿ
ࡲࡓሗ࢞ࢲࣥࢫࡣㄢ㔠࢞ࢲࣥࢫ
ࡍࡿሗࢧ࣮ࣅࢫࡣⓎ࣮ࣘࢨᑐ ࡋ࡚ᇶᮏࢧ࣮ࣅࢫࡋ࡚ᥦ౪ࡍࡿ
図4.2 要求仕様書構造化のための7つのタグ
その他,要求仕様書にはシステム内動作の詳細が記載されているケースもあ り,これはすなわち,検証実施時の確認すべきポイントであり,このシステム 内動作のチェック条件 (check point)である事を示すタグを定義した.これら のタグの関係性を図4.2に示す.
4.2.2 機械学習機を用いた自動タグ付け
要求仕様から試験項目を抽出するためのトライアルシステムを構築した.図 4.3の【パート2】は,機械学習によって新しい要件仕様を自動的に構造化する 手順を示している.
【パート2】の『(2)タグ付けドキュメントを教師データとして蓄積し,機械 学習機に学習させる』ために,まず教師データを作成する必要がある.要求仕 様書の記述は日本語であるが,日本語は中国語,タイ語と同様,単語の間にわ かち書きされていない,スペースを入れずに書かれる言語である.この様な言 語において教師データを作成するためには,まず,文書を形態素解析ツールで
DĞĂď
фŝŶƉƵƚх͙
͙͙фͬŝŶƉƵƚх фŽƵƚƉƵƚх͙
͙͙фͬŽƵƚƉƵƚх
ሗྡモ ୍⯡
Ͳ/E 䝃䞊䝡䝇ྡモ 䝃ኚ᥋⥆
/Ͳ/E 䜢 ຓモ ᱁ຓモ Ͳ/E
⥅⥆ྡモ 䝃ኚ᥋⥆
K ᥦ౪ྡモ 䝃ኚ᥋⥆
ͲKh 䛩䜛 ືモ ⮬❧Ͳ Kh 䚹 グྕ ྃⅬK
⌧⾜ྡモ ୍⯡K
ᩍᖌ䝕䞊䝍
Z&нн
䝔䞁䝥䝺䞊䝖
hϬϬ͗йdžͲϮ͕Ϭ
hϬϭ͗йdžͲϭ͕Ϭ
hϬϮ͗йdžϬ͕Ϭ
hϬϯ͗йdžϭ͕Ϭ
hϬϰ͗йdžϮ͕Ϭ
hϬϱ͗йdžͲ ϭ͕ϬͬйdžϬ͕Ϭ
hϬϲ͗йdžϬ͕Ϭͬйdžϭ͕Ϭ
๓Ꮫ⩦
ƌĨͺůĞĂƌŶ ሗ ྡモ
୍⯡
䝃䞊䝡䝇ྡモ 䝃ኚ᥋⥆
䜢 ຓモ
᱁ຓモ
⥅⥆ ྡモ 䝃ኚ᥋⥆
ᥦ౪ ྡモ 䝃ኚ᥋⥆
䛩䜛 ືモ
⮬❧
䚹 グྕ
ྃⅬ
⌧⾜ ྡモ
୍⯡
Z&нн
⮬ື䝍䜾䛡 ƌĨͺƚĞƐƚ
ሗྡモ ୍⯡
Ͳ/E 䝃䞊䝡䝇ྡモ 䝃ኚ᥋
⥆/Ͳ/E 䜢 ຓモ ᱁ຓモ Ͳ/E
⥅⥆ྡモ 䝃ኚ᥋
⥆K ᥦ౪ྡモ 䝃ኚ᥋
⥆ͲKh 䛩䜛 ືモ ⮬❧
ͲKh 䚹 グྕ ྃⅬ K
⌧⾜ྡモ ୍⯡
K
ᩍᖌ䝕䞊䝍䛾ほ ⠊ᅖ䜢ᣦᐃ䛩䜛 䝔䞁䝥䝺䞊䝖䜢ᕤኵ䛧䛶ᶵᲔᏛ⩦⢭
ᗘ䜢䛒䛢䜛 ϳ✀㢮䛾䝍䜾
᪤Ꮡ䛾せồᵝ᭩
;㛤Ⓨ㡯┠Ϳ 䝍䜾䛡
䝗䜻䝳䝯䞁䝖
⮬ື⏕ᡂ䛥䜜䛯 ヨ㦂㡯┠
;ϰͿヨ㦂㡯┠⮬ື⏕ᡂ 䝣䜵䞊䝈
;ϭͿ䝍䜾䛡
;ᵓ㐀Ϳ
;ϮͿᏛ⩦䝣䜵䞊䝈 ;ϯͿ⮬ື⏕ᡂ䝣䜵䞊䝈
㔞 సᡂ
᪂つせồᵝ᭩
;䝔䝇䝖䝕䞊䝍Ϳ
䝟䞊䝖ϭ
䝟䞊䝖Ϯ
䝍䜾䛡 䝗䜻䝳䝯䞁䝖
;ᩍᖌ䝕䞊䝍Ϳ ᙧែ⣲ゎᯒ
䝰䝕䝹
䝣䜯䜲䝹 せồᵝ᭩
䠄ᶵᲔᏛ⩦ᚋ 䝕䞊䝍䠅 䝰䝕䝹
䝣䜯䜲䝹
図4.3 試験項目自動作成手順
あるMeCab[44]等を使用して,機械学習(図4.3)のために単語に分割する必
要がある.MeCabは,品詞,品詞種別,および各単語の詳細な分類を表示する 形態素解析器であるため,タグ付き構造化要件仕様から抽出された単語単位に 単語カテゴリ情報も付与されている.
また分けた単語単位に,単語カテゴリ情報に加えて要求仕様書に付与してい たタグを元にタグ情報を付与していく.たとえば,要求仕様書に記載されたタ グ情報である「IN(入力)」,「OU(出力)」等を単語情報に付加し,タグに囲ま れていない単語については,その他(Other)を示す(O)を付加する.このよ うにして,単語の持つ属性の種類を含む大量の訓練データを生成し,これを教 師データとして機械学習ソフトウェアがそのデータを学習できるようにする.
機械学習を行う際には教師データに加えテンプレート(素性関数を形式 化したファイル)が必要となる.テンプレートは,機械学習ソフトウェア CRF++[45]での計算に利用され,教師データと共に事前学習結果であるモデ ルファイルとして出力される.CRF++はオープンソースであり,シーケン
シャルデータをセグメント化/ラベリングするための条件付きランダムフィー ルド(CRF)のシンプルでカスタマイズ可能な機械学習器である.CRF++は,
名前付きエンティティ認識,情報抽出,テキストチャンクなど,さまざまな ニューロ言語プログラミング(NLP)タスクに適用されている.
前述した通り,教師データにより学習する際,事前に学習の特徴を示すテン プレートを指定する必要がある.テンプレートとは素性関数のデザインを形式 化したファイルであり,学習の際に使用される要素範囲を示している.テンプ レートでは,学習データ内の現在のトークンの位置に対し,観察する情報の位 置を指定する.
高品質を要求される商用の大規模通信システム開発で使用するため,要求仕 様書の試験範囲を示す自動タグ付けはより正確さが求められる.テンプレート ファイルを最適化し教師データに含まれる情報の関連性をより明確化すること は,機械学習の精度を向上させることに繋がり,また,より正確なタグ付けに 繋がる.
テンプレートファイルの各行は,入力データのトークンを指定するために使 用される特別なマクロ%x [row,col]を示している.
「row」は現在のフォーカスされたトークンからの相対位置を指定し,「col」 は列の絶対位置を指定する.テンプレートの観察されたトークンの相対的な位 置の一例を図4.4に示す.
図4.4のテンプレートは,3つの観測する情報を,以下の通り単語の現在の フォーカスされたトークンから得られる相対位置で示している.
・ 「U00:%x[-2,0]/%x[-1,0/%x[0,0]」の記述は単語の”0,-1,-2”(Trigram) の相対位置を指定
・ 「U01:%x[0,1]/%x[1,1]」は品詞の”0,1”(Bigram)の相対位置を指定 ・ 「U02:%x[-2,2]」は品詞種別の”-2”(Unigram)の相対位置を指定
次に,形態素解析によって事前処理された新規の要件仕様書を,モデルファ イルを利用した機械学習器(CRF++)によって計算することで,【パート2】 の『(3)学習結果をタグの付与されていない要求仕様書に適用しタグを自動的 に付与』を行う.
Ϭ Ͳϭ
ͲϮ
Ͳϯ ϭ Ϯ
Ϭ Ͳϭ
ͲϮ
Ͳϯ ϭ Ϯ
Ϭ Ͳϭ
ͲϮ
Ͳϯ ϭ Ϯ
⌧ᅾ䛾䝖䞊䜽䞁⨨
hŶŝŐƌĂŵ йdžͲϮ͕Ϯ
ŝŐƌĂŵ
йdžϬ͕ϭйdžϭ͕ϭ
dƌŝŐƌĂŵ
йdžͲϮ͕ϬйdžͲϭ͕ϬйdžϬ͕Ϭ