言語処理学会 第21回年次大会 発表論文集 (2015年3月)

応用ソフトウェアを対象とした操作手順のアウトライン生成
島崎 聡
藤井 敦
東京工業大学大学院情報理工学研究科計算工学専攻

1 はじめに

手順テキスト中に，「ファイル」，「名前をつけて保存」，「保存」の順でクリックする，という操作があった時，こわかりやすい文章を作成する方法の一つに，文章を話
れら 3 つの操作は「ファイルを保存する」という部分目
題ごとに分割して見出しを付ける事で，文章の骨格や構的を持っている．
造を作る方法がある．この骨格や構造をアウトラインと本研究では，対象を応用ソフトウェアの操作手順テキ呼ぶ．例えば本論文では，「1. はじめに 2. 関連研究 3. 提ストに限定し，自動で手順テキストのアウトラインを生案手法 4. 実験 5. おわりに」という章立てになっており，成する手法を提案して，実験を行う事で性能を評価する．
この構造がアウトラインにあたる．アウトラインがあると，読む前に文章の大枠を把握する事や，文章の一部分2 関連研究だけを選んで読み返す事ができるようになり，文章の内浜田ら [1] や苅米ら [3] は料理レシピから動作を抽出
容をより容易に理解する事が可能となる．
し，動作間の繋がりを解析して料理手順のフローグラフ
しかし，現存する全ての文章においてアウトラインが生成されている訳ではない．例えば，手順テキストを考 を作成する事で，手順テキストの構造を解析した．
Nakao[4] は要約対象の文書を話題ごとに分割し，各話える．手順テキストとは，何らかの目的を達成するための手順が書かれたテキストであり，web ページやマニュ 題に対して要約を作成する事で，自動要約を行った．こアルといった形で大量に存在し，現在も増え続けている． の操作はアウトライン生成とほぼ同じ処理である．しかこれらの手順テキストにもアウトラインが生成されてい し，これらの手法は新聞記事や報告書を対象としており，ないものは多数含まれている．そこで本研究では，アウ 手順テキストに適用するのは適切ではない．
西原ら [5] は，料理レシピを対象とし，各段落から教トラインが生成されていない手順テキストから，自動ア師あり機械学習を用いて見出し語句を抽出することで，ウトラインを生成する事を目的とする．
ここで，アウトラインを生成するためには，段落を分 アウトラインを生成した．彼らの研究は本研究と同様に，ける基準を規定する必要がある．一般的なテキストでは 段落に対して見出しを付ける事でアウトラインを生成し話題の境界で段落を分割するとされている．では，何ら ている．しかし，段落はレシピの著者が作成した段落をかの目的を達成するための操作系列が書かれている手順 用いている．段落が作成される基準は人によって異なっており，操作内容に即した基準によって作成されているテキストにおける話題とは何なのかを考える．
手順テキスト全体の目的は，いくつかの部分目的に細 とは限らない．例えば，レシピの内容に即した基準で作分化できる．さらに，その部分目的も再帰的に細分化す 成された段落の他に，文字数を基準として全ての段落のる事が可能であり，最終的には最小単位である 1 つ 1 つ 長さがある程度均等になるように作成された段落，1 つの操作にまで細分化する事ができる．手順テキストでは， の段落が 1 つの行動のみを含むように作成された段落等
この部分目的が話題に相当し，部分目的が変化する箇所 がある．
で段落を分割すれば良いと考えられる．しかし，部分目
3 提案手法的には様々な粒度のものがあり，どの部分目的を話題とするのかを選択する基準が必要になる．
3.1 概要そのため，手順テキストのアウトラインを生成するた本研究では以下の 2 段階の操作によって，アウトライめには，どの部分目的を話題にするかを定める事のでき ンを生成する．
る知識が必要だといえる．そして，手順テキストの分野
1. 操作内容に即した基準で段落を生成するによって必要になる知識が異なるため，その分野に応じ2. 各段落の内容を端的に示す見出しを生成するた知識が必要になる．
ここで，応用ソフトウェアの操作手順テキストを考え
1 章で説明したように，応用ソフトウェアはいくつかる．応用ソフトウェアでは，ある目的をソフトウェアの の機能を持っており，人間が操作する事でそれらの機能機能をいくつか使用する事で達成する．そして，それぞ が発揮される．つまり，ユーザーがソフトウェアに対しれの機能はいくつかの操作を行う事で発揮される．その て行う操作 1 つ 1 つには，それぞれ目的となるソフトため，ソフトウェアの機能が部分目的に該当し，話題と ウェアの機能が存在する．
して扱う事ができる．例えば，Microsoft Word の操作― 613 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

本研究では，その機能を手順テキストの話題にあたる 浅いレベルに変化する時点で段落を分割する事で，同一部分目的と考え，同じ機能を目的とする操作系列が書か の機能を目的とする機能段落を生成する．
れている部分をまとめることで段落を生成し，その段落例えば，『「ファイル」「名前を付けて保存」「保存」をに対して，目的となる機能を示すフレーズを添付する事 クリックする．
』という文章があった時，図 1 のメニューで見出しを生成する．本研究では今後，この考えに基づ 項目構造によると，これは浅いレベルから深いレベルにく段落を「機能段落」，見出しを「機能名」と呼称する． 順番に操作しているため，1 つの機能段落になる．そし本章では，この考えに基づくアウトライン生成の方法 て，「保存」をクリックすると，ソフトウェアはファイルについて説明する．
を保存する機能を発揮するため，機能名は「ファイルを保存する」となる．
3.2 メニュー項目
2 章で説明したように，手順テキストの著者によって本研究では，1 つ 1 つの操作と目的となる機能の対応 生成された段落は内容に沿った物とは限らない．しかし，付けを行うために，メニュー項目の情報を使用する．
関連の無いテキストが同じ段落に含まれている可能性はメニュー項目とは，応用ソフトウェアの GUI 上に出現 低いと考え，本研究では手順テキストの著者による段落する項目の事である．メニュー項目は，ボタンやテキス の境界から機能段落の境界として適切な物を選択する事トボックスなど様々な形を取る事が可能であり，ダイア で，機能段落を生成する．
ログボックスのタイトルやタブ名などの形で出現して， 機能段落生成は，以下の 3 段階で行う．
画面遷移の状態を指し示す事もある．しかし，どんな形
1. メニュー項目候補語句抽出であっても，木構造に近い階層構造を持っており，応用操作手順テキストから，メニュー項目を指し示
ソフトウェアに対する操作と指示の殆どは GUI 上のメしている可能性が高い文字列を抽出する．ソフト
ニュー項目のいずれかに対して行われるという特徴があウェアの操作手順テキストにおいて，多くの場合メる．実際に Microsoft Word 2010 のメニュー項目構造のニュー項目を示す文字列は何らかの方法で強調され一部を図 1 に示す．ている．そのため本研究では，操作手順テキストから，太字になっているテキスト，ダブルクォーテー
ションで囲まれたテキスト，単語の頭文字が大文字になっているテキストを，メニュー項目候補語句として抽出する．

2. メニュー項目識別

図 1: メニュー項目の木構造
また，1 つ 1 つのメニュー項目は様々な情報を保持しており，本研究では，状態遷移先，相反する状態の 3 つの情報を利用している．わかり辛い項目について補足す
ると，状態遷移先はその項目を操作すると状態遷移が起きる時，その遷移先の状態を指し示すメニュー項目が入る．また，相反する状態は，その項目が状態を指し示しており，かつ，その状態に遷移する事で，ある状態ではなくなる時に，その解除される状態を指し示すメニュー項目が入る．
本研究では，メニュー項目の情報を事前に作成しておき，応用ソフトウェアに対する操作とメニュー項目の対応付けを行い，その後，対応づいたメニュー項目の構造や，1 つ 1 つの項目が持つ情報を使用してアウトライン生成を行う．なお，メニュー項目の情報は，応用ソフトウェアが必然的に持っている情報であるため，知的作業を行う事無く抽出して利用できる．

3.3 機能段落生成
応用ソフトウェアに対する操作は，まず木構造上で浅いレベルのメニュー項目を操作し，徐々に深いレベルのメニュー項目を操作していき，最終的に何らかの機能を発揮する項目を操作する．という手順を繰り返す事で行われる．そのため，浅いレベルから深いレベルのメニュー項目へ順番に行われる操作を，目的となる機能が同一の操作系列としてまとめ，逆に操作対象が深いレベルから― 614 ―抽出したメニュー項目候補語句をメニュー項目と対応付ける．まず，ソフトウェアを開いた直後の状態を現在の状態として，最初のメニュー項目候補語句を見る．この候補語句のテキストと一致するラベルを持っており，かつ今の状態で操作する事ができるメニュー項目を検索し，該当するメニュー項目が存在したら，その候補語句とメニュー項目とを対応付ける．その後，そのメニュー項目の「遷移先状態」を現在の状態に追加し，「相反する状態」を現在の状態から取り除く．という操作を繰り返して，候補語句とメニュー項目とを対応付けていく．
ただし，メニュー項目候補語句と一致するラベルを持つメニュー項目が複数見つかった場合は，その後で出現する候補語句を見ていき，最も先まで対応付けが可能になるようなメニュー項目を選択する．
逆に，メニュー項目候補語句と一致するラベルを持つメニュー項目がその状態で操作できる中に存在しなかった場合は，操作手順テキストから一部の手順が省略されている可能性がある．省略は，人間が見れば，次に行う操作内容が自明である時に行われるため，対応付け可能なメニュー項目が発見できず，かつ現在の状態から遷移する事が可能な状態が 1 つしか無い場合は，その状態に遷移したものとして対応付けを行う．もし，この補完を行ってもなお候補語句と対応付けられるメニュー項目が見つからない

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

場合は，状態を無視して全てのメニュー項目から候補語句と一致するラベルを持つメニュー項目を検索して対応付けを行い，それでも対応するメニュー項目が発見できない場合は，その候補語句は誤抽出された語でありメニュー項目では無かったとして候補語句から除外し，状態を変化させずに次の候補語句の対応付けを開始する．

複数ある場合，その機能段落ではそれらの機能全てを使用していると考えられるため，それらの機能全体を示す項目として，最も深いレベルの項目全てに共通する先祖を集め，その中で最も深いレベルのメニュー項目のラベルを代表語句として抽出する．
この時点で，使用した機能に最も近い語句は抽出された．しかし，この語句は動詞や名詞，文など様々な形を取りうる．ここで，目的である機能を 1
語で表す事ができるとは限らない事を考えると，より表現力の高い述語と項の組の形に変換すべきだと考えられる．そのため，次の段階でこの代表語句を補完して述語と項の組の形に変換する．

3. 機能完了箇所分割
何らかの機能が使用された直後で機能段落を分割する．まず，章の初めで説明したように，手順テキストの著者による段落の境界を機能段落境界の候補とし，そこから，直後の段落にメニュー項目と対応付けられたテキストが含まれて無い物を除外する．
残った機能段落境界候補を見て，直前に出現するメニュー項目の状態遷移先がその項目の先祖である
場合，あるいは境界候補の直後に出現するメニュー項目がソフトウェアを起動した直後の状態で操作可能である場合に，その境界候補を機能段落の境界とし，機能段落を生成する．
実際の手順テキストでは必要な操作を順番が書かれた文章だけでなく，「これから〜をします．具体手には A して B して．
．
．
」のように，前後で行う操作内容を改めて宣言する文章や，「必要に応じて〜する」のように任意で内容を実行する文章も存在する．本手法はこれらのパターンでも問題無く処理が可能である．
前後の操作を改めて宣言する文章では，前後の操作と同じメニュー項目を操作するため，宣言する文章は対応する前後の操作と同じ段落に含める事ができる．任意で実行する操作の文章では，その任意の操作が前後と同じ目的を持っていたら同じ機能段落に含め，異なる目的を持っていたら分割すれば良いだけなので，通常の処理と同様に扱う事ができる．

2. 代表語句補完抽出された代表語句を述語と項の組の形にするため，代表語句の種類に応じて，表 1 の様な処理を行う．
表 1: メニュー項目が持つ情報
条件

補完方法

代表語句が述語と項を含む
代表語 代表語句の先祖
句が動 に名詞がある
詞
代表語句の先祖に名詞が無い
代表語 代表語句の先祖句が名 に動詞がある
詞
代表語句の先祖に動詞が無い

補完しない述語を代表語句，目的語を代表語句の先祖のうち最も深いレベルの名詞とする
補完しない

代表語句として動詞が抽出されて，その先祖に名詞が出現しない場合は，人間から見れば動詞のラベルだけで使用する機能が理解できるという事なので，名詞の補完は行わない．

3.4 機能名生成また，代表語句として名詞が抽出され，その先祖に動詞が存在しない場合は，名詞だけで使用する機能が理解できるという事である．その場合には，その名詞が設定項目の名前や設定値を表していると考えられ，その設定項目を編集するか，その設定値を適用する機能である可能性が高い．そのため，述語として「設定する」という意味の述語で補完を行う．

多くのメニュー項目には文字列でラベルが付属しており，このラベルはそのメニュー項目の機能や目的を端的に表している．これを利用し，機能段落に含まれるメニュー項目のラベルから適切な物を抽出することで機能名を生成する．
機能名生成は以下の 2 段階で行う．

1. 代表語句抽出
メニュー項目のラベルから，機能段落の目的である機能を最も適切に表すラベルを選択して代表語句として抽出する．
メニュー項目は，浅いレベルの項目ほど機能を大まかに示し，深いレベルの項目ほど機能を詳細に示す．そのため，機能段落に含まれるメニュー項目のうち，最も深いレベルの項目のラベルがその機段落能で使用する機能を最も詳細に示す項目であると考えられる．これより，最も深いレベルの項目が 1つに特定できる場合は，その項目のラベルを代表語句として抽出する．また，最も深いレベルの項目が代表語句の先祖のうち最も深いレベルの動詞を述語，代表語句を目的語とする述語を「設定する」という意味の動詞，目的語を代表語句とする

4 実験
4.1 実験方法
Word2010 の操作手順テキストに対して本手法を適用して評価実験を行った．評価に使用する手順テキスト
は，200 万以上の英語の手順テキストを掲載している
ehow1 という WEB サイトから収集した．ここの tech カ
テゴリで「Word 2010」というクエリで検索し，検索結果上位 881 を収集した．881 件の内，人手で確認して本
当に Word2010 に対する操作手順が書いていると確認で
1 http://www.ehow.com― 615 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.

きたテキスト上位 10 件 (機能段落 23 件を持つ) に対して，正解データをアノテーションして評価実験を行った．
機能名生成の性能は機能段落生成の結果に左右されてしまうため，機能段落生成と機能名生成の評価実験はそれぞれ独立して行った．

4.2 機能段落生成の評価実験

表 2: 機能段落生成の評価結果
手法

精度

再現率

提案手法 (メニュー項目候補語句抽出まで)
提案手法 (メニュー項目識別まで)
提案手法 (機能完了箇所分割まで)

0.95

0.94

F値
0.94

0.50
0.75
0.30
0.40
0.50
0.26

0.47
0.72
0.6
0.40
0.50
0.38

0.48
0.63
0.36
0.40
0.50
0.28

全候補で分割
機能段落生成は，メニュー項目候補語句抽出，メニュー分割無し
項目識別，機能完了箇所分割の 3 段階で行われており，TextTiling
より性能を詳細に把握するために，3 段階それぞれが完メニュー項目の lexical chain了した時点での性能評価を行った．
メニュー項目候補語句抽出ではメニュー項目を示して
表 3: 機能名生成の評価結果
いるテキストを正解として，メニュー項目識別では手順
手法
成功率
テキスト中に出現するメニュー項目の ID を正解として，提案手法(代表語句抽出まで)0.26(6/23)
機能完了箇所分割では，正しい段落の境界を正解として，提案手法 (代表語句補完まで)
0.52(12/23)
どの程度正解が得られたのかを，精度，再現率，F 値にTF・IDF
0.30(7/23)
よって評価した．
また，機能段落生成が完了した時点である機能完了箇 組にすることで性能がベースラインを超えた．つまり，
所分割の結果に対して，ベースラインを作成して比較を メニュー項目を利用しても代表語句抽出の性能が向上す行った．本研究ではベースラインとして，全段落境界候 ることはなかった．しかし，メニュー項目を使用して抽補での分割，一切分割無し，TextTiling[2] の 3 つのメ 出された代表語句は補完可能であり，補完を行う事で最ニュー項目を使用しない手法と，メニュー項目の lexical 終的な性能を向上させる事ができた．
chain を使用した．メニュー項目の lexical chain とは，段落境界候補のうち，直前と直後に出現するメニュー項 5 おわりに目の組が，評価実験に使用していない 871 件の手順テキ本研究では，メニュー項目の情報を知識として使用し，ストにおいて同一段落内で隣接した事が無い場合に分割 応用ソフトウェアの操作手順テキストのアウトライン生する手法である．なお，TextTiling の Pseudosentence 成を行った．その結果，段落生成では F 値で 0.63 の性
size と Window width のパラメータは，実験の結果最も 能を得る事ができ，見出し生成では 52%の段落に正しい性能が高くなる値 (両方共に 1) にして適用した．
見出しを付ける事ができた．これより，分野に応じた知識を使用する事で手順テキストのアウトライン生成の性能が向上する事が示せた．

4.3 機能名生成

機能名生成も，代表語句抽出と代表語句補完の 2 段階で行われており，それぞれの段階が完了した時点での性 参考文献
能評価を行った．この時，機能名を添付する機能段落は [1] 浜田 玲子, 井出 一郎, 坂井 修一, 田中 英彦: “料理テキス
正解データを使用して評価を行った．
ト教材における調理手順の構造化”, 電子情報通信学会論
文誌 D, Vol.85, No.1, 2002, pp.79―-89
各段階において出力された語句あるいは述語と項の組に対して，機能段落の内容に合っているかを，人手で [成 [2] Marti A Hearst: “TextTiling: Segmenting text into
multi-paragraph subtopic passages”, Computational
功 or 失敗] の二値で評価を行った．
linguistics, Vol.23, Issue.1, 1997, pp.33-64.
また，機能名生成でも，ベースラインを作成して比較 [3] 苅米 志帆乃, 藤井 敦: “料理レシピテキストの構造解析を行った．ベースラインとしては，各機能段落に出現すとその応用”, 言語処理学会第 18 回年次大会発表論文集,
2012, pp.893–842
る単語に対して TF・IDF の値を計算して，TF・IDF 最も高い単語をその段落の見出しとする手法を使用した． [4] Yoshio Nakao: “An Algorithm for One-page Summa-

4.4 結果と考察
機能段落生成評価実験の結果を表 2 に，機能名生成評
価実験の結果を表 3 に示す．
本手法は機能段落生成でも機能名生成でもベースラインよりも高い性能を示していた．
機能段落生成ではメニュー項目の lexical chain の性能が低い事から，ただメニュー項目の字面を利用するだけでは性能は伸びず，メニュー項目の構造や遷移の情報を利用して初めて性能が向上すると考えられる．
また機能名生成では，代表語句抽出の段階ではベースラインより性能が低く，代表語句を補完して述語と項のrization of a Long Text Based on Thematic Hierarchy
Detection”, In Proceedings of the 38th Annual Meeting on Association for Computational Linguistics, 2000,
pp.302―309,[5] 西原 弘真, 苅米 志帆乃, 藤井 敦: “料理レシピを対象としたアウトライン型自動要約”, 情報処理学会研究報告 情報学基礎研究会報告, vol.8, 2013, pp.1–7― 616 ―

Copyright(C) 2015 The Association for Natural Language Processing.
All Rights Reserved.