Научная статья на тему 'ПРИМЕНЕНИЕ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ ДЛЯ АНАЛИЗА ПСИХОТИПОВ ЛИЧНОСТИ'

ПРИМЕНЕНИЕ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ ДЛЯ АНАЛИЗА ПСИХОТИПОВ ЛИЧНОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
101
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КЛАСТЕРИЗАЦИЯ / ПСИХОТИП / СОЦИАЛЬНАЯ СЕТЬ / САНГВИНИК / ФЛЕГМАТИК / ХОЛЕРИК / МЕЛАНХОЛИК

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гусева О.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гусева О.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

APPLICATION OF MACHINE LEARNING METHODS FOR THE ANALYSIS OF PERSONALITY PSYCHOTYPES

This article discusses the solution of the problem of monitoring contact information in a social network and determining the personality psychotype based on it. Most of the material proposed by the developers works with English-language texts to determine the emotional coloring, their classification and, to a lesser extent, clustering. The approach proposed in the article is based on the use of the K-means method to solve the clustering problem of Russian-language texts and subsequent comparison with the results of working with the same data of an already trained model. During the work, was developed an effective method of parsing for collecting data. A proprietary data set has been collected and its processing and detailed analysis have been carried out. The result of the study allows us to make a primary assumption about what kind of psychotype a particular person has. It is quite difficult to determine the accuracy of the results of the task, since there is no predefined correct answer in machine learning without a teacher, and determining the psychotype is a difficult task from the point of view of psychology. All program code is written in the Python programming language.

Текст научной работы на тему «ПРИМЕНЕНИЕ МЕТОДОВ МАШИННОГО ОБУЧЕНИЯ ДЛЯ АНАЛИЗА ПСИХОТИПОВ ЛИЧНОСТИ»

Применение методов машинного обучения для анализа психотипов личности

О. А. Гусева Южный федеральный университет, Ростов-на-Дону

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

Ключевые слова: кластеризация, психотип, социальная сеть, сангвиник, флегматик, холерик, меланхолик.

В современном мире благодаря быстрому распространению технологий и их внедрению в повседневную жизнь можно найти информацию почти о любом человеке, хоть раз воспользовавшемся социальными сетями. Даже при поверхностном поиске, социальные сети могут многое сказать о человеке, имеющем аккаунт и ведущем активную жизнь в Интернете. Именно поэтому довольно часто различные мессенджеры используются в научных и социологических исследованиях, в которых применяются специальные методы для подробного анализа разного рода информации. В данной работе рассматривается возможность использования машинного обучения для анализа психотипов на основе статусов. Вопросу анализа естественного языка посвящено достаточно много статей и исследований [ 1 -3]. Большая часть предлагаемого разработчиками материала работает с англоязычными текстами для определения эмоциональной окраски, их классификации и, в меньшей степени, кластеризации. Целью данной работы является рассмотрение возможности использования машинного обучения для анализа психотипов на основе статусов на русском языке.

Предлагаемый в статье подход основан на использовании метода K-means для решения задачи кластеризации русскоязычных текстов и

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

В ходе анализа методов решения поставленной задачи, было решено использовать данные из социальной сети ВКонтакте. Такой выбор можно объяснить тем, что первой задачей в данном исследовании было собрать данные, то есть, достаточное количество статусов, подходящих для последующих обработок. Способы сбора информации из выбранного источника отличаются от других своим разнообразием и удобством в использовании. В нашей работе используется техника, применяющая методы API ВКонтакте - интерфейса, позволяющего получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. API упрощает создание кода, так как предоставляет набор готовых классов, функций или структур для работы [4].

Процесс получения таких данных имеет свои особенности. Было создано собственное Standalone-приложение. Посредством его получен API_ID, который открывает доступ ко многим возможностям метода API. Последним этапом было получение токена - некоторого ключа доступа, который передаётся на сервер вместе с запросом. В дальнейшем эти действия позволили программе просматривать страницы пользователей, считывать и сохранять нужную информацию.

Основной частью работы будет обработка текста и создание модели обучения нейронной сети. Как уже было упомянуто выше, в данной работе применимо обучение без учителя. Обучение без учителя или кластеризация является классом методов машинного обучения для поиска шаблонов в наборе данных [5]. Конкретного правильного результата, который должен быть получен после кластеризации, не существует, в отличие от обучения с учителем.

Однако перед тем, как приступить к описанию работы программного кода, необходимо рассмотреть вопрос, касающийся психотипов, их различия и особенностей. После изучения теоретических материалов было принято решение использовать разделение по Гиппократу - на четыре группы: сангвиники, холерики, флегматики и меланхолики [6]. Приведём краткое описание каждого из них. Сангвиник стремится к частой смене впечатлений, легко и быстро отзывается на окружающие события, общителен. Эмоции у сангвиника преимущественно положительные, они быстро возникают и быстро меняются [7]. В результате исследования этой информации было предположено, что ключевыми словами, по которым можно отличить статусы сангвиника, могут быть такие слова, как, например, радость, счастье, улыбка и их производные. Также особенностями статусов людей сангвиников могут быть восклицательные знаки и большое количество красочных смайликов. Для темперамента флегматиков характерна сдержанность, медлительность психических реакций и постоянство. Такие люди надежны, ответственны, преданны. К флегматикам можно отнести выносливых, старательных и работящих людей. Они разговаривают тихо, но четко, с заметными паузами, без эмоционально-интонационных скачков. Это искренние, иногда даже чересчур прямолинейные люди [8]. При анализе статусов можно не ждать большого количества смайликов, скорее всего их не будет совсем, так же, как и восклицательных знаков. При поиске ключевых слов можно основываться на том, что флегматики замкнуты, плохо адаптируются к переменам. Их преимуществами являются постоянство, ум и дисциплина, они хорошо работают с большим количеством информации. По такому же принципу был проведён анализ психотипов холериков, отличительной чертой которых является взрывной, импульсивный характер [9] и меланхоликов, которые склонны к тревожности и печали [10].

Заметим, что к числу основных процессов данного исследования относится обработка данных. Хорошо очищенный и подготовленный текст может обеспечить более корректную работу модели. Основываясь на различных, уже предложенных ранее методах, был создан собственный алгоритм, позволяющий анализировать статусы по отдельности, не создавая слитный текст в ходе лемматизации [11-13]. Затем к отформатированным статусам, пример одного из таковых приведён в Приложении (см. рис. 1), был применён метод кластеризации К-шеапБ [14].

242149093 менЯ К Се^е ^СП0™0' ^ больше не реветь. [взять', V, 'спокойно','.', V. 'обещать', 'реветь'. У, 'спать', 'ночь', 'вести'.

Спать по ночам, вести себя достойно И лишних всех из памяти стереть 'достойно', У, 'лишний', 'память', 'стереть','.']

Рис. 1. - Пример отформатированного статуса

Результаты его работы мы наблюдаем на графике (см. рис. 2).

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

и

количественное описание результатов приведено в таблице (см. рис. 3).

Без учителя Э С учителем Я

Невозможно определить 12 382

Сангвиник 1174 299

Флегматик 13 193

Меланхолик 68 420

Холерик 65 38,

Рис. 3. - Результаты работы модели Позднее, с этими же данными, работает модель обучения с учителем «Dostoevsky», она позволяет достаточно точно определить тональность текста [15]. Все результаты для сравнения записываются в сводную таблицу.

Главным результатом проведённого исследования следует считать алгоритмизацию модели, которая была реализована в виде программного приложения. Как видно из таблицы и графика (см. рис. 3, 4), предложенный алгоритм может распознавать характерные шаблоны для четырёх различных психотипов, а также для рекламы или спама.

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

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

Литература

1. «Люблю» и «ненавижу»: анализ эмоциональной окраски текста с помощью Python // Proglib URL: progHb.io/p/lyublyu-i-nenavizhu-analiz-emocionalnoy-okraski-teksta-s-pomoshchyu-python-2020-11-13.

2. Clustering with maximum diameter // Github URL: github.com/antklen/diameter-clustering/blob/master/README.md.

3. Практический NLP с Python-библиотекой spaCy для SEO-задач в Google Colab // BigDataSchool URL: bigdataschool.ru/blog/spacy-library-for-nlp-in-google-colab-example.html (дата обращения: 16.01.2023).

4. Использование API // VK для разработчиков. URL: dev.vk.com/api/getting-started (дата обращения: 15.12.2022).

5. Clustering // Scikit-learn URL: scikit-learn.ru/clustering/.

6. Психотипы Людей - Классификация И Характеристика // Psylib URL: psylib.org/psikhotipy-lyudei-klassifikasija-i-prinsipy-opredelenija/.

7. Кто такой сангвиник: все об оптимистической душе компании // 4T URL: temperamenttest.org/ru-ru/sangvinik/.

8. Кто такой флегматик: ленивый ворчун или эмоционально уравновешенный логик // 4T URL: temperamenttest.org/ru-ru/flegmatik/.

9. Холерик - его сильные и слабые стороны, черты характера и поведения // Psylogik.ru URL: psylogik.ru/192-holerik.html.

10. Меланхолик как один из видов темперамента // Psylogik.ru URL: psylogik.ru/193-melanholik.html (дата обращения: 22.12.2022).

11. О сборе данных. Как собирать данные, анализировать их и грабить корованы // Хабр URL: habr.com/ru/articles/407977/.

12. Моем датасет: руководство по очистке данных в Python // Proglib URL: proglib.io/p/moem-dataset-rukovodstvo-po-ochistke-dannyh-v-python-2020-03-27.

13. Очистка данных с помощью Python и Pandas: обнаружение пропущенных значений MachineLearningMastery.ru URL: www.machinelearningmastery.ru/data-cleaning-with-python-and-pandas-detecting-missing-values-3e9c6ebcf78b/.

14. Объясните так, как будто мне 10 лет: простое описание популярного алгоритма кластеризации k-средних // Proglib URL: proglib.io/p/obyasnite-tak-kak-budto-mne-10-let-prostoe-opisanie-populyarnogo-algoritma-klasterizacii-k-srednih-2022-12-07.

15. Dostoevsky — анализ тональности в Python за 5 минут // Егоров Егор Блог о разработке на Python URL: egorovegor.ru/analiz-tonalnosti-s-python-i-dostoevsky/.

References

1. «Lyublyu» i «nenavizhu»: analiz emotsional'noy okraski teksta s pomoshch'yu Python [Love and hate: Python analysis of text emotions]. URL: proglib.io/p/lyublyu-i-nenavizhu-analiz-emocionalnoy-okraski-teksta-s-pomoshchyu-python-2020-11-13.

2. Clustering with maximum diameter. URL: github.com/antklen/diameter-clustering/blob/master/README.md.

3. Prakticheskiy NLP s Python-bibliotekoy spaCy dlya SEO-zadach v Google Colab [NLP with Python library for SEO-tasks in a Google Colab.] BigDataSchool URL: bigdataschool.ru/blog/spacy-library-for-nlp-in-google-colab-example.html (accessed: 16.01.2023).

4. Ispol'zovaniye API VK dlya razrabotchikov [API VK for developers], URL: dev.vk.com/api/getting-started (accessed: 15.12.2022).

5. Clustering Scikit-learn URL: scikit-learn.ru/clustering/.

6. Psikhotipy Lyudey Klassifikatsiya I Kharakteristika [Psychotypes. Classification and characteristics]. Psylib URL: psylib.org/psikhotipy-lyudei-klassifikasija-i-prinsipy-opredelenija/.

7. Kto takoy sangvinik: vse ob optimisticheskoy dushe kompanii [A sanguine personality: all about the optimistic soul of the company]. 4T URL: temperamenttest.org/ru-ru/sangvinik/.

8. Kto takoy flegmatik: lenivyy vorchun ili emotsional'no uravnoveshennyy logik [A phlegmatic personality: lazy grumbler or emotionally balanced logician]. 4T. URL: temperamenttest.org/ru-ru/flegmatik/.

9. Kholerik - yego sil'nyye i slabyye storony, cherty kharaktera i povedeniya [Choleric his strengths and weaknesses, character traits and behavior]. Psylogik.ru URL: psylogik.ru/192-holerik.html.

10. Melankholik kak odin iz vidov temperamenta [Melancholic - one of temperaments]. URL: psylogik.ru/193-melanholik.html (accessed: 22.12.2022).

11. O sbore dannykh. Kak sobirat' dannyye, analizirovat' ikh i grabit' korovany [About data collection. How to collect, analyze data and rob caravans]. URL: habr.com/ru/articles/407977/ (accessed: 15.12.2022).

12. Moyem dataset: rukovodstvo po ochistke dannykh v Python [Cleaning dataset: Python data cleanup guide]. URL: proglib.io/p/moem-dataset-rukovodstvo-po-ochistke-dannyh-v-python-2020-03-27.

13. Ochistka dannykh s pomoshch'yu Python i Pandas: obnaruzheniye propushchennykh znacheniy [Data cleanup with Python and Pandas: detection of missing data]. URL: machinelearningmastery.ru/data-cleaning-with-python-and-pandas-detecting-missing-values-3e9c6ebcf78b/.

14. Ob"yasnite tak, kak budto mne 10 let: prostoye opisaniye populyarnogo algoritma klasterizatsii k-srednikh [A simple description of the popular clustering algorithm k-means]. URL: proglib.io/p/obyasnite-tak-kakbudto-mne-10-let-prostoe-opisanie-populyarnogo-algoritma-klasterizacii-k-srednih-2022-12-07.

15. Dostoevsky analiz tonal'nosti v Python za 5 minut [Dostoevsky's analysis of tonality in Python in 5 minutes] Yegorov Yegor Blog o razrabotke na Python URL: egorovegor.ru/analiz-tonalnosti-s-python-i-dostoevsky/.

i Надоели баннеры? Вы всегда можете отключить рекламу.