Flair_NER/evaluate_model.py
2025-07-22 20:41:44 +03:30

31 lines
1.3 KiB
Python

from flair.models import SequenceTagger
from flair.datasets import ColumnCorpus
# from funcs import read_file_by_address
def do_evaluate(model_path):
tagger = SequenceTagger.load(model_path)
# تعیین ستون‌های داده و بارگذاری مجموعه داده‌های آزمایشی
columns = {0: 'text', 1: 'ner'}
data_folder = "./data/" # محل ذخیره داده‌ها
corpus = ColumnCorpus(data_folder, columns, test_file='test_ds_new.txt') # فایل داده‌های آزمایشی
result = tagger.evaluate(corpus.test, gold_label_type='ner', mini_batch_size=8)
result_text = f'''##### EVALUATION RESULT #####
F1 Score: {result.main_score}
************************************************
Detailed Results: {result.detailed_results}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n'''
return result_text
if __name__ == '__main__':
model_folder = "2025-07-22--15-52-58--HooshvareLab--bert-fa-base-uncased-ner-peyma"
model_path = f"./taggers/{model_folder}/final-model.pt"
result = do_evaluate(model_path)
# print(result)
with open(f'./taggers/{model_folder}/test-result.txt', 'a+', encoding='utf-8') as file:
file.write(result)