{"created":"2024-04-10T01:50:46.078003+00:00","id":2000664,"links":{},"metadata":{"_buckets":{"deposit":"6539c4d7-95f8-4fd7-a4c2-18b1d165d1bf"},"_deposit":{"created_by":15,"id":"2000664","owner":"15","owners":[15],"pid":{"revision_id":0,"type":"depid","value":"2000664"},"status":"published"},"_oai":{"id":"oai:mie-u.repo.nii.ac.jp:02000664","sets":["366:640:641:1706490217911"]},"author_link":[],"item_7_biblio_info_6":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicIssueDates":{"bibliographicIssueDate":"2024-03","bibliographicIssueDateType":"Issued"}}]},"item_7_contributor_61":{"attribute_name":"修士論文指導教員","attribute_value_mlt":[{"contributorNames":[{"contributorName":"山田, 俊行","lang":"ja"}]}]},"item_7_description_14":{"attribute_name":"フォーマット","attribute_value_mlt":[{"subitem_description":"application/pdf","subitem_description_type":"Other"}]},"item_7_description_4":{"attribute_name":"抄録","attribute_value_mlt":[{"subitem_description":"プログラミングにおいて,コードの再利用やライブラリの活用はその作業を効率化させる.しかし,ユーザがそれらの存在を知らずに,類似処理をするコードを記述してしまい,プログラミングが非効率になることがある.効率化のためには,ユーザが記述したコード片に対して類似処理をするコード片やライブラリを自動で推薦するシステムが必要である.\nコード片やライブラリの推薦システムは主にコンテンツベースフィルタリングと協調フィルタリングの2 種に分けられる.前者はコード片が持つ情報を用いるため,ソースコードの構造やその処理内容などを考慮して推薦できる.一方,後者はユーザが記述したコード片やソースコードレポジトリなどで使用される関数やライブラリの使用傾向により推薦されるため,類似処理のコード片が推薦されない可能性がある.\nまた,ユーザが記述したコード片と推薦候補のコード片の間には,字句や構文が完全に一致しないことが多い.しかし,コンパイラによって翻訳された低水準なバイトコードや機械語レベルではコード片が類似するため,ソースコードの字句や構文に差異があっても推薦できる.また,コード片内で呼び出される関数やメソッドが全く異なる処理をする場合,コード片全体の処理が異なり,推薦対象とならない.そのため,呼び出す関数やメソッドの情報も考慮しなければならない.\nそこで本研究では,命令と呼び出し関係を用いたコンテンツベースの類似コードの推薦手法を提案する.提案手法で扱う命令と呼び出し関係は,それぞれ特徴ベクトルと呼び出しグラフで扱う.特徴ベクトルはバイトコードや機械語から得られる命令の出現回数をベクトルにしたもので,呼び出しグラフは関数・メソッドの間の呼び出し関係を表すグラフである.また,呼び出しグラフの頂点は関数やメソッド,辺は関数・メソッド間の呼び出し関係を表し,頂点と辺には関数・メソッドの情報を属性に持つ.特徴ベクトルと呼び出しグラフから類似度を測り,それらの閾値の範囲を満たしたものでランキングし,類似処理をするコード片を推薦する.類似度を測る指標として,特徴ベクトルはコサイン相違度,呼び出しグラフは正規化グラフ編集距離を用いた.また,正規化グラフ編集距離において,置換操作にかかるコストを呼び出しグラフの頂点と辺が持つ属性で計算し,重みでどの属性を重視するか調整できるようにした.\n提案手法の実験と評価のために,提案手法の実装と実験データの作成を行った.また,実験データを用いて提案手法での適切な重みと閾値の範囲を求めた.推薦の精度を測るために推薦結果上位k 位の精度を表す適合率@k,再現率@k を用いて評価した.","subitem_description_language":"ja","subitem_description_type":"Abstract"}]},"item_7_description_5":{"attribute_name":"内容記述","attribute_value_mlt":[{"subitem_description":"三重大学大学院 工学研究科 博士前期課程 情報工学専攻 コンピュータソフトウェア研究室","subitem_description_type":"Other"},{"subitem_description":"33p","subitem_description_type":"Other"}]},"item_7_publisher_30":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"三重大学"}]},"item_7_text_31":{"attribute_name":"出版者(ヨミ)","attribute_value_mlt":[{"subitem_text_value":"ミエダイガク"}]},"item_7_text_65":{"attribute_name":"資源タイプ(三重大)","attribute_value_mlt":[{"subitem_text_value":"Master's Thesis / 修士論文"}]},"item_7_version_type_15":{"attribute_name":"著者版フラグ","attribute_value_mlt":[{"subitem_version_resource":"http://purl.org/coar/version/c_970fb48d4fbd8a85","subitem_version_type":"VoR"}]},"item_creator":{"attribute_name":"著者","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"大野, 順也","creatorNameLang":"ja"}]}]},"item_files":{"attribute_name":"ファイル情報","attribute_type":"file","attribute_value_mlt":[{"accessrole":"open_access","date":[{"dateType":"Available","dateValue":"2024-04-10"}],"filename":"2023ME0193.pdf","filesize":[{"value":"1.7 MB"}],"format":"application/pdf","url":{"url":"https://mie-u.repo.nii.ac.jp/record/2000664/files/2023ME0193.pdf"},"version_id":"f34556e2-4c49-4a86-916d-a4ae55638efa"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourcetype":"thesis","resourceuri":"http://purl.org/coar/resource_type/c_46ec"}]},"item_title":"命令と呼び出しグラフによる類似コード推薦法","item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"命令と呼び出しグラフによる類似コード推薦法","subitem_title_language":"ja"}]},"item_type_id":"7","owner":"15","path":["1706490217911"],"pubdate":{"attribute_name":"PubDate","attribute_value":"2024-04-10"},"publish_date":"2024-04-10","publish_status":"0","recid":"2000664","relation_version_is_last":true,"title":["命令と呼び出しグラフによる類似コード推薦法"],"weko_creator_id":"15","weko_shared_id":-1},"updated":"2024-04-10T01:54:40.793373+00:00"}