mirror of
https://github.com/open-compass/opencompass.git
synced 2025-05-30 16:03:24 +08:00
update
This commit is contained in:
parent
a46c209eb4
commit
3460accfe9
@ -4,10 +4,6 @@ from collections import defaultdict
|
|||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from datasets import Dataset, DatasetDict, load_dataset
|
from datasets import Dataset, DatasetDict, load_dataset
|
||||||
from nltk.translate.meteor_score import meteor_score
|
|
||||||
from rdkit import Chem
|
|
||||||
from rdkit.Chem import DataStructs
|
|
||||||
from rdkit.Chem.rdFingerprintGenerator import GetMorganGenerator
|
|
||||||
|
|
||||||
from opencompass.openicl.icl_evaluator.icl_base_evaluator import BaseEvaluator
|
from opencompass.openicl.icl_evaluator.icl_base_evaluator import BaseEvaluator
|
||||||
from opencompass.registry import (ICL_EVALUATORS, LOAD_DATASET,
|
from opencompass.registry import (ICL_EVALUATORS, LOAD_DATASET,
|
||||||
@ -369,6 +365,7 @@ class FTSEvaluator(BaseEvaluator):
|
|||||||
pred = pred[0]
|
pred = pred[0]
|
||||||
detail = {'pred': pred, 'answer': ans}
|
detail = {'pred': pred, 'answer': ans}
|
||||||
# 将 SMILES 转换为 RDKit 分子对象
|
# 将 SMILES 转换为 RDKit 分子对象
|
||||||
|
from rdkit import Chem
|
||||||
mol1 = Chem.MolFromSmiles(pred)
|
mol1 = Chem.MolFromSmiles(pred)
|
||||||
mol2 = Chem.MolFromSmiles(ans)
|
mol2 = Chem.MolFromSmiles(ans)
|
||||||
if mol1 is None or mol2 is None:
|
if mol1 is None or mol2 is None:
|
||||||
@ -379,9 +376,11 @@ class FTSEvaluator(BaseEvaluator):
|
|||||||
# 生成 Morgan 指纹(等同于 ECFP4)
|
# 生成 Morgan 指纹(等同于 ECFP4)
|
||||||
# fp1 = AllChem.GetMorganFingerprintAsBitVect(mol1, radius=2, nBits=2048)
|
# fp1 = AllChem.GetMorganFingerprintAsBitVect(mol1, radius=2, nBits=2048)
|
||||||
# fp2 = AllChem.GetMorganFingerprintAsBitVect(mol2, radius=2, nBits=2048)
|
# fp2 = AllChem.GetMorganFingerprintAsBitVect(mol2, radius=2, nBits=2048)
|
||||||
|
from rdkit.Chem.rdFingerprintGenerator import GetMorganGenerator
|
||||||
generator = GetMorganGenerator(radius=2, fpSize=2048)
|
generator = GetMorganGenerator(radius=2, fpSize=2048)
|
||||||
fp1 = generator.GetFingerprint(mol1)
|
fp1 = generator.GetFingerprint(mol1)
|
||||||
fp2 = generator.GetFingerprint(mol2)
|
fp2 = generator.GetFingerprint(mol2)
|
||||||
|
from rdkit.Chem import DataStructs
|
||||||
similarity = DataStructs.TanimotoSimilarity(fp1, fp2) * 100
|
similarity = DataStructs.TanimotoSimilarity(fp1, fp2) * 100
|
||||||
detail['score'] = similarity
|
detail['score'] = similarity
|
||||||
avg_score += similarity
|
avg_score += similarity
|
||||||
@ -406,7 +405,6 @@ class MeteorEvaluator(BaseEvaluator):
|
|||||||
'error': 'predictions and references have different '
|
'error': 'predictions and references have different '
|
||||||
'length'
|
'length'
|
||||||
}
|
}
|
||||||
|
|
||||||
avg_score = 0
|
avg_score = 0
|
||||||
details = []
|
details = []
|
||||||
for pred, ans in zip(predictions, references):
|
for pred, ans in zip(predictions, references):
|
||||||
|
Loading…
Reference in New Issue
Block a user