NLPx

Tales of Data Science

История об LDA2vec: взболтать, но не смешивать

catdog_word2vec_cropped

UPD: В английской версии этого поста оставили очень ценный комментарий, и теперь я вижу, что я слишком заострил внимание на различиях LDA и word2vec, а они с алгоритмической точки зрения не так уж и сильно отличаются. Поэтому я несколько изменил первоначальную версию текста. Кстати, рекомендую прочитать презентацию товарища Голдберга про word2vec.

Буквально только что, когда уже хотел взяться за написание текста про конференцию (как обещал в предыдущем посте), я обнаружил совсем недавно созданный гибридный алгоритм, который хитрым образом берет лучшее (по крайней мере, должен брать лучшее) из известного алгоритма тематического моделирования LDA (Латентное размещение Дирихле) и из чуть менее известного инструмента языкового моделирования word2vec (никак не расшифровывается, но про него я писал ранее).

Вы также можете прочитать этот текст на английском

И сейчас я расскажу вам историю об lda2vec и моих попытках поиграться с реализацией и сравнить ее с алгоритмом LDA. Итак, однажды в студеную зимнюю пору…

Read More

20,006 просмотров всего, 4 просмотров сегодня

История об LDA2vec: взболтать, но не смешивать
4.3 3 votes

Google может в Open Source: TensorFlow

TensorFlow

Недавно, 10 дней назад, когда я был на конференции AINL-ISMW FRUCT 2015 (про нее напишу чуток позже), узнал, что Google выпустил TensorFlow в виде ПО с открытым исходным кодом (который опенсорс). И это здорово, хотя вызывает ряд вопросов, на некоторые из которых я попробую ответить ниже.

Read More

43,727 просмотров всего, 5 просмотров сегодня

Google может в Open Source: TensorFlow
5 3 votes

Немного про word2vec: полезная теория

Homer sez

Когда-то мне было нужно узнать кое-что про то, как устроен word2vec и — удивительно — нигде нормальной информации я не нашёл. В половине статей просто демонстрировали формулы и умные слова (я тоже так могу), в другой половине информация была не очень полной. То, что мне было нужно, я собирал по крупицам. настала пора поделиться этими крупицами, особенно, если учесть, что уже почти полгода я ничего не публиковал.

Поэтому здесь я немного расскажу о том, что такое word2vec, зачем он нужен, как он работает — и прочие мелочи. Статья теоретическая (про сам word2vec, а не про векторное пространство, если что), написана достаточно простым языком, но все же содержит в себе практические идеи. Enjoy!

Read More

112,733 просмотров всего, 24 просмотров сегодня

Немного про word2vec: полезная теория
4.7 49 votes

API Вконтакте + NetworkX = социальный граф!

interest-graphs-social-graph

Попалась мне тут когда-то интересная задача — быстро и максимально просто (с минимумом привлекаемых библиотек) нарисовать граф пересечения пользователей разных групп Вконтакте. И я ее даже сделал. Затем подумал — а вдруг кому-то еще нужно будет сделать что-то подобное?

Поэтому здесь я расскажу и покажу, как же всё-таки делать такие вещи:

1. Подключаться к веб-сайту вконтакте с помощью Python 2.7 (всегда можно переписать под 3.x, если что)

2. Создавать графы с помощью библиотеки NetworkX (здесь рассматриваем графы пересечений аудитории групп вконтакте)

3. Визуализировать эти графы (тут нам немного понадобится библиотека matplotlib)

Read More

26,444 просмотров всего, 9 просмотров сегодня

API Вконтакте + NetworkX = социальный граф!
5 4 votes

Data Analyst vs. Data Scientist — в чём различие?

Здесь мне хотелось бы рассказать о различиях между профессиями, которые часто путают или вообще считают тремя названиями одной и той же деятельности.

Вот они, эти профессии:

1. Data Analyst (аналитик данных)

2. Data Mining Specialist (специалист по интеллектуальной обработке данных)

3. Data Scientist (ученый по данным)

Хочу сразу оговориться, что на самом деле не существует каких-либо официальных определений каждой из этих профессий и, соответственно, непонятно, как их отличать друг от друга.

Поэтому я предлагаю свою версию того, чем же эти профессии отличаются — на основе данных с зарубежных блогов, зарубежных же объявлений о вакансиях и, само собой, своих собственных соображений.

Read More

45,745 просмотров всего, 8 просмотров сегодня

Data Analyst vs. Data Scientist — в чём различие?
5 22 votes

Статистический анализ пользователей Stackoverflow и GitHub: кого больше?

stackovwerflow_github

Когда-то относительно недавно я опубликовал сокращенную версию этой статьи на хабрахабре, а сейчас откопал в отвалах породы на жестком диске полную ее версию. Этот пост представляет собой вполне официальный отчет по довольно поверхностному (то есть я не зарывался глубоко в систему рейтингов, например) статистическому анализу по пользователям двух популярных ресурсов — Stack Overflow (stackoverflow.com) и GitHub (github.com).

Из каких стран больше всего пользователей? Пользователи каких стран коммитят чаще? А каково место России на этом празднике жизни? Кто виноват и что делать? — ответы на эти вопросы можно найти здесь.

Актуальность данных — на 24 октября 2014 года, но, полагаю, что тенденции, в этих данных отраженные, будут актуальны еще долгое время. Если кому интересно — дайте знать в комментариях, я обновлю данные на нынешний год.

Ну и, надеюсь, никого не введет в уныние сухость изложения 🙂

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

Read More

13,682 просмотров всего, 6 просмотров сегодня

Статистический анализ пользователей Stackoverflow и GitHub: кого больше?
5 2 votes

TF-IDF с примерами кода: просто и понятно

TF-IDFtfidf_blg-1024x295

Здесь я расскажу и покажу в примерах на Python, зачем и как считать стандартный TF-IDF, а также его вариации. Примеры я буду давать по ходу объяснения. Чтобы их понять, нужно иметь представления о базовых понятиях языка программирования Python в версии 2.х либо 3.х (основные типы данных, основные структуры данных, цикл-ветвление, функция, основы генераторов списков и словарей) и понимать, как применять класс Counter из стандартной библиотеки collections

Read More

64,224 просмотров всего, 69 просмотров сегодня

TF-IDF с примерами кода: просто и понятно
5 30 votes

Стандартная библиотека Python — для обработки языка: collections.Counter

Counter

Сегодня я хотел бы рассказать об одном интересном классе стандартной библиотеки языка Python, который может пригодиться при обработке языка. Речь пойдет о классе Counter из библиотеки collections.

Read More

14,081 просмотров всего, 11 просмотров сегодня

Стандартная библиотека Python — для обработки языка: collections.Counter
5 1 vote