= Задание за занятия 6~8: файлы, тексты, простейшие алгоритмы = Пока ваши коллеги пишут токенизаторы, вам предстоит организовать среду для проведения соревнования между ними. Версия на 10 баллов:: Нужно написать программу, которая получает на вход результаты работы нескольких токенизаторов, выравнивает их, определяет консенсус, сохраняет его в файл, и вычисляет степень отклонения каждого из токенизаторов от консенсуса. Версия на 9 баллов:: Программа получает на вход результаты работы нескольких токенизаторов и золотой стандарт, выравнивает их, и определяет степень отклонения каждого из токенизаторов от золотого стандарта. (Всё то же самое, кроме восстановления консенсуса). Программа должна либо иметь графический интерфейс (например, `tkinter`) и пользоваться стандартными диалогами для запроса имён файлов (например, `tkinter.filedialog`), либо иметь интерфейс командной строки (`argparse`). Результаты работы токенизаторов выдаются в виде CSV-файлов со столбцами: смещение начала токена (количество символов от начала файла), токен, тип токена. Разные парсеры могут по-разному определять позицию начала токена (включать или не включать пробелы и пунктуацию перед ним, возвращать позицию первой буквы или предшествующую позицию). Разные парсеры могут некоторые из токенов пропускать как неинформативные (например, некоторые парсеры выделяют пунктуацию как отдельный тип токенов, а некоторые её выбрасывают). Разные парсеры могут по-разному нормализовать токен. Типы токена выбираются из закрытого списка, поэтому их нормализовать не требуется. Для построения консенсуса нужно про каждую позицию-кандидата ответить на вопросы: * нужен ли в этом месте токен (или его следует пропустить) -- голосование большинства * точный текст токена -- голосование большинства * тип токена -- голосование большинства Если на какой-то из вопросов однозначного победителя нет, нужно выбрать случайного из наилучших кандидатов. Про результаты работы каждого из токенизаторов нужно выдать точность, полноту и f-меру про наличие токена, точный текст токена, тип токена.