研究データのメタデータ生成におけるREADMEファイルの利用

コードリポジトリとは，GitHub1）などに代表される，主にソフトウェア開発で利用されてきたリポジトリである．コードリポジトリには，ソフトウェアのコードに加え，その利用方法などが記述されたドキュメントであるREADMEが付加されている．近年では，研究データの公開先としても利用される事例が増えており，コードリポジトリは研究データリポジトリとしての役割も担いつつある[1]．そこでは，研究データの概要や利用方法などの説明のためにREADMEが掲載されることが多い．研究データが円滑に流通するには，メタデータが整備されていることが重要である[2]．メタデータとは，表1に示すように，体系化された項目とその値で表現されるデータであり，それらがメタデータリポジトリに登録されることで，研究データの検索性が高まる．しかし，コードリポジトリに掲載された研究データにはメタデータが整備されていないこ1）https://github.co.jp/項目値TitleHelsinkiProsodyCorpusPublicationYear2019CreatorAarneTalman,AnttiSuni,...SubjectProsodyPredictionLanguageEnglishとも多く，公開されていても，その存在が十分に認知されにくい状況が生じている．そこで本論文では，研究データのメタデータをREADMEを用いて生成することの実現可能性を検証する．READMEを用いてメタデータが生成されれば，それをメタデータリポジトリに登録することにより，コードリポジトリで公開された研究データの検索性が高まることが期待できる．本研究ではまず，研究データのメタデータ生成に有用な情報をREADMEがどの程度含んでいるかをGitHubを対象に分析した．その結果，メタデータ項目によって差はあるものの，READMEがメタデータ生成のための情報源として利用できることを確認した．次に，大規模言語モデル（LLM）を用いた抽出実験を行い，その抽出性能を評価したところ，メタデータ生成に有用な情報をREADMEから高水準で抽出可能であることを確認した．本論文の構成は以下の通りである．2章では，研究データのメタデータとREADMEについて，関連研究を交えて説明する．続く3章では，研究データのメタデータ生成に有用な情報をREADMEがどの程度含んでいるかを分析する．4章では，抽出実験について報告する．最後に，5章で本論文をまとめる．Thisworkispublishedwithoutpeerreviewandislicensedbytheauthor(s)underCCBY4.0(https://creativecommons.org/licenses/by/4.0/).org/licenses/by/4.0/).85.23%(2,100/2,464)71.79%(1,229/1,712)TitlePublicationYear82.44%(1,690/2,050)54.23%(988/1,822)30.97%(315/1,017)CreatorSubjectLanguage0.00%20.00%40.00%60.00%80.00%100.00%出現割合うち，研究データのメタデータの国際標準であるDataCiteMetadataSchema[14]の項目に対応するものを確認した．その結果，表1で示した5つの項目について対応関係が認められたため，これらのメタデータ項目を分析対象とした．3.2分析方法READMEにおけるメタデータ項目の値の出現判定の方法は以下の通りである．まず，メタデータとREADMEに対して，表記揺れの影響を抑制するための文字列処理を行った4）．次に，メタデータ項目ごとに，その値がREADMEに出現するか否かを判定した．PWCDのメタデータではCreater，Subject，Languageの値はリスト形式で表現されている．値がリスト形式の場合は，リストの要素が1つでもREADMEに含まれれば，その値がREADMEに出現したと判定した5）．3.3分析結果メタデータ項目ごとの出現割合を図2に示す．出現割合が高かった項目はTitleとCreatorであり，いずれも80%を超えていた．最も出現割合が低かったLanguageでも30%に達していた．分析対象である5つの項目の出現割合のマクロ平均は64.93%であり，項目によって出現割合に差はあるものの，READMEがメタデータ生成のための情報源として利用できることを確認した．4実験研究データのメタデータ生成に有用な情報をREADMEから抽出することの実現可能性を検証4）文字列処理の詳細は付録Aを参照されたい．5）PWCDのメタデータの中には，値が未入力の項目が存在する．値が未入力であった場合は，READMEにおけるメタデータ項目の値の出現割合を算出する際の対象外とした．するために，LLMを用いた抽出実験を行った．なお3章同様，本実験においても，データセットのREADMEを対象とする．4.1実験データ3章で使用した分析データを訓練，開発用に分割し，分析に使用していない計273件のデータをテスト用に割り当てた．分割は訓練，開発，テスト用でおおよそ8:1:1の比率になるように行った．本実験では，開発データをプロンプト設計のために用い，テストデータを評価のために用いた．4.2実装実験で使用したLLMについて説明する．オープンモデルとしては，Llama-3.1-8B-Instruct[15]，Ministral-8B-Instruct-2410[16]，Qwen3-8B[17]，クローズドモデルとしては，GPT5[18]を用いた．オープンモデルとGPT5による抽出を行うために，vLLM6）とOpenAIAPI7）をそれぞれ利用した．なお，vLLMについてはtemperatureを0.0に設定した．すべてのモデルにStructuredOutputsを適用し，表1に示す5つの項目からなるメタデータをJSON形式で出力するよう指示した．プロンプトでは，データセットのメタデータ項目の値を抽出するように指示し，抽出する値が特定できない場合はnullを出力するよう指示した8）．4.3評価方法メタデータ項目ごとに，LLMの性能を評価した．評価指標評価指標には再現率，適合率，F値を用いた．それぞれの指標は以下の方法で算出した．•再現率:READMEに出現したメタデータ項目の値のうち，正しく抽出できたものの割合•適合率:LLMが出力したnullでない値のうち,正しいものの割合•F値:再現率と適合率の調和平均正誤判定方法抽出された値の正誤を，正解文字列とLLMの出力文字列の一致により判定した．文字列一致の判定方法はTitle,Subjectは部分一致，PublicationYear,Creator,Languageは完全一致とした9）．また，メタデータ項目の値がリスト形式の6）https://github.com/vllm-project/vllm7）https://openai.com/ja-JP/api/8）実験に使用したプロンプトは，付録Bを参照されたい．9）一致判定を行う際，正解文字列と出力文字列の両方に，3章の分析と同じ文字列処理を項目ごとに行った．org/licenses/by/4.0/).再現率適合率LlamaMinistralQwenGPTLlamaMinistralQwenGPTTitle82.68(191/231)79.65(184/231)84.42(195/231)93.07(215/231)LlamaMinistralQwenGPTTitle77.2275.3280.7888.14PublicationYear89.4291.7789.2290.06Creator96.1493.6491.1896.83Subject65.1962.7357.1978.18Language80.4791.8091.4685.01マクロ平均81.6983.0581.9787.64場合は，リストの要素が1つでも一致すれば正解とした．テストデータ内のメタデータ項目の値が未入力の場合は判定を行わず，評価の対象外とした．4.4実験結果再現率と適合率の結果を表2に示す．再現率については，いずれのメタデータ項目においても最も高いモデルでスコアが90%を上回っており，LLMがREADMEに含まれるメタデータ項目の値を高い網羅性で抽出できることを確認した．適合率については，Subjectのスコアが相対的には低かったものの，その他のメタデータ項目においては最も高いモデルのスコアが80%を上回っており，高い正確性でメタデータ項目の値を抽出できていることを確認した．次に，F値の結果を表3に示す．いずれのモデルも，F値のマクロ平均が80%を上回っており，その中でもGPT5の抽出性能が最も高かった．これらのことから，LLMを用いることで，研究データのメタデータ生成に有用な情報をREADMEから高水準で抽出可能であることを確認した．4.5エラー分析LLMは高い抽出性能を示したものの，誤った抽出も確認された．本実験では，README内にデータセットとは別の種別の研究データが出現する場合において，その研究データに関する情報を抽出してしまう誤りを確認した．その具体例として，原子の熱PublicationYear93.91(185/197)93.91(185/197)94.92(187/197)94.42(186/197)Creator98.42(187/190)96.84(184/190)95.26(181/190)96.32(183/190)Subject81.13(86/106)79.25(84/106)73.58(78/106)92.45(98/106)Language74.19(23/31)90.32(28/31)90.32(28/31)77.42(24/31)72.43(197/272)71.43(190/266)77.44(206/266)83.71(221/264)85.34(198/232)89.72(192/214)84.17(202/240)86.09(198/230)93.97(187/199)90.64(184/203)87.44(181/207)97.34(183/188)54.49(91/167)51.91(95/183)46.77(87/186)67.72(128/189)87.91(80/91)93.33(126/135)92.62(138/149)94.25(82/87)出力されたTitle中略正解のTitle振動解析のためのデータセットであるADPDataset[19]のREADME10）の一部を図3に示す．この例では，正解のTitleはADPDatasetであるにもかかわらず，ADPDatasetで学習されたモデルであるCartNetが誤ってTitleとして抽出されている．このような誤りを抑制するためには，README内に記述された研究データの種別をLLMが適切に判定できる必要がある．そのためのプロンプトの改良は今後の課題の1つである．5おわりに本論文では，研究データのメタデータをREADMEを用いて生成することの実現可能性を検証した．READMEを分析し，READMEには研究データのメタデータ項目の値が含まれやすく，メタデータ生成のための情報源として利用できることを確認した．また，LLMによる抽出実験を行い，研究データのメタデータ生成に有用な情報をREADMEから高水準で抽出可能であることを確認した．本実験では，READMEがデータセットのものであることを前提としたが，一般的には，READMEの対象は自明ではない．今後は，READMEの記述対象の識別にも取り組みたい．10）https://github.com/imatge-upc/CartNetorg/licenses/by/4.0/).