sel.ist.osaka

識別子の命名支援を目的と
した動詞-目的語関係の辞書
構築
井上研究室
鹿島 悠
1
プログラム中の識別子
• いくつかの単語を組み合わせて複合語として
意味を表現
– expandTree
• 識別子の組み合わせで意味を表現
– Socketクラスの bind(SocketAddress)
• 適切な命名のためには,単語や識別子の適
切な組み合わせを知る必要がある
• 単語間の関係を収録した辞書を用いて支援
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
2
動詞-目的語関係
• プログラムの動作を表わす重要な関係
• オブジェクト指向プログラムのメソッドに着目
Ex. JMenuクラスの void addMenuListener(MenuListener)
MenuListener を JMenu に 追加(add)する
直接目的語
間接目的語
動詞
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
3
問題点
• プログラム中で用いられる関係は既存の自
然言語の辞書にあまり含まれていない
• プログラムは多様なドメインを扱うためドメイ
ン固有の関係も多く出現
• 既存の辞書では十分な命名支援を行うことが
できない
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
4
提案手法
• ドメインごとに分類された動詞-目的語の関係を収録し
た辞書の構築
• 入力
– オブジェクト指向プログラミング言語で記述された特定の
ドメインを扱う複数のソフトウェアのソースコード集合
• 実装ではJavaで記述されたソースコードを対象とした
• 出力
– 特定のドメインに出現する動詞-目的語関係を収録した辞書
動詞
直接目的語
Add
Product
Close
Connection
間接目的語
Stock
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
5
提案手法の概要
特定のドメインに所属する
ソフトウェアのソースコード
抽出パターン
事前に人手で定義
void 動詞1 名詞2 (名詞2) in 名詞3
動詞 : 動詞1
直接目的語 : 名詞2
間接目的語 : 名詞3
メソッド情報
void add Product(Product) in Stock
動詞1 名詞2 名詞2
名詞3
パターンマッチ
動詞-直接目的語-間接目的語
辞書
動詞
直接目的語
間接目的語
出現したソフトウェアの数
Add
Product
Stock
3
Build
Data
BooleanMatrex
1
Set
Password
User
4
Describe
Alias
Xml
1
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
6
メソッド情報
品詞情報のついた単語の列4組
戻り値
メソッド名
名詞一つ
or
void
複合語を分解し
単語の列にして
品詞解析を行う
(OpenNLPを利用)
引数
名詞の列
クラス名
名詞一つ
各品詞に同じ単語を識別する番号を付与
メソッド情報の例
void
void
createTicketForUser
動詞1 名詞2 前置詞3 名詞4
User
Server
名詞4
名詞5
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
7
抽出パターン
品詞情報のついた単語の列またはワイルドカード4組 と
動詞,直接目的語,間接目的語として抽出する単語の指定
戻り値
メソッド名
引数
void
名詞一つ
ワイルドカード
品詞の列
名詞の列
ワイルドカード
クラス名
名詞一つ
ワイルドカード
各品詞に同じ単語を識別する番号を付与
動詞,直接目的語,間接目的語として抽出する単語の指定
抽出パターンの例
戻り値
void
メソッド名
動詞1 名詞2 前置詞3 名詞4
動詞
直接目的語
動詞1 名詞2
引数
ワイルドカード
クラス名
ワイルドカード
間接目的語
名詞4
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
8
パターンマッチ
ワイルドカード以外で抽出パターンの品詞とメソッド情報の品詞
が一致するか,抽出パターン中で同じ番号の単語の出現位置と
メソッド情報中の同じ番号の単語の出現位置が一致するか検査
一致していた場合抽出パターンの指定に従い動詞,直接目的語,
間接目的語を抽出
1.
2.
メソッド情報
void
void
Create Ticket For User
動詞1 名詞2 前置詞3 名詞4
User
名詞4
Server
動詞
直接目的語 間接目的語
create
Ticket
User
名詞5
抽出パターン
戻り値
void
メソッド名
動詞1 名詞2 前置詞3 名詞4
動詞
直接目的語
動詞1 名詞2
引数
クラス名
ワイルドカード ワイルドカード
間接目的語
名詞4
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
評価実験
• 実験目的
– 提案手法により作成した辞書に含まれる動詞-目的語関係の評価
• 特定のドメインを対象とした命名支援のための辞書に含まれるのに
適当かどうか
• 実験対象
– 抽出パターンを31個定義
– 4つのドメインの辞書を作成
• 2つ以上のソフトウェアに出現した三つ組を収録
ドメイン
入力したソフトウェア数 収録した三つ組の数
GUI
7
407
Database
9
672
Web Application
10
282
XML
11
547
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
10
実験方法
• 辞書に収録された三つ組に対するアンケート調査
– 各三つ組が命名支援のための辞書に収録するのに
適当かどうかを評価
– 各辞書から90個の組をランダムに抽出
• 被験者は井上研究室の学生6人
– 全員Javaを用いた開発経験あり
– 被験者が開発経験のあるドメインを対象とした辞書
に対して回答
– 1人あたり2つの辞書に対して回答
– 1つの辞書につき3人の被験者に30組づつ評価して
もらう
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
11
実験結果
• 対象ドメインの辞書に収録するのに適当と判
断された三つ組
– GUI :全体の64%
– Database :全体の71%
– XML :全体の52%
– Web Application : 全体の56%
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
12
被験者に適当と判断された例
ドメイン
動詞
直接目的語
間接目的語
GUI
Click
Mouse
MouseEvent
Database
Add
Constraint
Table
Web
Application
Destroy
Session
HttpSessionEvent
XML
Declare
Prefix
NamespaceSupport
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
13
被験者に収録すべきでないと判断された例
ドメイン
Database
動詞
Release
直接目的語
Mouse
間接目的語
MouseEvent
• 判断の理由
– 対象ドメインとは異なるドメインに所属している
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
14
考察
• 辞書作成のために入力したソフトウェアの数
が7~11と少なかった
– 対象ドメイン以外に所属する関係をフィルタリング
しきれなかった
• 入力したソフトウェアが複数のドメインを扱っ
ていた
– プログラムで一般的に見られる関係や他のドメイ
ンで見られる関係を取り除くことで解決
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
15
まとめと今後の課題
• まとめ
– プログラム中の動詞-目的語関係を収録した辞書
の構築手法を提案
• 今後の課題
– ドメイン固有の関係を抽出する方法の開発
– 辞書を利用した命名支援環境の構築
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University
16