本ページはプロモーション(PR)が含まれています

ImportError: cannot import name 'load_metric' from 'datasets'の解決方法について

load_metric
はるか
はるか
datasetsのload_metricがエラーを吐いた。どう修正する?
ふゅか
ふゅか
あ、それってdatasetsのバージョン問題よね!確か、3.0.0以降はload_metricがなくなって、evaluateライブラリに移行したんだって。

問題のあるコード

from datasets import load_metric
rouge_metric = load_metric("rouge")

上記のコードを使って、rougeスコアをdatasetsから読み込もうとしたときに、次のようなエラーが発生しました。

ImportError: cannot import name 'load_metric' from 'datasets'

原因

どうやら、datasetsのバージョン3.0.0以降はload_metricが除去されたようです。そして、評価の機能が新しくevaluateライブラリに移行されました。

解決方法

 evaluateライブラリを使用

現在のHugging Faceエコシステムでは、評価メトリクスの読み込みと使用にはevaluateライブラリを利用することが推奨されています。

  • ライブラリのインストール まず、evaluateをインストールします。
    pip install evaluate
    
  • コードの修正 以下のようにコードを修正します。修正前:
    from datasets import load_metric
    rouge_metric = load_metric("rouge")
    

    修正後:

    import evaluate
    rouge_metric = evaluate.load("rouge")
    

    修正後のコードでは、evaluate.load("rouge")を使ってRougeメトリクスを読み込むことができます。

 古いバージョンのdatasetsを使用

どうしてもload_metricを使いたい場合は、datasetsの古いバージョンを使用する方法もあります。

pip install datasets==2.21.0

Rougeスコアの計算

以下は、evaluateライブラリを使ったRougeスコアの計算例です。

import evaluate

# Rougeメトリクスをロード
rouge_metric = evaluate.load("rouge")

# サンプルデータ
predictions = ["I love machine learning."]
references = ["I enjoy machine learning."]

# Rougeスコアを計算
results = rouge_metric.compute(predictions=predictions, references=references)
print(results)

実行結果:

関連記事