Распознавать адреса в тексте 👁
Как часто с вами случалось такое, что вам пишут посреди большого сообщения нужную вам информацию, но для того, чтобы получить только ее, вам приходится копировать сообщение целиком, а потом вырезать лишнее?
Для решения этой проблемы Google выпустила библиотеку Entity Extraction, которая позволяет находить отдельные сущности в тексте и классифицировать их (на данный момент доступна поддержка 11 типов сущностей на 15 языках).
Суть работы библиотеки состоит в следующем
1. Текст сообщения разбивается на слова
2. Происходит перебор всевозможных последовательностей не более 15 слов
3. Каждой последовательности присваивается оценка, насколько она похожа на ту или иную сущность (от 0.0 до 1.0)
4. Для пересекающихся последовательностей выбирается те, что имеют наивысшую оценку
5. Для отобранных последовательностей происходит определение, к какой сущности относится каждая из них.
Вроде бы на бумаге выглядит круто. Однако недостатком такого решения стала скорость обработки одного сообщения — от 8 до 100 мс. Например, в случае с мессенджером при подгрузке чанка из 40 сообщений обработка доходила до 4с 😱
Решением стал небольшой хак - изначально показывать сообщение как есть, а по завершении обработки в фоне (в случае удачного нахождения сущности), “подсветить” найденную информацию при помощи анимации.
Как результат — решена проблема нахождения и выделения важной инфы в сообщениях (работу выполняли разработчики мессенджера ТамТам, а по пути еще и попали в Google Developers Blog) 🙂
Post #379
5.35K