This article is a technical report without peer review, and its polished and/or extended version may be published elsewhere. Copyright ©2013 by IEICE
形態素 N-gram を用いた不具合修正完了ソースコードの特定
河居 寛樹
†上野 秀剛
†伊原 彰紀
‡†奈良工業高等専門学校 〒639-1080 奈良県大和郡山市矢田町 22 番地
‡奈良先端科学技術大学院大学 〒565-0456 奈良県生駒市高山町 8916-5
E-mail: †{h-kawai, uwano} @info.nara-k.ac.jp, ‡[email protected]
あらまし 本研究の目的はバグ報告文から修正が完了したソースコードを予測し,開発者に提示する手法の提案である.提案
手法は形態素解析と N-gram を組み合わせ,バグ報告の文章に類似したソースコードのコミットコメントを探し,開発者に提示 する.提案手法をオープンソースソフトウェアプロジェクトのリポジトリに適用し,評価を行う.評価実験の結果,提案手法は 75.9%のバグ報告に対して正しいソースコードを推薦できた.
キーワード 開発コンテキスト,ソースコード推薦,形態素解析,N-gram
Linking Fixed Bug Report to Source Code Using N-gram
Hiroki KAWAI
†Hidetake UWANO
†and Akinori IHARA
‡†Nara National College of Technology 22 Yata-cho, Nara Yamatokoriyama, Nara, 639-1080 Japan
‡Nara Institute of Science and Technology 8916-5 Takayama-cho, Ikoma, Nara, 565-0456 Japan
E-mail: †{h-kawai, uwano} @info.nara-k.ac.jp, ‡[email protected]
Abstract This paper proposes a method to recommend the developer the source code from a bug report.The proposed method combines the N-gram and morphological analysis. It finds the commit log which similar to a comment written in the target bug report.Evaluation experiment applied the proposed method to the repository of open source software projects.The result shows that the proposed method recommended the correct source code for 75.9% of the bug reports.
Keyword Development context,Source code suggestion,Morphological analysis,N-gram
1. は じ め に
Firefox や Linux に 代 表 さ れ る オ ー プ ン ソ ー ス ソ フ ト ウ ェ ア (Open Source Software: OSS)の 発 展 や ,外 部 組 織 に 開 発 作 業 の 一 部 を 委 託 す る 外 注 の 増 加 に 伴 い , 複 数 の 国 や 地 域 に 点 在 し た 開 発 者 に よ る 分 散 開 発 が 増 え て い る . 複 数 人 に よ る ソ フ ト ウ ェ ア 開 発 で は , 開 発 者 間 の コ ミ ュ ニ ケ ー シ ョ ン が 重 要 と さ れ て お り , 開 発 者 が 直 接 顔 を 合 わ せ て 行 う オ フ ラ イ ン ミ ー テ ィ ン グ や 電 話 会 議 が 良 く 用 い ら れ る . し か し , 分 散 開 発 に お い て は こ れ ら の 手 段 は 多 大 な 移 動 時 間 ・ 費 用 が 必 要 な こ と に 加 え , 会 議 参 加 者 全 員 の ス ケ ジ ュ ー ル を 調 整 し , 同 じ 時 間 を 共 有 す る 必 要 が あ る . そ の た め , 開 発 者 間 で の コ ミ ュ ニ ケ ー シ ョ ン の 手 段 と し て オ ン ラ イ ン に よ る 非 同 期 な 情 報 交 換 が よ く 用 い ら れ て い る . ソ フ ト ウ ェ ア 開 発 に お け る 代 表 的 な オ ン ラ イ ン 非 同 期 コ ミ ュ ニ ケ ー シ ョ ン ツ ー ル と し て , メ ー リ ン グ リ ス ト (Mailing List: ML)や バ グ 管 理 シ ス テ ム (Bug Tracking System: BTS), ソ ー ス コ ー ド の バ ー ジ ョ ン 管 理 シ ス テ ム (Version Control System: VCS)が あ る .本 論 文 で は 以 降 ,こ れ ら の シ ス テ ム を 開 発 支 援 シ ス テ ム と 呼 ぶ . こ れ ら の 支 援 シ ス テ ム は 検 出 し た バ グ の 症 状 や 再 現 手 順 , 修 正 担 当 者 の 割 り 当 て , 変 更 後 の ソ ー ス コ ー ド を 記 録 す る . 開 発 者 は 不 具 合 修 正 や 機 能 拡 張 を 行 う 際 に , そ れ ま で に ど の よ う な 変 更 が , な ぜ , 誰 に よ っ て , い つ 行 わ れ た の か を 理 解 す る た め に 複 数 の 開 発 支 援 シ ス テ ム を 同 時 に 参 照 し , 開 発 の コ ン テ キ ス ト を 理 解 す る . 一 方 で , 複 数 の 開 発 支 援 シ ス テ ム に 分 散 し た , 1 つ の コ ン テ キ ス ト に 属 す る 情 報 を 参 照 す る の は 容 易 で は な い . た と え ば , BTS に 記 録 さ れ た あ る 1 つ の 不 具 合 に つ い て ,ML 上 で 議 論 さ れ た メ ー ル を 探 す た め に は , 検 索 に 用 い る 単 語 や 議 論 さ れ た 時 期 , 関 係 者 な ど そ の コ ン テ キ ス ト の 特 徴 を 表 す 情 報 を 理 解 し て い る 必 要 が あ る . こ の よ う な 情 報 は 一 般 に 開 発 支 援 シ ス テ ム に は 保 存 さ れ な い た め , コ ン テ キ ス ト を 理 解 し て い な い 開
発 者 や 過 去 の コ ン テ キ ス ト の 参 照 が 必 要 な 開 発 者 に と っ て は 検 索 が 困 難 で あ る . 本 研 究 で は コ ン テ キ ス ト を 検 索 す る 労 力 を 削 減 す る た め に , バ グ 報 告 に 関 係 す る ソ ー ス コ ー ド を 推 薦 す る 手 法 を 提 案 す る . 提 案 手 法 は , バ グ 報 告 コ メ ン ト や コ ミ ッ ト コ メ ン ト に は 一 連 の コ ン テ キ ス ト を 表 す フ レ ー ズ が 含 ま れ て い る と 仮 定 し , 形 態 素 解 析 と N-gram を 用 い て , バ グ 報 告 と 同 じ フ レ ー ズ の 含 ま れ る コ ミ ッ ト コ メ ン ト が つ い た ソ ー ス コ ー ド を 推 薦 す る . 我 々 は 予 備 調 査 と し て , す で に 修 正 が 完 了 し た バ グ 報 告 の コ メ ン ト と 修 正 さ れ た ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト に 形 態 素 解 析 と N-gram を 適 用 し , ど れ だ け 同 じ フ レ ー ズ が 含 ま れ て い る か 調 査 し た .そ の 結 果 ,5-gram の 場 合 に 58% の コ ミ ッ ト コ メ ン ト に バ グ 報 告 コ メ ン ト か ら 取 り 出 さ れ た フ レ ー ズ が 含 ま れ て い た . 本 稿 で は グ ラ ム 数 を 変 化 さ せ た と き の 推 薦 精 度 を 調 査 し , 提 案 手 法 の 有 効 性 を 確 認 す る .
2. 開 発 支 援 シ ス テ ム
開 発 支 援 シ ス テ ム と は , 開 発 に 関 す る 履 歴 を 記 録 す る シ ス テ ム の こ と で あ る . 多 く の 開 発 プ ロ ジ ェ ク ト で は 複 数 の 開 発 支 援 シ ス テ ム を 同 時 に 利 用 す る .例 え ば , あ る バ グ が 発 見 さ れ , 除 去 さ れ る ま で に は , 1)BTS に 発 見 さ れ た バ グ が 報 告 さ れ , 2)ML で 原 因 箇 所 の 特 定 と 修 正 方 法 に つ い て の 議 論 が 行 わ れ , 3)更 新 さ れ た ソ ー ス コ ー ド が VCS に 記 録 さ れ る .個 々 の 開 発 プ ロ ジ ェ ク ト は 彼 ら の 開 発 形 態 に 適 し た 支 援 シ ス テ ム を 開 発 ・ 選 択 し , 運 用 す る . 一 方 で , OSS プ ロ ジ ェ ク ト な ど 比 較 的 規 模 の 小 さ な プ ロ ジ ェ ク ト で は , 管 理 費 用 が 掛 か ら ず , 管 理 者 の 確 保 が 不 要 な Googlecode や Source Forge と い っ た レ ン タ ル サ ー ビ ス が 多 く 利 用 さ れ る . ま た , プ ロ ジ ェ ク ト の 開 発 者 は 複 数 の 開 発 支 援 シ ス テ ム に 保 存 さ れ た 情 報 を 同 時 に 参 照 す る . た と え ば , バ グ 修 正 を 割 り 当 て ら れ た 開 発 者 は BTS に 記 録 さ れ た 症 状 の 説 明 や , ML で 行 わ れ た 議 論 を 参 考 に バ グ の 症 状 を 理 解 し ,VCS に 記 録 さ れ た ソ ー ス コ ー ド の 変 更 履 歴 を 元 に バ グ の 発 生 箇 所 を 特 定 す る . ま た , 不 具 合 修 正 や テ ス ト 設 計 の 参 考 に す る た め に , 過 去 に 存 在 し た 類 似 し た 不 具 合 を BTS や ML か ら 調 査 す る . こ の と き , 調 査 し て い る 事 柄 を 示 す 開 発 コ ン テ キ ス ト の つ な が り を 理 解 し て い な け れ ば な ら な い . 図 1 に 複 数 の 開 発 支 援 シ ス テ ム を 用 い た 開 発 に お け る コ ン テ キ ス ト の 様 子 を 示 す .3 つ の 長 方 形 は VCS・BTS・ML の 各 開 発 支 援 シ ス テ ム , 楕 円 は そ れ ぞ れ の シ ス テ ム に 保 存 さ れ た 情 報 , 楕 円 を 繋 ぐ 点 線 は 同 一 コ ン テ キ ス ト に 属 す る 情 報 の つ な が り を 表 し て い る . そ れ ぞ れ の コ ン テ キ ス ト に 含 ま れ る 情 報 は , そ の 種 類 ご と に 異 な る シ ス テ ム に 分 散 し て 保 存 さ れ て い る . あ る 情 報 に 関 係 す る 情 報 を 探 し た い と き , 点 線 で 示 さ れ る コ ン テ キ ス ト の つ な が り を 元 に 調 査 を 行 う . こ の と き , 開 発 時 の コ ン テ キ ス ト を 利 用 者 が 理 解 し て い な け れ ば 検 索 が 困 難 に な る . 例 え ば あ る 不 具 合 に つ い て BTS に は 検 出 さ れ た バ グ の 症 状 の み が 記 録 さ れ , ML 上 で 不 具 合 原 因 の 突 き 止 め や , 修 正 方 法 が 議 論 さ れ ,VCS に 修 正 履 歴 が 残 さ れ た と す る .こ の と き , BTS の 閲 覧 者 が こ の と き の 様 子 を 知 ら ず , BTS に ML や VCS へ の リ ン ク が 記 録 さ れ て い な け れ ば ,BTS に 記 録 さ れ た わ ず か な 説 明 文 か ら キ ー ワ ー ド を 推 測 し ,ML や VCS 全 体 を 検 索 す る 必 要 が あ る .こ れ は ,時 間 が 掛 か り , 見 落 と し を 引 き 起 こ す 作 業 で あ る . 一 般 に , あ る 話 題 に つ い て ど の よ う な 議 論 が ど の DSS を 使 っ て 行 わ れ た の か と い う ,開 発 の コ ン テ キ ス ト は DSS に は 記 録 さ れ ず , 情 報 同 士 の リ ン ク も 手 動 に 頼 っ て い る こ と が 多 い . そ の た め , 新 規 に プ ロ ジ ェ ク ト に 参 加 し た 開 発 者 は コ ン テ キ ス ト の 把 握 が で き な い . ま た , 以 前 か ら 参 加 し て い る 開 発 者 で あ っ て も , 過 去 の コ ン テ キ ス ト に つ い て は 思 い 出 す の が 困 難 で あ る . 複 数 シ ス テ ム の 併 用 に よ る 上 記 問 題 を 解 消 す る た め に , 複 数 の シ ス テ ム を 統 合 し た シ ス テ ム も 存 在 す る [1].こ れ ら の 統 合 シ ス テ ム で は BTS や VCS,ML の 他 に Wiki や テ ス ト 管 理 シ ス テ ム な ど を 統 合 す る こ と で , プ ロ ジ ェ ク ト の 管 理 に 必 要 な 情 報 を 1 つ の シ ス テ ム 内 で 管 理 す る . し か し , こ れ ら の 統 合 シ ス テ ム に は 以 下 の 問 題 が あ る . 図 1. 開 発 支 援 シ ス テ ム 上 の コ ミ ッ ト コ メ ン ト1) 利 用 中 の 開 発 支 援 シ ス テ ム に 蓄 積 さ れ た 開 発 履 歴 や , リ ン ク を イ ン ポ ー ト で き な い . 2) レ ン タ ル サ ー ビ ス の よ う な 外 部 で 提 供 さ れ た 開 発 支 援 シ ス テ ム の 場 合 , シ ス テ ム の 変 更 が で き ず , 蓄 積 さ れ た 情 報 を そ の ま ま 利 用 で き な い . 3) プ ロ ジ ェ ク ト で 必 要 な 機 能 を 自 由 に 選 択 で き ず , 統 合 シ ス テ ム が 提 供 す る 機 能 し か 利 用 で き な い .
3. 提 案 手 法
提 案 手 法 は , 形 態 素 解 析 で バ グ 報 告 コ メ ン ト を 単 語 に 分 割 し ,N-gram を 用 い て 連 続 し た 単 語 を フ レ ー ズ と し て 生 成 す る . フ レ ー ズ が ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト に 含 ま れ て い る 場 合 に , そ の ソ ー ス コ ー ド が バ グ 報 告 と 関 連 が あ る も の と し て 推 薦 す る .3.1. 形 態 素 解 析
形 態 素 解 析 は , 自 然 言 語 で 書 か れ た 文 章 を 言 語 の 中 で 意 味 の あ る 最 小 単 位 ( 形 態 素 ) に 分 割 し , 品 詞 を 特 定 す る 手 法 で あ る . 提 案 手 法 で は , バ グ 報 告 コ メ ン ト を 単 語 に 分 割 し , 次 節 で 説 明 す る N-gram を 単 語 単 位 で 行 う た め の 前 処 理 に 用 い る . 形 態 素 解 析 シ ス テ ム に は ,オ ー プ ン ソ ー ス 形 態 素 解 析 エ ン ジ ン の MeCab1を 用 い る .3.2. N-gram
N-gram は , 文 章 か ら N 文 字 の 連 続 し た 文 字 列 を 切 り 出 す 手 法 で あ る . 文 章 か ら 文 字 列 を 切 り 出 す 箇 所 を ず ら し な が ら , 他 の 文 章 か ら 切 り 出 し た 文 字 列 と 比 較 す る こ と で , 同 じ 文 字 列 を 含 む 文 章 を 検 出 で き る . た と え ば ,“ フ ラ グ を 更 新 す る ” と い う 文 章 に 対 し て N が 3 の N-gram を 適 用 す る と“ フ ラ グ ”,“ ラ グ を ”,“ グ を 更 ”,“ を 更 新 ”,“ 更 新 す ”,“ 新 す る ” の 計 6 個 の 文 字 列 が 抽 出 さ れ る . 他 の 文 書 か ら も 同 様 に 文 字 列 を 抽 出 し ,同 じ 文 字 列( た と え ば“ フ ラ グ ”)が 現 れ た 場 合 , そ の 文 章 同 士 は 類 似 し た 意 味 を 持 つ 可 能 性 が あ る . 提 案 手 法 で は , 形 態 素 解 析 で 分 割 し た 単 語 を N-gram に お け る 最 小 単 位 と し ,連 続 し た N 個 の 単 語( フ レ ー ズ ) を 抽 出 す る た め に 用 い る .3.3. 形 態 素 N-gram
形 態 素 N-gram は 形 態 素 解 析 と N-gram を 組 み 合 わ せ た 手 法 で あ る . 文 字 単 位 で は な く , 形 態 素 を 単 位 と し て 文 章 に N-gram を 適 用 す る こ と で 複 数 単 語 か ら な る フ レ ー ズ や 文 を 抽 出 で き る .た と え ば ,“ フ ラ グ を 更 新 す る ” と い う 文 章 の 場 合 , N が 3 の N-gram に よ っ て “ フ ラ グ ” を 抽 出 で き る が “ ラ グ を ” と い っ た , 元 の 文 章 と は 意 味 の 異 な る 文 字 列 が 取 り 出 さ れ , 異 な る 文 章 を 推 薦 し て し ま う 可 能 性 が あ る . 形 態 素 N-gram で は ,最 小 単 位 を 形 態 素 と し て N-gram を 求 め る こ と で , 1 MeCab: http://mecab.sourceforge.net/ 元 の 文 章 と 異 な る 意 味 を 持 つ 単 語 や フ レ ー ズ の 抽 出 を 抑 制 で き る た め , 推 薦 制 度 が 高 く な る と 考 え ら れ る . 提 案 手 法 は 形 態 素 N-gram を 用 い る こ と で バ グ 報 告 コ メ ン ト か ら フ レ ー ズ を 切 り 出 し , コ ミ ッ ト コ メ ン ト に 含 ま れ る フ レ ー ズ と 比 較 す る こ と で , バ グ 報 告 と ソ ー ス コ ー ド を リ ン ク 付 け る .3.4. 手 順
提 案 手 法 の 処 理 手 順 を 図 2 に 示 す .1)
バ グ 報 告 の 文 章 に 形 態 素 N-gram を 適 用 し , フ レ ー ズ を 抽 出 す る .こ の と き ,文 章 を 読 点 や’? ’,’ …’,’・’な ど 文 の 終 わ り や 文 の 先 頭 を 示 す 記 号 で 区 切 り , 文 を ま た い だ 抽 出 は 行 わ な い .2)
抽 出 し た フ レ ー ズ そ れ ぞ れ に 対 し て , コ ミ ッ ト コ メ ン ト に 出 現 す る 回 数 を カ ウ ン ト す る .3)
バ グ 報 告 ご と に コ ミ ッ ト コ メ ン ト を カ ウ ン ト 数 の 多 い 順 に 順 位 付 け す る .4)
上 位 の コ ミ ッ ト コ メ ン ト を 修 正 候 補 と し て 開 発 者 に 推 薦 す る .4. 実 験
提 案 手 法 を 用 い た 推 薦 の 精 度 を 評 価 す る た め に 実 験 を 行 う . 実 験 で は オ ー プ ン ソ ー ス ソ フ ト ウ ェ ア の 開 発 プ ロ ジ ェ ク ト に 報 告 さ れ た バ グ 報 告 と , ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト に 対 し て 提 案 手 法 を 適 用 し , 精 度 を 求 め る . 提 案 手 法 の 推 薦 精 度 は 形 態 素 N-gram を 抽 出 す る と き の N の 値 に よ っ て 異 な る と 考 え ら れ る .本 実 験 で は N を 1 か ら 10 ま で 1 ず つ 増 や し ,そ れ ぞ れ の 場 合 の 推 薦 精 度 を 評 価 す る . ま た , 提 案 手 法 の 有 用 性 を 確 認 す る た め に TF-IDF を 用 い た 推 薦 手 法 と 比 較 す る .4.1. 推 薦 対 象
実 験 に 用 い る デ ー タ は , 日 本 語 で 記 述 可 能 な プ ロ グ ラ ミ ン グ 言 語「 な で し こ 」の 開 発 プ ロ ジ ェ ク ト で 2008 年 10 月 か ら 2010 年 9 月 に 記 録 さ れ た バ グ 報 告 の 文 章 デ ー タ と , ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト の 文 章 デ ー タ で あ る . 開 発 者 が バ グ を 修 正 し た 際 に BTS か ら VCS へ リ ン ク 付 け し た も の を 正 解 集 合 と し て ,推 薦 精 度 を 評 価 す る . バ グ 報 告 は BTS か ら VCS へ リ ン ク が あ る も の を 用 い , ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト は 期 間 中 に 記 録 さ れ た す べ て を 用 い る . 上 記 の 条 件 を 満 た し て い る デ ー タ 数 は , バ グ 報 告 が 145 件 , ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト が 1842 件 ,開 発 者 に よ る バ グ 報 告 と ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト の リ ン ク が 存 在 す る 組 ( 正 解 集 合 ) が 153 組 で あ る .4.2. 推 薦 精 度 の評 価
そ れ ぞ れ の バ グ 報 告 に 対 し て , 提 案 手 法 に よ っ て ラ ン キ ン グ さ れ た コ ミ ッ ト コ メ ン ト の 上 位 1 位 , 5 位 , 10 位 以 内 に 答 え が 存 在 す る か 確 認 す る . 上 位 1 位 , 5位 ,10 位 以 内 の そ れ ぞ れ に 答 え が 1 つ で も あ っ た 場 合 , 提 案 手 法 に よ り 正 し く バ グ 報 告 と ソ ー ス コ ー ド を リ ン ク 付 け で き た と み な す . こ れ を す べ て の バ グ 報 告 に 対 し て 行 い , 式 (1)で 精 度 を 求 め , 評 価 を 行 う . 精 度 は 0 ~ 1 の 範 囲 を と り , 値 が 大 き い ほ ど 正 確 に バ グ 報 告 と 修 正 さ れ た ソ ー ス コ ー ド を リ ン ク 付 け し て い る こ と を 表 す .
精 度 =
上 位n 位 内 に 答 え が あ る バ グ 報 告 数 バ グ 報 告 の 総 数 (1)4.2.1. 提 案 手 法 の 評 価
形 態 素 N-gram を 適 用 す る 際 の N の 値 を 1 か ら 10 ま で 変 化 さ せ , そ れ ぞ れ の 精 度 を 求 め る . N-gram は , N の 値 が 大 き い ほ ど 長 い フ レ ー ズ を 抽 出 す る こ と が で き る た め , 文 章 の コ ン テ キ ス ト と 関 係 の な い 一 般 的 な フ レ ー ズ の 抽 出 を 抑 え る こ と が で き る と 考 え ら れ る . そ の た め , N の 値 を 大 き く す る ほ ど 同 一 の コ ン テ キ ス ト に 属 す る 文 章 を 適 切 に 推 薦 で き , 精 度 が 高 く な る と 考 え ら れ る .4.2.2. TF-IDF を 用 い た 手 法 の 評 価
TF-IDF 法 は ,あ る 文 章 の 集 合( 文 章 セ ッ ト )の 中 に 含 ま れ る 一 つ の 文 章 に 注 目 し た と き , そ の 文 章 が 文 章 セ ッ ト の 中 で ど う い っ た 単 語 (term)で 特 徴 づ け ら れ る か 調 べ る 手 法 で あ る [2]. TF-IDF 値 は 式 (2)か ら (4)で 計 算 さ れ る . 𝑡𝑓𝑐,𝑛=∑𝑑𝑐,𝑛𝑑 𝑖,𝑛 𝐶 𝑖=1 (2) 𝑖𝑑𝑓𝑐= 𝑙𝑜𝑔|{𝑑:𝑡|𝐷| 𝑐∈𝑑}| (3) 𝑇𝐹 − 𝐼𝐷𝐹𝑐,𝑛= 𝑡𝑓𝑐,𝑛∙ 𝑖𝑑𝑓𝑐 (4) tfc , nは 単 語 c が 文 章 n に 出 現 し た 回 数 dc , nを ,n の 総 単 語 数 で 割 っ た も の で , 値 が 大 き い ほ ど 文 章 n に 単 語 c が 多 く 出 現 し て い る こ と を 表 す .idfcは c が 文 章 セ ッ ト 中 の い く つ の 文 章 に 含 ま れ て い る か を 表 す DF(Document Frequency) の 逆 数 の 対 数 で あ る .こ こ で , |D|は 全 文 章 数 , |{d: 𝑡𝑐∈ 𝑑}|は 単 語 c を 含 む ド キ ュ メ ン ト 数 を 表 す . idf の 値 が 大 き い ほ ど 単 語 c が 少 数 の 文 章 に し か 出 現 し な い こ と を 表 す . 各 文 章 に お け る 単 語 の 特 徴 度 は 式 (4)よ り 求 め る こ と が で き る . TF-IDF 値 は 文 章 に お け る そ の 単 語 の 特 徴 度 の 高 さ を 表 し て い る . TF-IDF は 重 複 し た バ グ を 見 つ け る 研 究 [3]や 電 子 メ ー ル と ソ ー ス コ ー ド を リ ン ク 付 け る 研 究 [4] で 利 用 さ れ て い る オ ー ソ ド ッ ク ス な 方 法 な た め ,TF-IDF と 提 案 手 法 の 比 較 を 行 う .TF-IDF を 用 い た 手 法 の 手 順 を 以 下 に 示 す . 1) バ グ 報 告に 形 態 素 解 析 を 適 用 す る 2) 形 態 素 解 析 の 結 果 か ら 名 詞 の み を 用 い て TF-IDF 値 を 求 め る 3) TF-IDF 値 を も と に バ グ 報 告 ご と に コ ミ ッ ト コ メ ン ト を 順 位 付 け す る4)
上 位 の コ ミ ッ ト コ メ ン ト を 修 正 候 補 と し て 開 発 者 に 提 示 す る4.3. 実 験 手 順
実 験 の 手 順 を 以 下 に 示 す . 1) な で し こ の 開 発 プ ロ ジ ェ ク ト の バ グ 報 告145 件 に 対 し て 提 案 手 法 を 適 用 す る 2) バ グ 報 告145 件 そ れ ぞ れ に コ ミ ッ ト コ メ ン ト が 推 薦 さ れ た 精 度 を 求 め る 3) N-gram の 値 を 変 更 し , 1)2)の 処 理 を 行 う 4) 手 法 を TF-IDF に 変 更 し , 1)2)の 処 理 を 行 う 5) 3)4)で 求 め た 精 度 を 比 較 す る 図 2: 提 案 手 法 の 処 理 手 順5. 結 果
形 態 素 N-gram の N の 値 を 1 か ら 10 ま で 変 化 さ せ た と き の , 上 位 1 位 , 5 位 , 10 位 ま で 推 薦 し た と き の 精 度 を 図 3 に 示 す .い ず れ の 順 位 に お い て も N の 値 が 大 き く な る に つ れ て 精 度 が 向 上 し , N が 3 の 時 に 最 も 良 い 精 度 ( 上 位 1 位 : 0.759, 上 位 5 位 : 0.911, 上 位 10 位:0.981)だ っ た .そ れ 以 降 は N が 大 き く な る に つ れ 精 度 が 低 下 し た . コ ミ ッ ト コ メ ン ト の 順 位 に 注 目 す る と , よ り 低 い 順 位 ま で 推 薦 に 含 め た と き に 精 度 が 高 い . し か し , 上 位 10 位 ま で 推 薦 し た 場 合 と 上 位 5 位 ま で 推 薦 し た 場 合 に つ い て , N が 5 以 上 の 時 に 差 は 見 ら れ な か っ た . ま た ,TF-IDF を 用 い た 手 法 の 場 合 ,上 位 1 件 の み に 注 目 し た 場 合 の 精 度 は 0.634,上 位 5 件 の 場 合 は 0.876, 上 位 10 件 の 場 合 は 0.915 と な っ た . N-gram の 結 果 と TF-IDF の 結 果 を 比 較 す る と , N が 3 の 場 合 に TF-IDF よ り 高 い 精 度 が 得 ら れ た . 上 位 1 位 の み に 注 目 し た 場 合 , N が 3, 4, 5 の 場 合 に お い て TF-IDF よ り 精 度 が 高 か っ た .6. 考 察
N-gram の N が 3 の 場 合 に お い て ,提 案 手 法 は TF-IDF を 用 い た 手 法 よ り も 高 い 精 度 で コ ミ ッ ト コ メ ン ト を 推 薦 で き た . 提 案 手 法 と TF-IDF を 用 い た 手 法 は , い ず れ も 2 つ の 文 書 に 現 れ る 単 語 か ら 類 似 性 を 推 測 す る 点 で ,似 た 手 法 と い え る .し か し ,TF-IDF を 用 い た 手 法 は 複 数 の 単 語 が 文 書 中 に 現 れ る 順 序 を 考 慮 で き な い 一 方 で , 提 案 手 法 は 形 態 素 N-gram を 抽 出 す る こ と で 単 語 の 順 序 も 考 慮 し て 文 書 間 の 類 似 性 を 見 る こ と が で き る . そ の た め , 提 案 手 法 に お い て よ り 高 い 推 薦 精 度 が あ え ら れ た と 考 え ら れ る . 特 に , 本 実 験 で 最 も 精 度 の 高 か っ た N が 3 の 場 合 , “ フ ァ イ ル の 先 頭 ” や “ 反 転 処 理 の 改 善 ” の よ う な あ る 単 語 を よ り 詳 し く 説 明 す る フ レ ー ズ を 抽 出 で き る た め , 同 じ 単 語 を 用 い た , 異 な る コ ン テ キ ス ト に 属 す る 文 章 を 推 薦 候 補 か ら 除 外 す る こ と が で き た と 考 え ら れ る . 一 方 で , N が 2 以 下 の 場 合 は , こ の よ う な 効 果 は ほ と ん ど 得 ら れ な い た め 精 度 が 低 か っ た と 考 え ら れ る . N の 値 を 大 き く す る ほ ど 精 度 が 下 が る 原 因 と し て , コ ミ ッ ト コ メ ン ト の 1 文 に 含 ま れ る 形 態 素 の 数 が 少 な い こ と が 考 え ら れ る . 提 案 手 法 で は , 文 を ま た い だ 形 態 素 N-gram の 抽 出 は 行 っ て い な い . そ の た め , あ る コ ミ ッ ト コ メ ン ト に 含 ま れ る 文 の 形 態 素 数 が い ず れ も N よ り 小 さ い 場 合 に 推 薦 を 行 え ず , 精 度 が 下 が る 可 能 性 が あ る . 実 験 で 用 い た バ グ 報 告 の 1 文 の 形 態 素 数 を 表 し た ヒ ス ト グ ラ ム を 図 4 に 示 す . 図 の 横 軸 は 1 つ の 文 に 含 ま れ る 形 態 素 の 数 を ,縦 軸 は 頻 度 を 表 し て い る . 図 よ り ,全 体 の 86.6%の デ ー タ が 27 形 態 素 ま で の 範 囲 に 存 在 し て お り , 形 態 素 数 が 10 未 満 の 文 は 全 体 の 34.8% で あ っ た . こ れ は , 実 験 に お け る , 提 案 手 法 が 抽 出 で き る 形 態 素 数 10 を 超 え る 文 が 多 数 存 在 し て い た こ と を 示 し て い る . 一 方 で , 提 案 手 法 は , バ グ 報 告 と コ ミ ッ ト コ メ ン ト か ら 長 さ N の 同 じ フ レ ー ズ を 抽 出 で き た と き に 推 薦 を 行 う た め ,い ず れ か の 形 態 素 数 が N よ り 小 さ い と ,適 切 に 推 薦 で き な い .今 後 ,正 解 集 合 の 153 組 に つ い て , そ れ ぞ れ の 取 り 得 る N の 最 大 値 を 調 べ ,そ れ を 超 え る N に よ る 推 薦 を 分 析 か ら 除 外 す る 事 で よ り 適 切 に 評 価 が 行 え る と 考 え ら れ る . 推 薦 す る 件 数 を 上 位 1 か ら ,上 位 5 位 ま で ,上 位 10 位 ま で に 増 や す ほ ど 精 度 が 向 上 し た . こ れ は , 形 態 素 N-gram の 一 致 数 に よ る 順 位 付 け に お い て ,正 解 で あ る コ ミ ッ ト コ メ ン ト を 1 位 で 推 薦 で き な か っ た 場 合 に お い て , 5 位 以 内 ,10 位 以 内 に 含 ま れ て い た こ と を 示 す . し た が っ て , 提 案 手 法 を 用 い た 推 薦 を 行 う 場 合 , 上 位 5 件 ,ま た は 上 位 10 件 を 開 発 者 に 提 示 す る こ と で ,高 い 確 率 で 適 切 な ソ ー ス コ ー ド を 推 薦 で き る こ と を 示 し て い る .7. お わ り に
本 研 究 で は コ ン テ キ ス ト を 検 索 す る 労 力 を 削 減 す る た め に , バ グ 報 告 に 関 係 す る ソ ー ス コ ー ド を 推 薦 す る 手 法 を 提 案 し た . 提 案 手 法 は , バ グ 報 告 の コ メ ン ト か ら 形 態 素 N-gram に よ り フ レ ー ズ を 抽 出 し , バ グ 報 告 コ メ ン ト と 同 じ フ レ ー ズ を 多 く 含 ん で い る ソ ー ス コ ー ド の コ ミ ッ ト コ メ ン ト を 推 薦 す る . 提 案 手 法 を オ ー プ ン ソ ー ス ソ フ ト ウ ェ ア プ ロ ジ ェ ク ト の リ ポ ジ ト リ に 適 用 し た 結 果 , 最 大 で 75.9%の 精 度 で 推 薦 で き た . 提 案 手 法 を TF-IDF を 用 い た 推 薦 手 法 と 比 較 し た と こ ろ , N が 3 の 場 合 に TF-IDF よ り 高 い 精 度 で 推 薦 す る こ と が で き た . 今 後 , 提 案 手 法 に よ っ て 推 薦 で き な か っ た コ ミ ッ ト コ メ ン ト に つ い て 文 章 を 精 査 し , 提 案 手 法 が 適 切 に 機 図 3: 提 案 手 法 の 推 薦 精 度 0 . 0 0 0 . 1 0 0 . 2 0 0 . 3 0 0 . 4 0 0 . 5 0 0 . 6 0 0 . 7 0 0 . 8 0 0 . 9 0 1 . 0 0 1 2 3 4 5 6 7 8 9 10 精 度 Nの値 上位1位 上位5位 上位10位能 し な い と 思 わ れ る 以 下 の 2 点 に つ い て 調 査 す る . 文 書 間 で 現 れ る 形 態 素 N-gram が 類 似 し て い る が 同 じ コ ン テ キ ス ト に 属 さ な い 場 合 同 じ コ ン テ キ ス ト に 属 し て い る ( 開 発 者 が リ ン ク し て い る ) 文 書 間 で 抽 出 さ れ る 形 態 素 N-gram が 大 き く 異 な る 場 合 ま た , バ グ 報 告 コ メ ン ト に 対 応 し た 修 正 が 行 わ れ た 際 の コ ミ ッ ト コ メ ン ト に は , バ グ 報 告 コ メ ン ト か ら コ ピ ー ・ ア ン ド ・ ペ ー ス ト し た 文 章 が 含 ま れ て い る 可 能 性 が 高 い . 今 後 , こ の よ う な 文 章 が ど れ だ け 存 在 す る の か 調 査 し , 推 薦 精 度 に ど の よ う な 影 響 を 与 え て い る か 調 査 す る .
文 献
[1] M. Ohira, R. Yokomori, M. Sakai, K. Matsumoto, K. Inoue, and K. Torii, "Empirical Project Monitor: A Tool for Mining Multiple Project Data, " In Proc. International Workshop on Mining Software Repositories (MSR2004), pp.42-46, 2004.
[2] G. Salton, and M. J. McGill, "introduction to modern information retrieval, " McGraw Hill, 1983.
[3] Chengnian Sun, David Lo, Xiaoyin Wang, Jing Jiang, Siau-Cheng Khoo, "A discriminative model approach for accurate duplicate bug report retrieval ," In Proc. the 32nd ACM/IEEE International Conference on Software Engineering, Vol.1, pp.45-54, 2010. [4] Alberto Bacchelli, Michele Lanza, Romain Robbes,
"Linking e-mails and source cod e artifacts”, In Proc. the 32nd ACM/IEEE International Conference on Software Engineering, Vol.1, pp.375-384, 2010.
図 4: 一 文 の 形 態 素 数 0 5 10 15 20 25 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 頻 度 形態素数