2023-02-03 17:44:53
22к переводов или база для @vocabulary_coach_bot
Решил наконец вслед за Томой взяться за английский. Но я же не могу просто взять и учить, надо заморочиться. Уже надоело слушать хвалебные комментарии, о полезности моего бота, и не пользоваться.
Т.к. я заложил хороший алгоритм для равномерного изучения слов, появилось желание посмотреть, как оно будет работать с исчерпывающей базой слов английского языка. Это не даст уровень С1, но нативный словарный запас не круто ли?
Первая мысль: проанализировать большое количество книг и статей, определить частотные слова, найти перевод. Но зачем? – Есть куча готовых баз.
Я собрал данные с первых двух страниц Яндекса: самые частотные слова и часто используемые устойчивые выражения. Для слов попадались базы по 3-5 тысяч штук, некоторые по 10, и даже 16. Очевидно есть мусор и дубликаты, собрал единую базу. После удаления булшита получилось 50,5к слов. Фраз набралось 2500.
Сбор был нетривиальный. Что-то поддалось копированию, где-то хватило запроса на JavaScript, где-то пришлось написать интерактивный парсер на selenium. Обращайтесь.
Местами для слова давали сразу несколько переводов через запятую, кто-то для каждого перевода добавлял отдельную запись (строку). Иногда слово имеет несколько переводов со схожим смыслом, а иногда смысл очень зависит от контекста, и несколько записей будут полезны. Решил удалить совсем дубликаты и сделать 2 варианта баз.
Дубликат самого слова проверить просто: перевести в нижний регистр и проверить есть ли оно уже в базе. Это и удобнее в собранных базах, что формы заранее приведены в порядок.
Транскрипции в разных источниках разные, решил анализировать схожесть (rapidfuzz), для похожих выбирать максимально длинное, отличающиеся засунул в отдельное поле, часто это мусор.
Для удаления дубликатов перевода я проверял точное вхождение варианта во все остальные. Да, можно лучше с NLTK, но это почти решило проблему.
Код
На выходе получил базы:
- на 19,1к слов уникальных слов с объединённым переводом
- на 25,7к слов + все варианты переводов в отдельных записях
- 1,3к слов с заглавной буквы (имена, названия, сокращения)
- 2,3к уникальных фраз
- 3к слов и фраз из комплекта Cambridge Face2Face (самые важные, разделены по уровням, но с дублями)
Что дальше с этим делать?
Моя гипотеза: можно пройтись ботом по полному набору слов, определить известные по собранной статистике, почистить базу и изучать новое. Хорошая база это 3к от Face2Face, её я уже подготовил. Так что берите, пользуйтесь.
А тут можно понаблюдать за мной
#проекты #исследования
108 viewsedited 14:44