Открыть список
Как стать автором
Обновить

Используем поисковые движки для проверки корректности фраз

Поисковые технологииPython
Из песочницы
По работе мне часто приходится вести переписку на английском, и в силу недолеченного перфекционизма, пользоваться для этого оффлайн/онлайн переводными/толковыми словарями. В целом они со своей работой справляются, пока дело не доходит до проверки правильности словосочетаний или целых фраз. Хочешь ввернуть что-нибудь из разряда продвинутого владения языком, но нет уверенности, что правильно помнишь (большой привет предлогам и фразовым глаголам).

Есть парочка ресурсов, для поиска фраз, но заточены они в основном под общеупотребимые словосочетания, пословицы и фразеологизмы на отдельно взятом языке. К тому же не известно пользуются ли люди искомой фразой или употребив её вы поставите в тупик даже носителя языка.
Для решения проблемы я привык использовать googlе. Метод прост до неприличия: ищем всю фразу целиком (для тех, кто не в курсе – фразу для этого нужно заключить в двойные кавычки), получаем как всегда набор ссылок + большой бонус в виде кучи рекламы количества найденных страниц. Вот эта цифра нас и интересует. Если количество «попаданий» подозрительно мало, перефразируем и/или исправляем ошибки. Снова ищем. Обычно за 2-3 итерации получается нормальный результат.

Ещё пара плюсов метода:
+ не зависит от используемого языка. Так что когда «заклинит» (издержки свободы интернета – иногда просто забываешь, как оно было в «великом и могучем»), я тоже им пользуюсь;
+ репрезентативная выборка из ну оооооооооооочень большого количества проиндексированных страниц, а следовательно языка «живого» и актуального.

На то, какой результат считать нормальным влияют несколько факторов:
— длина фразы;
— распространённость в языке;
— общее количество ресурсов в Интернете на данном языке (очевидно, что сайтов на немецком на порядок меньше, чем на испанском и т.д.).
В общем всё достаточно очевидно, нужно только немного набить руку. Например, для распространённых словосочетаний на английском результат должен исчисляться хотя бы сотней тысяч (почему не миллионами объясню чуть ниже).

Минусы метода (при использовании браузеров):
— подсказки и история поиска в браузерах иногда вызывают скрежет зубовный. То нечаянно выбираешь другую фразу из предложенных, то борешься с кавычками. Мелочь, а иногда раздражает;
— нужно держать браузер открытым, что частенько вредно для “getting thing done”, то бишь отвлекает от работы. Либо запускать браузер (со всеми 100+ вкладками, открытыми с позапрошлого года. Шутка, конечно, но недалеко от правды. Разве что Firefox не пытается их все подгрузить при старте, но и он «отыгрывается» на загрузке кучи плагинов, которые так приятно устанавливать и так жалко удалять).

С целью борьбы с издержками метода и была написана консольная программка на Питоне (2.7), которая ищет фразы используя поисковые движки Google и Bing. Пример использования:



Пара комментариев:
— я немного увлёкся и прикрутил поиск в Bing-е, хотя это и избыточно. Уберите сами, если будет мешать задержка на дополнительный запрос. Так же для Bing, если вы захотите использовать исходник программы, нужно получить подписку на пользование Bing Search API (5000 запросов в месяц бесплатно) на Windows Azure Marketplace, и затем создать Account Key (имя не имеет значения). Ключ, который выдаётся по умолчанию не подходит (видимо из соображений безопасности, поправьте меня если это не так). В дистрибутиве под Windows ключ естественно уже прописан, но если перестанет работать, значит исчерпаны запросы на текущий месяц;
— в силу заморочек Google AJAX API, с помощью которого выполняется запрос, приблизительное количество «попаданий» будет очень сильно приблизительным (то, о чём я писал выше — иногда на порядок отличается от цифры выдаваемой при поиске с помощью браузера). Эта проблема известна как code.google.com/p/google-ajax-apis/issues/detail?id=32. Есть подозрение, что Bing Search API ведёт себя так же хитро;
— так же, учитывая мои затруднения с преобразованиями кодировок в Питоне (консоль, система, запрос), я не смог добавить поддержку кириллицы. Если кто-то захочет допилить — милости прошу.

Исходник и архив с дистрибутивом под Windows можно взять здесь.
Дистрибутив достаточно разархивировать в какую-нибудь папку, и добавить путь к ней в системные пути.

Буду благодарен за ссылки на похожие посты/ресурсы/программы.

UPD: Хабраюзер revol0ution подсказал похожий пост.
UPD: Ссылка на интересный ресурс Google по поиску слов и фраз в книгах, от пользователя coffeecupwinner.
Теги:pythonsearch enginesearch apibing apigoogle ajax search apiперевод текстовпоисковые системыgrammar checkпроверка грамматики
Хабы: Поисковые технологии Python
Всего голосов 19: ↑15 и ↓4 +11
Просмотры9.9K

Комментарии 11

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Похожие публикации

Senior Backend Engineer (Rest API, English, NodeJS, Python)
от 3 500 до 4 500 $DataDirect Networks Inc. (DDN)Можно удаленно
Python Backend Разработчик. Middle. Part time.
от 35 000 ₽Drone selfieМожно удаленно
Python Developer
от 120 000 ₽Онлайн гимназия №1НовосибирскМожно удаленно
Middle Бэкэнд-разработчик 🖥🛠
до 150 000 ₽Secure-TМосква
QA специалист (API/Web/Mobile)
от 90 000 до 106 000 ₽Почта БанкМоскваМожно удаленно

Лучшие публикации за сутки