Скачать программу Социометр 15 с исходным кодом
РУБРИКА
УДК 159.923
Полозов Я.В.
проект «Социометр 15»
Программа «Социометр» использует контент-анализ текста взятого из речи типируемого, и на базе этого принимает решение о вероятности принадлежности типируемого к тому или иному типу.
Ключевые слова: признаки Рейнина, типирование, точное типирование, нейросети, соционика, С#, калькулятор признаков Рейнина, калькулятор ПР, Социометр, контент-анализ.
Кто чаще всех говорит – слово «хочу» - Предусмотрительные. Кто чаще всех использует предлог «к» - Статики. Кто чаще всех говорит слово «абсолютно» - эмотивисты! Эти и прочие исследования заложены в основе проекта социометр.
Пользовательская инструкция:
Основной файл: Sociometry.exe
Программа работает с русскоязычными. Общаетесь с целевым человеком на произвольную тему в умеренно дружелюбном настрое и параллельно с этим захватываете видео/аудио. Первые 15 минут общения превращаете в текст. Для превращения слов в текст – обязательно воспользуйтесь услугой профессиональных наборщиков текста. Современные программы не обеспечивают нужного качества перевода. Нужен только текст типируемого. Переводите в файл с расширением txt. Затем в программе нажимаете на кнопку «Рассчитать ТИМ» - указываете путь к файлу и получаете ответ программы в виде распределения версий. Также программа выдает ранжирование по убыванию версий типирования в отдельном текстовом файле, и подробные расчеты вероятностей. Файл с выводом будет засунут в папку Logs.
Вы можете также протестировать работу социометра на текущих текстах выбрав файл из папки «Обработано» и посмотреть куда он отипирует того или иного человека.
Ядро программы:
За основу алгоритмов расчетов взята программа «Калькулятор ПР». Сначала социометр рассчитывает вероятность отнесения типируемого к той или иной полярности дихотомии, а затем вводит полученные значения в калькулятор ПР и вычисляет итоговую вероятность отнесения к тому или иному соционическому типу.
Методы работы программы:
Программа использует контент-анализ, анализируя текст речи типируемого, по словам ключам, анализируя их удельную концентрацию в перерасчете на 10000 символов текста, а также по числу символов (дихотомия экстраверсия-интроверсия: критерий: болтливость за единицу времени).
Источники обучаемой выборки:
За основу для обучения были взяты интервью людей чьи соционические типы были подтверждены как минимум 3 социониками (в том числе и мной) в количестве 113 человек. В данный момент есть программы «Социометр 15» программа, анализирующая на интервале в 15 минут, и «Социометр 45» - программа, анализирующая текст из речи человека на интервале в 45 минут. – В данный момент находиться в проекте.
Как вычисляются дихотомии:
При вычислении полярностей тех или иных дихотомии были взяты за основу 2 типа распределений:
Нормальное распределение:
Экспоненциальное распределение
Плотность нормального распределения считается по формуле
*k
Где к – поправочный коэффициент. В связи с тем, что распределение отличается от нормального. Связан с тем, что функция плотности нормального распределения немного захватывает отрицательную область, что в итоге не дает суммарную площадь функции плотности нормального распределения равную 1. Функция плотности нормального распределения будет умножаться на этот коэффициент чтобы суммарное значение в площади нормального распределения интегрированное от нуля до бесконечности давало 1
х – наша полученное число частоты на 10000 символов
- среднеквадратическое отклонение для нашей дихотомии.
.
Где a – это среднеарифметическая величина. Нижний индекс 1 – первая полярность дихотомии. Нижний индекс 2 – вторая полярность дихотомии.
х – наша полученная частота на 10000 символов
- среднеквадратическое отклонение для нашей дихотомии. Нижний индекс 1 – первая полярность дихотомии. Нижний индекс 2 – вторая полярность дихотомии.
Вероятность в этой ситуации будет рассчитана по формуле:
P(1|B) – Вероятность отнесения типируемого к первой полярности дихотомии
P(2|B) – Вероятность отнесения типируемого к второй полярности дихотомии
Экспоненциальное распределение:
f(x,a)=a*exp(-ax)
a равно 1/M, где M – среднеарифметическая величина
х – наша полученная частота
Вероятность в этой ситуации будет рассчитана по формуле согласно теоремы Байеса:
Для экспоненциального распределения:
Для смешанного распределения:
Или:
f(x) - могут рассчитываться разными методами, но они одинаково будут рассчитываться в после этого по формуле согласно теоремы Байеса:
p1=f1(x)/(f1(x)+f2(x))
Примечание к программе: программа использует количество символов, наговоренных типируемым как способ распознавания дихотомии Экстраверсия-Интроверсия, работая по принципу нормального распределения
Шаг 7. По т. Байеса вычислить вероятность отнесения к дихотомии на основании полученных вероятностей всех слов ключей. По этой формуле:
Шаг8: вычислить все дихотомии в калькуляторе ПР.
Про то, как ведутся расчеты в калькуляторе ПР – читайте статью «Калькулятор ПР»
Предлагается Вашему вниманию версия: «Социометр 15»(возможны и другие версии, но ядро и алгоритмы расчетов будут те же)
В этой версии проведены исследования на интервале 15 минут из 113 человек: все превращено в текст и исследованы закономерности по поводу частот используемых слов, которые использует социометр, чтобы решать обратную задачу: на основании частот слов делать вывод о принадлежности типируемого к тому и или иному социотипу оценивая параллельно вероятность.
Основной файл для настройки параметров
keys.txt
В этом файле содержится:
Порог срабатывания – порог, начиная с которого социометр принимает решение о типе типируемого. Ниже этого порога – социометр считает, что тип не определен. Задается первой строкой в виде процента. «Лучше воздержаться, чем отипировать неправильно»
maxrange=4 Параметр, который считает число отипированных попавших в первую четверку. Можно поставить другую цифру. Работает при нажатии кнопки массового типирования. Актуально для таких задач: «Если социометр ошибается, то, на каком уровне находиться истинная версия?»
symbol - параметр числа символов, применимый к дихотомии
Экстраверсия-Интроверсия
Задается в стиле:
symbol;5864,18;2111,57;1;4705,04;1840,62;1
5864,18 – среднее количество символов, наговариваемых экстравертами за первые 15 минут общения
2111,57 – Сигма для экстравертов
1 – поправочный коэффициент в связи с тем, что распределение отличается от нормального. Если единица, то ни на что не влияет.
4705,04 – среднее количество символов, наговариваемых интровертами за первые 15 минут общения
1840– Сигма для интровертов
1 – поправочный коэффициент. Если единица, то ни на что не влияет.
Прочие слова:
ну;35,74;18,13;1,03;45,30;25,20;1,04;
35,74 -Частота слов «Ну» говорят экстраверты за 15 минут в перерасчете на 10000 символов.
Например: кто-то может сказать слово «Ну» 40 раз, но при этом наговорит 5000 символов. Тогда частота сказанным ним слова «Ну» составляет 80.
18,13 – Сигма для экстравертов
1,03 – Поправочный коэффициент для экстравертов
45,30 – Частота слов «Ну» говорят интроверты за 15 минут в перерасчете на 10000 символов.
30;25 – Сигма для интровертов
1,04 – Поправочный коэффициент для интровертов
хорошо;3,38;0;0;5,62;0;0
Если поправочный коэффициент 0 то, расчет функции плотности ведется по формуле экспоненциального распределения.
3,38 – Частота слов «Хорошо» говорят экстраверты за 15 минут в перерасчете на 10000 символов.
5,62 – Частота слов «Хорошо» говорят интроверты за 15 минут в перерасчете на 10000 символов.
В программе реализованы функции как разового типирования так массового типирования.
Кнопка массового типирования позволяет анализировать эффективность работы социометра по таким параметрам:
Порог срабатывания – процент уверенности социометра, ниже которого признается что «нет версии»
Число версий – число версий отипированных. Т.к. есть порог срабатывания – некоторые версии социометр признает что «НЕТ версии» = Лучше воздержаться чем отипировать неправильно
Версии НЕТ – количество воздержаний от типирования
Совпало – число совпадений с исходной версией типирования:
Файлы именуются примерно так:
ENFJ Каменская.txt
- первые 4 буквы программа читает и запоминает соционический тип.
Распознавание: процент версий, которые программа определила правильно деленный на общее число отипированых
Сходимость: Количество правильно отипированных деленных на общее количество отипированных из тех, где есть версии
Попавшие в 1-ую maxrange=4
Параметр, который считает число отипированных попавших в первую четверку. Можно поставить другую цифру. Работает при нажатии кнопки массового типирования. Актуально для таких задач: «Если социометр ошибается, то, на каком уровне находиться истинная версия?»
Результаты работы:
Было проведено множество экспериментов с подбором количества слов ключей. Наиболее успешной версией является версия, где были взяты за основу первые, ранжированные в списке сверху 100 слов по частоте, и загружены в социометр для распознавания.
Важным параметром работы является соотнесения параметров «Порог срабатывания» и «Сходимость». Если между ними отличие небольшое – это означает что социометр не врет. На представленном слайде ранее порог срабатывания и сходимость составляют по 70% что указывает на то, что уверенность социометра подкрепляется реальной статистикой правильных выводов. Это значит, что если допустим социометр сделал вывод, что вы с вероятностью 90% Гамлет, значит скорее всего так и есть. Поздравляем: социометр смог правильно определить ваш ТИМ!
Здесь, на этом слайде загружено мое интервью с социоником Виктория Каменская, официально известной по соционическому типу Гамлет на интервале первых 15 минут.
Если Вы по-прежнему сомневаетесь в этой версии, то с вероятностью 88% ваша версия окажется в списке первых 4 версий. Это реализовано в выходном файле
Распознавание составило 42% - что уже превосходит точность типирования, достижимую мною на отрезке в первые 15 минут т.к. мне требуется обычно 1-3 часа для того, чтобы достоверно определить соционический тип. По моему опыту мне удается в течении первых 15 минут определить тип с точностью примерно 20-30%
Выводы:
- Создана первая программа, способная типировать на основании контент-анализа и объективно выставить оценку точности не вводя в заблуждение пользователей. Близость параметров: «Порог срабатывания» и «Сходимость» - гарантирует для пользователя что если, например он набрал более 90% точность типирования – значит, он получил достоверную версию о своем соционическом типе
- Данная программа способна распознать на интервале первых 15 минут общения уже в 42% случаев что превосходит точность типирования самого автора
- Машинное обучение или нейросети имеют в себе огромный потенциал для достижения высокоточного распознавания чего угодно. Теперь очередь за соционикой в сфере высокоточного типирования!
ПС:
Я признаю, что могу ошибаться. Я дарю этот Социометр соционическому сообществу, вместе с исходным кодом, написанным на языке C# чтобы его усовершенствовали дальше.
Благодарности
Автор благодарит Александра Владиславовича Рыбака за формулы функции плотности нормального распределения и экспоненциального распределения. Также программиста Илью Кульпина за написание программы, на основании ТЗ.
Литература:
- Полозов Я.В. «Калькулятор Признаков Рейнина»
- Аугустинавичюте А. Теория признаков Рейнина. Очерк по соционике // "Соционика, ментология и психология личности", 1998, №1-6.
- Карпенко О.Б. «Позиция эксперта» СМиПЛ N 1, 1999.
- Миронов «Наполение Признаков Рейнина: Результаты практических исследований» СМиПЛ №1 2003
- Морозов М., Прошкин И. Вероятностное типирование по признакам Рейнина // "Соционическая газета", 2003, № 14 (17).
- Рейнин Г.Р. Группа биполярных признаков в типологии Юнга. // "Соционика, ментология и психология личности", 1996, № 6.
- Формула Байеса http://nsu.ru/mmf/tvims/chernova/tv/lec/node15.html
Статья поступила в редакцию __.__.2018 г.
Об авторе:
Полозов Ярослав Викторович — специалист и экспериментатор в соционике с опытом с 2003 года в г. Киеве. Владелец каналов с соционическими исследованиями и экспериментами
https://www.youtube.com/channel/UCvNUz0gcIU5iEiPIiZ68P5g
https://www.youtube.com/channel/UC149vCZqlkUC-odgi9NWXVg
Группы ВК
https://vk.com/iss_socionics_group
Веб сайт
http://isocionics.com/
Polozov Y.V.
Calculator of Reinin Dichotomies
The Sociometer program uses content analysis of the text taken from the typed speech, and on the basis of this makes a decision about the likelihood of characteristics of the typed or another type.
Keywords: Reinin dichotomies, typing, accurate typing, socionics, С#, Reinin dichotomies calculator, RD calculator, neural networks, Sociometer, content analysis