Проверка орфографии «большого» масштаба в Python

Удивительно, но я не смог найти никого другого, кто бы действительно этим занимался, но наверняка кто-то это сделал. Я' Сейчас я работаю над проектом на python, который включает проверку орфографии примерно 16 тысяч слов. Это количество слов будет только расти, к сожалению. Прямо сейчас я вытаскиваю слова из Монго, перебираю их, а затем проверяю их по буквам с помощью пиенчанта. Я убрал монго как потенциальное узкое место, забрав сначала все свои вещи. Это дает мне около 20 минут для обработки 16 тысяч слов, что явно дольше, чем я хочу потратить. Это оставляет мне пару идей / вопросов:

  1. Очевидно, я мог бы использовать многопоточность или некоторую форму параллелизма. Даже если я нарежу это на 4 части, я все равно буду смотреть примерно 5 минут, предполагая пиковую производительность.

  2. Есть ли способ узнать, какую библиотеку правописания использует Enchant под pyenchant? Сайт Enchant, кажется, подразумевает это Использовать все доступные библиотеки / словари правописания при проверке орфографии. Если так, то я потенциально провожу каждое слово через три-четыре орфографических диктанта. Это может быть моей проблемой прямо здесь, но мне трудно доказать, что это так. Даже если это так, действительно ли я могу удалить другие библиотеки? Звучит неудачно.

Итак, есть какие-нибудь идеи о том, как я могу выжать из этого хоть немного больше производительности? Я в порядке, разбивая это на параллельные задачи, но я все же хотел бы, чтобы основная часть этого была немного быстрее, чем я.

Редактировать: Извините, отправка до утреннего кофе ... Enchant генерирует список предложений для меня, если слово написано неправильно. Казалось бы, именно там я и провожу большую часть своего времени в этой части обработки.

6
задан kay 26 August 2012 в 22:12
поделиться