Стандартные реализации ROUGE и BLEU по умолчанию используют пространственную токенизацию, которая хорошо работает для английского языка, но не работает для китайского. Мой текущий обходной путь — разделить текст на отдельные символы:
Код: Выделить всё
# My current preprocessing (Character-level)
preds_zh = [" ".join(list(p)) for p in predictions]
refs_zh_rouge = [" ".join(list(r)) for r in references]
rouge = evaluate.load("rouge")
rouge_res = rouge.compute(predictions=preds_zh, references=refs_zh_rouge)
- (Гипертония) делится на «высокое», «кровяное», «давление».
Код: Выделить всё
"高血壓" - (Инфаркт миокарда) разделен на четыре отдельных токена.
Код: Выделить всё
"心肌梗塞"
Мои вопросы:
- Пользовательская токенизация в Assessment: Существует ли стандартный способ внедрения пользовательского сегментатора китайских слов (например, jieba или pkuseg с медицинским словарем) в рабочий процесс Assessment.load("rouge") или bleu, чтобы n-граммы рассчитывались на основе значимых медицинских терминов, а не символов?
- BERTScore против ROUGE: Для медицинских записей, в которых часто встречаются синонимы (например, «S/P» против «После операции»), считается ли BERTScore более надежным, чем ROUGE/BLEU? Если да, то какую предварительно обученную китайскую модель (например, bert-base-chinese или Medical-BERT) рекомендуется использовать для встраиваемой магистрали, чтобы получить наиболее точные оценки F1?
- Обработка пунктуации: Записи медсестер часто содержат много символов (,, :, /). Следует ли их отфильтровывать перед расчетом показателей или они имеют достаточно структурное значение в клинических заметках, чтобы их можно было хранить в качестве токенов?
Что я пробовал:
- Разделение на уровне символов (как показано выше), но оно не наказывает неправильные комбинации слов, в которых используются одни и те же символы.
- Стандартная джиеба без словаря, который часто неправильно разделяет специализированные хирургические термины.
-
Код: Выделить всё
transformers==4.44.2Код: Выделить всё
evaluate==0.4.3Код: Выделить всё
jieba==0.42.1Код: Выделить всё
peft==0.12.0
Подробнее здесь: https://stackoverflow.com/questions/799 ... xt-complet