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

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

Положение дел в Deep Learning

Поймал сегодня себя на такой мысли, что нейросети сегодня чем-то напоминают первые игры, разработку которых очень сильно ограничивало железо. Взять ту же Elite, авторы которой не могли просто взять и добавить 8 галактик с тысячами планет в 22 кб оперативки. Пришлось им выдумывать псевдослучайную генерацию с фильтрацией “плохих” данных. Вот и нейросети сегодня - это постоянное перебалансирование таких параметров как размер сети, объем входных данных для обучения, их качество (и степень “упрощения”).

TensorFlow GPU

Ох и провозился я тут с удалением/установкой TensorFLow. Со вчера был запущен один тестовый нейро-проектик, но сегодня решил его стопорнуть — закралось подозрение, что у меня все только на CPU работатает, а не на GPU. Как-то не хватает привычного громкого жужжания всех кулеров, как было тогда, когда я раньше на ноуте tensorflow гонял. Открыл System Information в “Process Hacker” - в разделе GPU нулевая активность. И это при том, что CPU дико нагружен - даже система стала не особо отзывчивая.

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

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

AutoSSH on WSL

Сижу такой, настраиваю на удаленном сервере работу скрипта, который через ssh-туннель делает запрос к сервису, который у меня дома локально под WSL работает. Так вот, запускаю lynx 127.0.0.1:port, чтобы проверить, что туннель выключился. Но он, почему-то, работает… Делаю netstat -lntp|grep port, получаю PID, затем kill PID. lynx 127.0.0.1:port … Хм. Все еще работает… Повторяю действие несколько раз, убиваю каждый раз новый ID процесса. Тоннель все еще работает. Чешу репу… И тут осознаю всю ржачность ситуации.

Написал переключалку языков на CAPSLOCK

Вчера вдруг осознал, насколько удобней будет переключать RUS/ENG не привычным CTRL+SHIFT, а клавишей CAPS LOCK, учитывая, что я использую слепой 10-типальцевый метод и для русского, и для английского текста. (Тогда пальцы не нужно будет центрировать заново каждый раз) Как оказалось, в Windows 10 нельзя выбрать такой вариант. Но есть некоторые сторонние программки для этого дела. И тут мне захотелось самому быстренько такую зафигачить. Сначала кое-как вымучил такую утилитку на Go. Офигел от кривости этого всего кода, с кучей обвязок для Win32 API.

Тыжпрограммист

Столкнулся с такой проблемой при подключении PC->DVI->HDMI к телевизору Philips - какое бы я разрешение не выставил, после перезагрузки телевизор мне пишет “разрешение не поддерживается” (или “нет сигнала). Тестировал и под Linux Mint/Ubuntu - все идентично глючит. И после некоторого гугления обнаружил, что многим известна такая проблема. Вроде бы, это все как-то связано именно с NVIDIA картами и Philips TV. И решений каких-то не существует. Кто-то вообще телевизор в магазин возвращал.

Копирование на выбор...

Настраивал сеqчас линукс-терминал “Terminator”. А настройки там на русском языке сами включились. И вот смотрел я на чекбокс “Копирование на выбор” и думу думал… Вот что это могло бы быть? :) Даже мысль появилась - вдруг при копировании какие-то варианты будут предлагаться… хотя это чуднО как-то было бы. А после того, как понял, что теперь нормально заработало авто-копирование в буфер при выделении мышкой - осенило! :) Это так чудно перевели “Copy on selection”.

Про режимы в Midnight Commander

Офигеть. Башку чуть не сломал, пытаясь понять почему у меня сервер игнорит запись в /etc/hosts и резолвит домен напрямую через сетевой интерфейс. Даже не выдержал - ребутнул сервак :) Не помогло. Смотрю дальше, смотрю. Дай-ка, думаю, заменю табуляцию на пробел в строчке типа: 127.0.0.1 <-->some.domain.com И охреневаю. У меня где-то при копировании \t заменился на набор символов “<–>“. :))) Во делаааа…

Django-агрегатор

Тестирую вторую версию полностью автоматического новостного Django-агрегатора , где не только короткая выжимка “сути” новости в виде анонса, но и HTML страница со статьей (из любого источника), из которой выкушен весь мусор, но остается основное HTML форматирование. А по содержанию это 30% от оригинала. В этот раз взял для теста хайповую тематику - криптовалюты. :) bitcoin.icexp.com (udp: уже выключил). Правда, тут получаются слишком короткие “выжимки”, потому блок твиттера надо поменьше ставить.