Размер выборки для корпуса золотого стандарта Named Entity Recognition
У меня есть корпус из 170 голландских литературных романов, в которых я буду применять Признание именованных лиц. Для оценки существующих тегов NER для голландского языка я хочу вручную аннотировать именованные объекты в случайной выборке этого корпуса - для этой цели я использую brat. Произведенная вручную аннотированная случайная выборка будет служить "золотым стандартом" в моей оценке тегеров NER. Я написал скрипт на Python, который выводит случайную выборку моего корпуса на уровне предложения.
Мой вопрос: каков идеальный размер случайной выборки с точки зрения количества предложений в романе? На данный момент я использовал случайные 100 предложений для каждого романа, но это приводит к довольно большой случайной выборке, содержащей почти 21626 строк (что очень много для ручного аннотирования и что приводит к медленной рабочей среде в brat).
2 ответа
NB, до фактического ответа: самая большая проблема, которую я вижу, состоит в том, что вы можете только оценить инструменты по отношению к ним. эти 170 книг. Так что в лучшем случае он скажет вам, насколько хорошо инструменты NER, которые вы оцениваете, будут работать с этими книгами или подобными текстами. Но я думаю, это очевидно...
Что касается размеров выборки, я бы предположил, что вам нужно не более десятка случайных предложений на книгу. Вот простой способ проверить, достаточно ли велик ваш размер выборки: случайным образом выберите только половину предложений (стратифицированных по книге!), Которые вы аннотировали, и оцените все инструменты в этом подмножестве. Сделайте это несколько раз и посмотрите, сильно ли различаются результаты для одного и того же инструмента между прогонами (скажем, более +/- 0,1, если вы используете F-показатель, например - в основном в зависимости от того, насколько "точным" вы должны быть для обнаружения значимого различия между инструментами). Если отклонения очень велики, продолжайте комментировать больше случайных предложений. Если цифры начинают стабилизироваться, вы хороши и можете перестать комментировать.
Действительно, "идеальный" размер был бы... весь корпус:)
Результаты будут соотнесены со степенью детализации типологии: просто PERS, LOC, ORG потребуют минимального размера, но как насчет мелкозернистой типологии или даже полного устранения неоднозначности (связывания)? Я подозреваю, что для хорошей производительности не потребуется большого количества данных (достаточно для проверки), в то время как для низкой производительности требуется больше данных, чтобы иметь более подробное представление об ошибках.
В качестве индикатора перекрестная проверка считается стандартной методологией, для оценки которой часто используется 10% корпуса (но оценка проводится 10 раз).
Кроме того, если вы работаете с древними романами, вы, вероятно, столкнетесь с проблемой лексического охвата: многие старые собственные имена не будут включены в лексические ресурсы доступного программного обеспечения, и это является серьезным недостатком точности NER. Таким образом, было бы неплохо разделить корпус в соответствии с десятилетиями / веками и провести множественную оценку, чтобы измерить влияние этой проблемы на производительность.