Как автоматически вычислить точность (точность, отзыв, F1) для NER? - PullRequest
0 голосов
/ 06 января 2019

Я использую систему NER, которая выдает на выходе текстовый файл, содержащий список именованных объектов, которые являются экземплярами концепции Speaker. Я ищу инструмент, который может вычислить точность системы, отзыв и F1, взяв в качестве входных данных этот список и золотой стандарт, где экземпляры правильно помечены тегами <Speaker>.

У меня есть два txt-файла: Instances.txt и GoldStandard.txt. Мне нужно сравнить извлеченные экземпляры с золотым стандартом, чтобы рассчитать эти показатели. Например, согласно второму файлу, первые три предложения в первом файле являются положительными, а последнее - ложными.

instances.txt содержит:

is sponsoring a lecture by <speaker> Antal Bejczy from
announces a talk by <speaker> Julia Hirschberg
His name is <speaker> Toshiaki Tsuboi He will
to produce a schedule by <speaker> 50% for problems

GoldStandard.txt содержит:

METC is sponsoring a lecture by <speaker> Antal Bejczy from Stanford university
METC announces a talk by <speaker> Julia Hirschberg
The speaker is from USA His name is <speaker> Toshiaki Tsuboi He will              
propose a solution to these problems
It led to produce a schedule by 50% for problems

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Это полностью зависит от вашего варианта использования и от того, сколько вы работаете над очисткой / устранением неоднозначности выходных данных NER. Существует также взвешенный-F1 балл ; вы, вероятно, больше заботитесь о пропущенных ссылках (то есть хотите получить более высокий уровень отзыва), чем о ложных срабатываниях (более высокая точность). За исключением, может быть, других типов сценариев использования, которыми вы не пользуетесь (выдача повесток в суд или ордеров на арест, запрещение пользователям злоупотреблять чатом).

sklearn.metrics.f1_score() реализует взвешенный-F1.

Расскажите нам больше о своем заявлении: насколько плохо, если вы ошибаетесь, неправильно идентифицируете или путаете имя оратора (ложно-положительный), против пропуска действительного (ложно-отрицательного)?

0 голосов
/ 27 февраля 2019

Для результатов NER люди обычно измеряют точность, отзыв и оценку F1 вместо точности, и, вероятно, наиболее распространенный способ вычисления этих метрик - conlleval: https://github.com/spyysalo/conlleval.py. Он также сообщает о точности.

скрипт conlleval принимает файлы формата conll в качестве входных данных. Возьмите ваше первое предложение в качестве примера:

METC    O   O
is  O   O
sponsoring  O   O
a   O   O
lecture O   O
by  O   O
Antal   B-speaker   B-speaker
Bejczy  I-speaker   I-speaker
from    O   O
Stanford    O   O
university  O   O

где первый столбец - слово, второй столбец - системный вывод, а третий столбец - золотая метка. O указывает, что токен не принадлежит ни к какому чанку. Суффиксы B- и I- означают начало, внутри / окончание фрагмента. Предложения разделяются пустой строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...