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



Постановка задачи


Задача в нашем случае бинарной классификации ставится так: есть пользователь, есть его комментарии, и по ним необходимо определить класс: гуманитарий или технарь. Для решения этой задачи применим техники машинного обучения и обработки естественного языка. Итоговый результат можно будет использовать, например, для таргетированной рекламы.


Данные


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


Решено было собрать свой набор данных на основе комментариев пользователей социальной сети “ВКонтакте”. На публичных страницах люди обычно обсуждают посты или просто общаются, оставляя множество комментариев. Страница паблика/группы должна быть нейтральной тематики для того, чтобы количество гуманитариев и технарей примерно совпадало. Я выбрал публичную страницу, посвященную обсуждению жизни конкретного города. Количество подписчиков – около 300 тысяч, количество публикаций – около 50 тысяч, среднее количество комментариев к публикации – 20.


Получение и разметка данных


Выкачать все комментарии можно с помощью VK Open API, с помощью которого было получено около 3 миллионов комментариев от 130 тысяч пользователей. Этого количества должно с запасом хватить, чтобы обучить почти любую модель машинного обучения, но есть одно “но”: у нас нет разметки этих данных, мы не знаем, кто гуманитарий, а кто технарь. Конечно, можно было бы попытаться написать каждому из пользователей и спросить у них лично, но это сомнительная идея. Придется использовать те знания, которые мы можем получить со страниц пользователей.


Только у 11 тысяч человек из 130 был указан факультет образования. В результате такой фильтрации осталось только 170 тысяч комментариев, что составляет только 6% от исходного объема. Всего различных факультетов оказалось 160. Я разделил все факультеты на гуманитарные, технические и другие (естественные или вовсе не относящиеся к научным, например, музыкальные или художественные). Эти “другие” факультеты были отброшены и не участвовали в эксперименте. Каждому пользователю был присвоен класс в соответствие с факультетом, который был указан у него в профиле.


Возможно не все, кто учатся на гуманитарных факультетах, являются гуманитариями, и то же можно сказать о технических, но на общем фоне таких пользователей должно быть меньшинство. Для подтверждения или опровержения этой теории мною был организован соцопрос на своем факультете. Из 200 человек 62 (то есть 31%) указали, что их склад ума — гуманитарный несмотря на то, что сам факультет технический. Аналогично, на гуманитарном факультете из 150 опрошенных 14 человек (только 9%) признались в том, что они технари в душе. Таким образом, более правильно назвать классификацию по таким данным классификацией по типу полученного высшего образования.


Анализ данных


Пример таблицы с данными по комментариям:



Прежде чем переходить к построению моделей, необходимо провести анализ имеющейся выборки. Это поможет понять, какие признаки нужно учитывать, как они распределены и какие модели лучше использовать. Также это помогает найти выбросы и аномалии в данных, которые не типичны для данной выборки. Их удаление поможет построить модель с большей обобщающей способностью. После разделения пользователей в обоих классах получилось примерно по 4000 человек. Сначала посмотрим на распределение не текстовых признаков пользователей.


Пол


В выборке пользователей мужского пола оказалось 55%. В обществе существует стереотип, что у мужчин более аналитический склад ума, а у женщин — гуманитарный или творческий. По данным выборки построен график, который показывает распределение этого признака отдельно по двум классам.



Видно, что среди пользователей мужского пола преобладает класс «технарь», а среди пользователей женского пола — «гуманитарий».


Отношение к алкоголю


Около 1500 пользователей из каждого класса отметили своё отношение к алкоголю и около 1600 — к курению. Конечно, многие не заполняют этот пункт в социальных сетях, лишь у 30% он был указан. Какая-то часть могла указать заведомо ложную информацию, чтобы показать себя в лучшем свете или произвести впечатление на одноклассников. Но общая тенденция в различии двух классов все равно просматривается.



По оси абсцисс расположены категории от «очень негативное» до «позитивное» отношение к алкоголю. Для каждой категории считалось количество человек в обоих классах. На оси ординат обозначена доля гуманитариев в группе. Вертикальной полосой обозначен доверительный интервал. По графику видно, что технари чаще указывают у себя в профиле позитивное отношение к алкоголю. Очень негативное отношение чаще указывают гуманитарии.


Отношение к курению



В отношении к курению видна противоположная ситуация. Пользователи из класса «гуманитарий» чаще указывают позитивное отношение к курению. Видно, что не все значения отличаются от статистически значимых (некоторые доверительные интервалы включают значение 0.5, значит нельзя заявлять о различии), но тенденция все равно интересная.


Семейное положение и главное в жизни


По признаку «семейное положение» сильный перекос есть только в двух: «всё сложно» и «в активном поиске». Они оба смещены в сторону «гуманитарий».


По признаку «главное в жизни» — значимое отклонение есть только по одному — «красота и искусство», — и оно в сторону класса «гуманитарий».


Время активности


Построим распределение активности пользователей в разное время суток.



По графику видно, что в ночные часы (с 11 до 2) количество комментариев от класса «технарь» значительно больше. Это говорит о более «ночном» образе жизни пользователей этого класса. Также видно, что наименьшая активность наблюдается в 5-6 часов утра. Тем не менее, начиная с 4-х часов утра, количество комментариев от пользователей класса «гуманитарий» значительно больше, что говорит о более раннем времени подъема.


Примеры комментариев


Перед дальнейшим анализом можно посмотреть сами комментарии. Далее представлены несколько примеров из обеих групп.


Класс «технарь»: «Антон, ты когда-нить на заблокированных колесах останавливался? Какой тормозной путь получается?», «поддержим своих, конечно ) 21-го на Труде )», «Первое фото очень оригинально и весьма красиво!».


Класс «гуманитарий»: «Очень симпотичные котятки', '=)))», «По — моему, делается всё для того, чтобы дети знали, как можно больше о наркотиках.», «я не успеваю за скоростью твоей мысли))))я безнадежен».


Видно, что комментарии написаны на разные темы. Можно постараться найти различия в затрагиваемых тематиках. Слова нужно будет привести к начальной форме, чтобы избежать множества похожих слов, одинаковых по смыслу. Возможно даже простое выделение используемых слов сможет хорошо разделять два класса. Также большое внимание нужно уделить используемым смайлам, эмодзи и пунктуации.


Предобработка данных


Первоначально необходимо удалить из выборки слишком длинные и слишком короткие комментарии. Они могут помешать обобщать моделям. Максимальная длина была ограничена 50-ю словами, а минимальная – 3-мя словами. Далее необходимо избавиться от спама. Сначала были удалены все комментарии, которые включали в себя ссылки на сторонние сайты, их оказалось менее 1%. Затем были удалены сообщения, которые повторялись более 2х раз, а значит были спамом, тоже менее 1%.


В данных было очень много обращений. В комментариях можно обращаться к определённому человеку через ссылку на его страницу. При скачивание через API имена заменяются на id страницы пользователя. Чтобы не засорять модель информацией об id, а также не допустить запоминания конкретных личностей, все обращения были удалены.


Генерация признаков


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


Прежде чем начать работу с текстом, его нужно токенизировать, то есть разбить на слова. Это можно сделать с помощью стемминга или лемматизации. Стемминг – это выделение основы слова, откидывание окончания. Например, слова: “демократия”, «демократический», “демократизация” приводятся к слову «демокр». Лемматизация – это приведение слова к начальной форме. Все три слова из предыдущего примера приводятся к слову “демократия”. В данной задаче лучше сработала лемматизация, выполненная с помощью библиотеки pyMorphy2.


Векторизация текста


Необходимо комментарии трансформировать в векторы, потому что большинство моделей машинного обучения принимают на вход численные векторы. Самый простой подход называется мешок слов: он считает количество вхождений в текст каждого из слов. Перед тем, как получать векторы таким способом, необходимо избавиться от стоп-слов. Это такие слова, которые встречаются очень часто и не несут смысловой нагрузки, например, «иначе», «это», «или» и так далее.


При таком подходе не учитывается порядок слов в предложение. Фразы «не черный кот» и «кот черный не» будут преобразованы к одинаковому вектору, потому что в них одинаковый набор слов. Чтобы решить эту проблему, можно использовать идущие подряд токены – N-граммы.


Такие же векторы признаков можно строить и на уровне символов. Текст разбивается на N-граммы символов, где N обычно берется равное трем. Слово «лесной» разобьётся на: «лес», «есн», «сно», «ной». Этот подход имеет большое преимущество: он более устойчив к новым словам, которых не было в обучающей выборке.


Также для векторизации текста использовался Tf-Idf. Это статистическая мера, используемая для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса. Большой вес получают слова с высокой частотой в пределах конкретного документа и с низкой частотой употреблений в других документах. Более подробно на хабре, например здесь.


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


Другие признаки


Другими источниками признаков стали общие характеристики комментария. Они описывают комментарий в целом.


Пунктуационные признаки:


  • наличие прямой речи;
  • количество запятых, знаков вопроса, восклицательных знаков, многоточий;
  • количество смайлов вида «)», «))», «((».

Признаки содержания:


  • процент слов, написанных CapsLock-ом;
  • процент английских слов;
  • наличие большой буквы в начале предложения.

Общие признаки:


  • количество слов;
  • количество предложений;
  • средняя длина слова;
  • средняя длина предложения.

Процесс получения предсказаний


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


Пользователи были разделены на две части в пропорции 80 к 20. На первой проводилось обучение моделей, на второй – тестирование. Так как классы были сбалансированы, то за метрику была взята точность (accuracy) – это отношение числа верно классифицированных примеров к общему количеству примеров.


Итоговая задача – классифицировать пользователей, но так как классификация осуществляется по текстовым комментариям, то модели будут классифицировать каждый комментарий по отдельности. Чтобы сделать предсказание для пользователя, будем выдавать наиболее частый класс, предсказываемый для его комментариев ансамблем моделей.
Каждая модель будет обучаться на своем подмножестве признаков. Таким образом, модели получаются более устойчивы к выбросам, их предсказания становятся менее коррелированы, и ошибка обобщения (generalization error) минимальна.


Используемые модели


Линейная регрессия – модель, которая линейно взвешивает входные признаки. Линейные модели хорошо подходят для задач с большим количеством разреженных признаков, а векторное представление текста как раз таким и является. Также можно интерпретировать веса перед признаками. Например в случае векторизации с помощью мешка слов, положительный вес перед словом означает, что вероятность принадлежности к первому классу больше.


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


Рекуррентная нейронная сеть – вид нейронной сети, который был специально создан для моделирования и анализа последовательностей (например, слов или символов). С помощью такой модели получается учитывать не только наличие конкретных признаков, но и их порядок.


Предсказания нейронных сетей намного сложнее интерпретировать. Чтобы получить хорошие результаты, нужно перебрать множество гиперпараметров: количество нейронов, количество слоев, величину регуляризации и другие. Для обучения нейронных сетей использовался фреймворк Keras. Более подробно о нейронных сетях можно почитать в серии статей на хабре.


Три модели, которые были перечислены выше, принимают на вход комментарии с различными вариантами векторизации: мешок слов, Tf-Idf, word2vec. Техника мешка слов применялась как на на уровне слов, так и на уровне символов. Как было сказано выше, чем больше разных моделей, тем лучше, поэтому были отобраны несколько вариантов одних и тех же моделей с различными гиперпараметрами.


Последняя модель – градиентный бустинг деревьев. Этот алгоритм показывает хорошие результаты в случае работы с количественными и категориальными признаками. В отличие от предыдущих моделей, она обучалась на общих характеристиках комментария (количество запятых, средняя длина слова и других статистиках). Использовалась библиотека XGBoost.


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



Можно заметить, что сильнее всего отличались предсказания моделей градиентного бустинга (xgb) и рекуррентной сети на уровне символов (lstm_char). Строка prediction — ансамбль всех моделей.


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


Результаты


Качество финальной модели зависит от минимального количества комментариев, которое будет использоваться для классификации одного пользователя. В теории, чем больше комментариев, тем лучше.



Однако при увеличении минимального количества комментариев от одного человека, уменьшается число человек, имеющих данное или большее кол-во комментариев, т.е. уменьшается размер обучающей выборки. Например, 2 и более комментария имеют примерно 4000 человек, а 10 и более комментариев – менее 1000. Этим объясняется снижение точности классификации при увеличении количества комментариев одного пользователя до 11-ти и больших значениях.



Наилучшая точность, равная 0.66, достигается при использование 11 комментариев от одного человека. Этого результата недостаточно, чтобы говорить об успешном решении поставленной задачи классификации, но все же эта точность превосходит качество предсказаний с помощью бросания монетки. В дальнейшем результаты можно улучшить путем сбора большего количества данных.


Наиболее важными для модели градиентного бустинга, не использующей непосредственно слова комментариев, оказались следующие признаки:


  • средняя длина слова;
  • количество слов;
  • доля английских слов в комментарии;
  • использование восклицательного знака.

С помощью библиотеки eli5 визуализируем предсказания линейной модели, работающей поверх представления текста в виде мешка слов:




На уровне символов:




Зеленым подсвечены слова и символы, которые вносят максимальный вклад в предсказанный класс, а красным которые вносят вклад в противоположный класс. y = 1 означает, что модель предсказывает класс гуманитарий, y = 0 — технарь.


Веб-сервис


Для демонстрации работы я развернул модель в качестве веб-сервиса. В качестве бэкенда был использован Flask, простой дизайн сделан с помощью Bootstrap, а для хостинга был взят Heroku. Попробовать на себе можно по адресу www.commentsanalysis.ru.


Важным ограничением стало время формирования одного предсказания. Из-за этого было решено оставить лишь 5 лучших линейных моделей для ансамбля.


На сайте четыре основных блока: краткая инструкция, поле со случайным комментарием, поле для ввода комментария пользователя и поле с результатом классификации. После того, как будет введено не менее 5 комментариев, результат может быть предсказан.


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


Ссылка на GitHub.


P.S: огромное спасибо olferuk за правку текста.

Комментарии (56)


  1. alexey-kirilenko
    17.11.2017 09:59

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

    вот это вы лихо!
    На самом деле я бы не сильно доверял профилям в социальных сетях — и таким параметрам как отношение к алкоголю и кол-ву скобочек…


    1. digitman Автор
      17.11.2017 11:33

      Тем не менее, банки и страховщики используют соц сети как один из факторов при анализе человека


    1. StjarnornasFred
      19.11.2017 00:59

      Переводить не надо, но давать им такую рекомендацию можно, причём желательно в 11 классе.


      1. lair
        19.11.2017 03:51

        … а вы думаете, что в 11 классе этот классификатор будет работать?


  1. kaftanati
    17.11.2017 10:06

    Нервно курящий гуманитарий (менеджер) в ожидании выхода из состояния увлечения алкоголем технаря (забухавший программист).


  1. Nick_mentat
    17.11.2017 10:53

    Интересно. Но по-моему зря отброшены обращения — можно провести анализ кто с кем больше общается — как часто гуманитарии обращаются к технарям, технари к гуманитариям, технари к технарям, гуманитарии к гуманитариям. Померять количество пользователей которые одинаково много или одинаково мало общаются с обеими категориями среди первых и вторых.
    Также интересно добавить категории естественных наук и сравнить все три варианта. Можно так же анализировать саму систему образования — разделить не только по типу факультета, но и по классу вуза, и проверить, кореллирует ли грамотность и развёрнутость предложений, использование терминов и прочее с категорией вуза, или с его рейтингом по разным системам. Тогда можно сравнить адекватность оценки частных рейтинговых систем между собой и с государственной системой аккредитации.
    Ещё было бы интересно добавить анализ фото нейросетями, если это позволяют вычислительные мощности. Анализировать корелляции с причёской, телосложением, цветом одежды по метрикам из разряда систем Person Recognition. А также померять гомогенность каждой группы.


    1. digitman Автор
      17.11.2017 11:30

      Интересная идея про анализ кто с кем общается, благо обращений действительно много.
      Кстати про классификацию по лицу очень крутая мысль. Недавно как раз была статья по определению сексуальной ориетанции по фото, довольно успешная.
      Спасибо за большое количество интересных todo


      1. Nick_mentat
        17.11.2017 14:31

        Ещё интересная особенность — абсолютно все мои комментарии на хабре система пометила как технарьские. Хотя а) я получал классическое естественнонаучное образование и б) пишу всегда развёрнуто и даже с буквой «ё» =), был уверен что получится чисто гуманитарный результат.

        upd Хм… Кроме вот прямо вот этого.


        1. lostpassword
          18.11.2017 08:08

          Это она на смайлик отреагировала)


  1. bigfatbrowncat
    17.11.2017 11:43

    Скопировал несколько записей из своих комментариев на Хабре. Выяснил, что я — гуманитарий. Не удивился.

    Не хочу вас расстраивать, но, как мне кажется, ваш анализатор научился оценивать словарный запас (использование редких корней в языке, знание которых чаще можно приписать «гуманитариям»), обилие знаков препинания, на которые «технари», вестимо, куда чаще забивают и, возможно, длину предложений.

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

    Попробуйте выдачу изменить: пусть ваша сеть работает не как классификатор (чего больше, то и победило), а выдает обе метрики. Скажем, «в вас 37% гуманитария и 63% технаря» было бы куда интереснее.


    1. bigfatbrowncat
      17.11.2017 11:48
      +1

      Смотрите: закономерность вполне выделяется:

      № Комментарий
      0 (зеленый) Скопировал несколько записей из своих комментариев на Хабре. Выяснил, что я — гуманитарий. Не удивился.
      1 (красный) Не хочу вас расстраивать, но, как мне кажется, ваш анализатор научился оценивать словарный запас (использование редких корней в языке, знание которых чаще можно приписать «гуманитариям»), обилие знаков препинания, на которые «технари», вестимо, куда чаще забивают и, возможно, длину предложений.
      2 (зеленый) В целом, результат вполне логичный со статистической точки зрения.
      3 (зеленый) Но не интересный, так как задача, на мой взгляд, поставлена некорректно.
      4 (красный) Попробуйте выдачу изменить: пусть ваша сеть работает не как классификатор (чего больше, то и победило), а выдает обе метрики. Скажем, «в вас 37% гуманитария и 63% технаря» было бы куда интереснее.

      Там, где я употреблял больше технических терминов, я был «технарь». Там, где говорил «в общем», был «гуманитарий».


    1. lair
      17.11.2017 11:51

      При этом фраза "вы удивитесь, но музыканты давно это знают" трактуется как "красная".


    1. arandomic
      17.11.2017 13:42

      обилие знаков препинания, на которые «технари», вестимо, куда чаще забивают

      Знаки препинания — это отражение структуры передаваемой информации, технари на них не забивают, скорее — используют не согласно правил естественного языка.
      [humor]lisp-программисты ставят запятых в предложении, больше чем слов[/humor]


      1. lair
        17.11.2017 14:23

        … а "согласно чего"? Знаки препинания могут определять структуру информации только в контексте языка, потому что только язык определяет значение знака препинания.


        1. arandomic
          20.11.2017 17:17

          Да, фигню сказал.
          Я понимаю, что:
          1. естественные языки — живые и развивающиеся инструменты и все нормы использования знаков препинания как раз появились из необходимости структурировать информацию
          2. Кроме стабильных общих правил расстановки знаков препинания есть еще и «авторская пунктуация» (собственный набор правил конкретного автора, выражающий его личность и удовлетворяющий его какие-то частные потребности в выражении мысли) и стилистическая(ситуативная?) пунктуация (набор правил, характерный для каких-либо особых видов текста)

          Что я хотел сказать предыдущим комментарием:
          1. Мне кажется, что незакрытая кавычка будет раздражать технаря ровно также как и гуманитария. (если не больше, но я не знаю как измерить уровень раздражения у читателя)

          2. Мне кажется, что в случаях, когда выделение структурных частей предложения запятыми не обязательно, но допустимо, технарь с большей вероятностью поставит запятую, чем гуманитарий.

          3. Обычно, «авторская пунктуация» подразумевает расширение и дополнение общеупотребительных норм литературного языка, а не «переписывание». Так вот — «технарям», по моему мнению, свойственно как раз изобретение каких-то собственных структур, явно нарушающих общие правила. (У гуманитариев общие правила более свежи в памяти и они не будут «переизобретать велосипед»)


          1. lair
            20.11.2017 17:27

            Обычно, «авторская пунктуация» подразумевает расширение и дополнение общеупотребительных норм литературного языка, а не «переписывание».

            … нет. Нет такого "обычно".


            Так вот — «технарям», по моему мнению, свойственно как раз изобретение каких-то собственных структур, явно нарушающих общие правила.

            Тоже нет. Вообще, вы совершенно зря пытаетесь построить корреляцию между технари/гуманитарии и пунктуацией. Люди пишут либо грамотно, либо нет. У тех, кто пишет неграмотно, бывает нехватка запятых или их избыток (я сейчас про русский язык).


            1. arandomic
              20.11.2017 18:40

              … нет. Нет такого «обычно».


              А?вторская пунктуа?ция — ситуативное, контекстуально обусловленное отступление от общих норм пунктуации. Иногда под авторской пунктуацией понимают индивидуальные особенности пунктуационного оформления текста, не противоречащие принятым правилам, или вообще все знаки, стоящие в авторской рукописи. Последнее употребление термина характерно для издательских работников.


              Ок, не обычно, а иногда. Я говорил как раз про
              особенности пунктуационного оформления текста, не противоречащие принятым правилам


              А не про «пунктуация автора сохранена»

              вы совершенно зря пытаетесь построить корреляцию между технари/гуманитарии и пунктуацией.


              Сложно построить корреляцию несуществующего разделения с чем-то существующим, да.

              Люди пишут либо грамотно, либо нет

              Я говорил про людей пишущих грамотно.
              Мое сугубо личное наблюдение:

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


              1. lair
                20.11.2017 18:46

                Мое сугубо личное наблюдение:

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

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


                1. arandomic
                  20.11.2017 19:12

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

                  PS, вот пример наполненного факультативными знаками препинания предложений:

                  «И когда, месяц спустя, мы вернулись к этому разговору, тема его потеряла уже свою остроту»

                  «Я не отрицаю этой возможности; но, всё равно, она меня не устраивает»


                  1. lair
                    20.11.2017 21:22

                    Вот как раз там, где вы взяли эти примеры, есть прекрасная фраза:


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

                    Некоторые люди, которые работают с текстом — или просто наделены так называемым "чувством языка", — больше других уделяют внимание тому, насколько точно текст (включая пунктуацию) передает их сообщение. Кстати, определить это "подсчетом запятых" невозможно, потому что надо анализировать смысл или хотя бы структуру предложения, чтобы проверить правильность расстановки.


  1. lair
    17.11.2017 12:14

    Бинго!


    Пишем комментарии "из головы" — получаем "гуманитария". Копируем комментарии (мои же) с хабра — получаем "технаря".


    Особенно поучительно, что вот эти комментарии система распознает как "технарские":


    • Так все-таки, что же такое "современная музыка", про которую вы утверждаете, что вся она "производится людьми которые почти не разбираются в нотной грамоте"?
    • Отражение на бумаге не является обязательной частью творчества (ни музыкального, ни литературного). Дописьменная культура, вот это вот все.

    А вот этот — "гуманитарный":


    Я же уже задавал этот вопрос (неоднократно). Вот вы в статье пишете "обратимся к определению системы" — но не говорите, откуда вы взяли это определение. А ведь определение существует в рамках системы (или bounded context, если угодно).

    А теперь сравним его вот с этим, распознанным как "технарский":


    Я и задал вам два конкретных вопроса. В частности, саундтрек к Macross Frontier — это современная музыка? Человек, который его написал, "почти не разбирается" в нотной грамоте?

    У них суть-то одна и та же — вопрос об определениях. Только в "технарском" определения про музыку, а в "гуманитарном" — про системную инженерию.


    1. bigfatbrowncat
      17.11.2017 12:30

      Так все-таки, что же такое «современная музыка», про которую вы утверждаете, что вся она «производится людьми которые почти не разбираются в нотной грамоте»?

      Технарский, потому что «не разбираются». Гуманитарии это словосочетание в срачах не употребляют.

      Я же уже задавал этот вопрос (неоднократно). Вот вы в статье пишете «обратимся к определению системы» — но не говорите, откуда вы взяли это определение.

      А тут есть явный маркер гуманитария — слово «неоднократно».

      Как в свое время очень метко пошутил Жванецкий о Гайдаре, «человек, имеющий в активном словарном запасе слово „отнюдь“ в России президентом не станет».

      И, кстати, в целом это — лютый вин, что корреляция между темой обсуждения и типом мышления системой не прослеживается. Это означает, что задача действительно имеет смысл. Только вот постановка слишком упрощена. Я бы, например, выделил несколько конкретных наук и раскладывал по ним. Но тут с учебной выборкой было бы посложнее…


      1. lair
        17.11.2017 12:35

        И, кстати, в целом это — лютый вин, что корреляция между темой обсуждения и типом мышления системой не прослеживается.

        Тогда почему по комментариям на хабре я "технарь", а по комментариям, написанным вне обсуждения — "гуманитарий"?


      1. lair
        17.11.2017 12:42

        А тут есть явный маркер гуманитария — слово «неоднократно».

        "Я же уже задавал этот вопрос (неоднократно). [...]" — гуманитарный.
        "Я же уже задавал этот вопрос (дважды). [...]" — технарский.
        "Я же уже задавал этот вопрос. [...] — снова гуманитарный.


        Технарский, потому что «не разбираются». Гуманитарии это словосочетание в срачах не употребляют.

        "современная музыка производится людьми которые почти не разбираются в нотной грамоте"
        "современная музыка производится людьми которые ничего не понимают в нотной грамоте"
        "современная музыка производится людьми которые не разбираются в нотной грамоте"
        "современная музыка производится людьми которые не обучались нотной грамоте"
        "современная музыка производится людьми которые разбираются в нотной грамоте"
        "современная музыка производится людьми которые обучались нотной грамоте"


        Все "технарские" (и, кстати, правильная расстановка запятых не влияет).


        1. bigfatbrowncat
          17.11.2017 21:57

          Объявление. «Отличаю гуманитария от технаря по комментариям в Фейсбуке. Недорого»


  1. ildarz
    17.11.2017 13:31

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

    А авторов статей, пишущих глупости, автоматически переводить с Хабра на Рен-ТВ.


    У вас есть две группы людей, разделенных де-факто по произвольному принципу, ибо вы не озвучили ни список факультетов, ни критерии, по которым тот или иной отнесен в ту или иную группу, или исключен. А вот выпускники
    института математики, физики, информатики и технологий УГПУ к какой категории относятся, и почему, и много ли у них общего с выпускниками ВМК МГУ или МХТИ, скажем — можете обоснованно рассказать? Далее, вы с точностью не более 66% можете определить, к какой из этих групп относится тот или иной человек из уже исследованных вами, а точность прогнозов модели на другой выборке вы исследовать даже не пытались. И на основании этого вы хотите что-то "применять"? :)


    1. digitman Автор
      17.11.2017 13:43

      Когда не умеешь различать сарказмы


      1. ildarz
        17.11.2017 13:53

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


        1. SergeyMax
          18.11.2017 12:54
          +1

          В этом — вся суть Big Data.


  1. Andrey_tr
    17.11.2017 13:40

    Прошел тест по ссылке, три ответа — гуманитарий, два — технарь. Всегда думал что я технарь.


  1. katletmedown
    17.11.2017 13:41

    Нужен еще опрос: «каков ваш результат после прохождения теста?», у нас с коллегами результат как-то очень далек от объективного.


  1. dragonnur
    17.11.2017 13:41

    «начиная с 4-х часов утра, количество комментариев от пользователей класса «гуманитарий» значительно больше, что говорит о более раннем времени подъема» что-то мне это напоминает
    image


    1. dragonnur
      17.11.2017 17:03
      -1

      картинка отлипла из-за выпавшего двоеточия. В общем, так:
      image


  1. ekaterinans
    17.11.2017 13:41

    Вообще, статья очень познавательная. В том плане, что мне было интересно следить за рассуждениями автора, и я очень хотела увидеть что получится в итоге. По-моему, это отличное начало, буду ждать дальнейших исследований и результатов :)


  1. Anton23
    17.11.2017 15:21

    Мне тест не показался объективным. Если у меня все хорошо с русским языком, то я что, гуманитарий?


    1. digitman Автор
      17.11.2017 15:53

      Если бы это так работало, то можно было сделать такой тест в ворде


  1. murzik_a
    17.11.2017 16:41

    За технарский ответ был посчитан только с нецензурной лексикой. Ну ок…


  1. CoreTeamTech
    17.11.2017 16:43
    +1

    Астрология какая-то. Классифицировать программы обучения на гуманитарны и технические — имеет смысл, делить людей — очень странно. Собственно, постановка задачи и достигнутый результат перечеркивают ценность описания подхода. Завтра на это натолкнется какой-нибудь «чиновник-начальник» и решит, что это можно использовать на практике.
    Я нахожу в последнее время, что есть такой «склад ума» — маркежур (от «маркетинг» и «журналист»). Люди этого «склада ума» отличаются способностями высасывать из пальца публикации, проводить объемные бесполезные исследования и достигать сомнительных результатов. Часто их можно определить по громким заголовкам, бытовым формулировкам и терминам, разбавленным красивыми графиками.


    1. dragonnur
      17.11.2017 17:06

      Вся брехня разделяется на ложь, большую ложь и статистику Не хахаха, а бигдата! ЕВПОЧЯ
      Всего лишь говорит об очередной кривой матмодели, на которую натягивают теперь тёплые ламповые интерфейсы


    1. frog
      19.11.2017 19:42

      На мой взгляд, деление на «технарь и гуманитарий» это деление по принципу «ценит логику в рассуждениях своих и чужих / не ценит» (с образованием и полом это коррелирует, но косвенно).
      Сомнительно, что столь простым, как в статье, методом можно выявить такие вещи.


      1. lair
        19.11.2017 21:54

        На мой взгляд, деление на «технарь и гуманитарий» это деление по принципу «ценит логику в рассуждениях своих и чужих / не ценит»

        То есть "гуманитарий" — это такое ругательное слово, обозначающее "не ценит логику"?


  1. lair
    17.11.2017 16:50
    +1

    И только на третий день индеец Зоркий глаз заметил...


    Я разделил все факультеты на гуманитарные, технические и другие (естественные или вовсе не относящиеся к научным, например, музыкальные или художественные). Эти “другие” факультеты были отброшены и не участвовали в эксперименте.

    Теперь меня не удивляют результаты: у нас были (помимо неразмеченных), грубо говоря, четыре класса (на самом деле — больше, но не суть), а результат мы запихиваем в два (вместо, хотя бы, двух классов и "не понял, кто").


  1. Myosotis
    17.11.2017 17:17

    Меня распознали как технаря, браво. Только я не поняла, почему мой комментарий "слева или справа?" — больше гуманитарный коммент.


    1. ZeXTeR
      18.11.2017 12:55

      Как уже писали выше, чем грамотнее речь — тем больше вероятность получить классификацию "гуманитарий". Странно и смешно, но факт остаётся фактом :)


  1. oisee
    17.11.2017 17:57

    «Гороскоп точнее категоризирует чем эта балалайка» — красненький.


  1. Abyrvalgov
    17.11.2017 19:09

    Вот интересно, вы смотрите на параметр «большая буква в начале предложения», но ведь при этом все сообщения с обращением по умолчанию правильно начинать с маленькой буквы, ибо они формируются видом «Иван, ты...». А если заменить обращение на айдишник, то предложение начинается вообще с маленькой цифры.

    А ещё я попробовал тест пройти, но не смог. Комментировать рандомные короткие фразы без контекста просто не получается.


    1. Abyrvalgov
      17.11.2017 19:12

      Впрочем, кнопка «ответить» вообще не жмётся в приватном окне фуррифокса.


  1. evgenWebm
    17.11.2017 23:51

    Это не так работает. ;)
    Чтобы понять по тексту, кто ты. Должны быть соответствующие вопросы.
    Я извините, не только на технические темы общаюсь.
    А запятые, смайлики и тп, это вообще про что?
    На развлекательных сайта, я смайлы ставлю "))", на Хабре не ставлю, так как тут не место этим смайлам!
    Орфография вообще не признак. Я знаю технарей которые пишут «ящитаю».
    И тп и тд.
    Все очень субъективно.
    Нельзя вот так взять и определить.

    Даже на шутку не тянет.


  1. alek0585
    17.11.2017 23:58

    Меня опредилило технарем 4/5, но себя таковым не считаю


  1. Vlad_IT
    18.11.2017 02:06

    Я догадывался image


  1. dr9ihor
    18.11.2017 12:57

    Меня ошибочно приписали к гуманитариям.


  1. pleshij
    18.11.2017 12:57

    Курение и алкоголь?!

    Нет, я конечно, понимаю, что это нужно для сбора статистики, но… Это больше похоже на машинную логику (no offence meant :)


  1. nagvv
    18.11.2017 12:57


    Шах и мат…


  1. Rus81
    19.11.2017 12:54

    Интересная статья, но по трем тестам из десяти вопросов меня определило как технаря, гуманитария и не смогла определить )


  1. NatToganova
    21.11.2017 09:53

    классификация «физики/лирики» более чем условна. можете посмотреть классификацию ОЭСР обучающихся студентов по направлениям, данные по РФ — там есть. условна, т.к. куда Вы денете медиков? они лирики или физики? музыка и ко — это гуманитарные науки. общественные науки тоже выпали куда-то (то есть я думаю, что Вы их к гуманитариям зачислили, но филологам небось обидно будет в одном котле с менеджерами быть — все же словарный запас, если следовать Вашей логике, должен отличаться, а Вы их под одну гребенку).
    В начале написано, что «Итоговый результат можно будет использовать, например, для таргетированной рекламы», а в конце «студентов-гуманитариев, учащихся на технических факультетах, можно автоматически переводить на более подходящие им факультеты» — то есть о рекламе в конце забыто.
    Если все же цель ближе к «таргетированной рекламе», то можно посмотреть другие публикации по анализу лексики + соцположения + заработка и т.п. с целью чем бы еще дополнить journals.plos.org/plosone/article?id=10.1371/journal.pone.0138717 и вот надеюсь откроется список со статьями scholar.google.ru/scholar?q=related:YMtIdmEoKZAJ:scholar.google.com/&hl=en&as_sdt=0,5
    Жалко, что паблик относительно нейтральный. Иначе можно было бы посмотреть агрессивность комментариев в зависимости от времени суток… В зависимости от тем постов… В зависимости от возраста/пола и т.п. комментирующего… И инфа по алкоголю/курению бы пригодилась)))


    1. Maccimo
      21.11.2017 11:29

      куда Вы денете медиков? они лирики или физики?

      Конечно же физики, какие могут быть сомнения?
      Их работа заключается в обслуживании сложнейших инженерных систем.