Nltk

Получение предложений из HTML

Довел до формата библиотеки и выложил на github - html2sent. Эта небольшая либа принимает на вход HTML и делает в нем кое-какие правки (удаление явно “неинтересных” тегов, простановка точек в некоторых местах при их отсутствии и прочее), чтобы на следующем этапе nltk tokenizer намного качественней смог разбить текст на предложения. Ну и опционально можно включить удаление таблиц, списков и т.п. Очень удобно для массового прогона HTML файлов с целью вытягивания красивого текста.

NLP: список русских стоп-слов

Решил тут немного поконтрибьютить в питоновскую библиотеку summa. Кроме того, что там в функционале извлечения ключевых слов из русского текста происходит ненужный стемминг английских слов (послал pull-request), там еще полностью отсутствует список русских стоп-слов. Вообще, само понятие стоп-слов немного размытое у людей. Некоторые используют это для фильтрации наиболее частотных слов языка в задачах классификации документов, например, если ипользуют алгоритмы, учитывающие частоту появления встречающихся слов. Но почему тогда так и не называть это словарем самых частотых слов?

Программерский детектив

Итак, пока я тут доделал парсер-конвертер html-статей в набор предложений (с помощью BeautifulSoup4, различных регулярок и NLTK.tokenize - для подачи на вход нейросети на TensorFlow) и доволен чистотой результата, решил сделать паузу и, все-таки, написать эту забавную и поучительную историю. Программерский детектив Приятно наблюдать как недавно собранный компьютер “перемалывает” всеми 8(16) ядрами нужную мне задачу. Вот только я не ожидал, что придется перезапускать это так много раз. В последний раз так мозг закипал, наверное, только когда нужно было сделать динамический пересчет релокейшенов загруженного модуля win32.

Оживил privacy-formula.com

Наконец, спустя много лет заменил заглушку на http://privacy-formula.com/ на что-то интересное. :) Теперь там автоматический агрегатор новостей на тему “privacy”. Парсятся разные источники. Сначала одна библиотека извлекает главный контент со страницы (ищет саму статью), потом другая делает text summarizing - короткую выжимку именно значимых предложений. Ну а сам сайт на Django в виде 1 страницы в анонсами статей, где по ссылке “подробнее” отправляет на нужный ресурс. Кстати, повесил еще плагин от Google для автоперевода.