Решение практической задачи 3

Задача: Формирование эффективных рабочих коллективов

Решение практической задачи выполняется в два этапа. На первом этапе необходимо использовать библиотеку OCEAN-AI для получения гипотез предсказаний (оценок персональных качеств личности человека). На втором этапе следует использовать метод _colleague_ranking из библиотеки OCEAN-AI для решения представленной практической задачи на примере поиска подходящих коллег для целевого коллеги. Примеры результатов работы и реализации представлены ниже.

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

9d3f1180c0f04117914264a54bfa48f6

014233e163a84c1a9ab3ec70e9c45cda


FI V2

[2]:
# Импорт необходимых инструментов
import os
import pandas as pd

# Импорт модуля
from oceanai.modules.lab.build import Run

# Создание экземпляра класса
_b5 = Run()

# Настройка ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000      # Размер загрузки файла из сети за 1 шаг

corpus = 'fi'

# Формирование аудиомоделей
res_load_model_hc = _b5.load_audio_model_hc()
res_load_model_nn = _b5.load_audio_model_nn()

# Загрузка весов аудиомоделей
url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)

# Формирование видеомоделей
res_load_model_hc = _b5.load_video_model_hc(lang='en')
res_load_model_deep_fe = _b5.load_video_model_deep_fe()
res_load_model_nn = _b5.load_video_model_nn()

# Загрузка весов видеомоделей
url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']
res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)

# Загрузка словаря с экспертными признаками (текстовая модальность)
res_load_text_features = _b5.load_text_features()

# Формирование текстовых моделей
res_setup_translation_model = _b5.setup_translation_model() # только для русского языка
res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)
res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)
res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)

# Загрузка весов текстовых моделей
url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']
res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']
res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)

# Формирование модели для мультимодального объединения информации
res_load_avt_model_b5 = _b5.load_avt_model_b5()

# Загрузка весов модели для мультимодального объединения информации
url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']
res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url, force_reload = False)

PATH_TO_DIR = './video_FI/'
PATH_SAVE_VIDEO = './video_FI/test/'

_b5.path_to_save_ = PATH_SAVE_VIDEO

# Загрузка 10 тестовых аудиовидеозаписей из корпуса First Impression V2
# URL: https://chalearnlap.cvc.uab.cat/dataset/24/description/
domain = 'https://download.sberdisk.ru/download/file/'
tets_name_files = [
    '429713680?token=FqHdMLSSh7zYSZt&filename=_plk5k7PBEg.003.mp4',
    '429713681?token=Hz9b4lQkrLfic33&filename=be0DQawtVkE.002.mp4',
    '429713683?token=EgUXS9Xs8xHm5gz&filename=2d6btbaNdfo.000.mp4',
    '429713684?token=1U26753kmPYdIgt&filename=300gK3CnzW0.003.mp4',
    '429713685?token=LyigAWLTzDNwKJO&filename=300gK3CnzW0.001.mp4',
    '429713686?token=EpfRbCKHyuc4HPu&filename=cLaZxEf1nE4.004.mp4',
    '429713687?token=FNTkwqBr4jOS95l&filename=g24JGYuT74A.004.mp4',
    '429713688?token=qDT95nz7hfm2Nki&filename=JZNMxa3OKHY.000.mp4',
    '429713689?token=noLguEGXDpbcKhg&filename=nvlqJbHk_Lc.003.mp4',
    '429713679?token=9L7RQ0hgdJlcek6&filename=4vdJGgZpj4k.003.mp4'
]

for curr_files in tets_name_files:
    _b5.download_file_from_url(url = domain + curr_files, out = True)

# Получение прогнозов
_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных
_b5.ext_ = ['.mp4'] # Расширения искомых файлов

# Полный путь к файлу с верными предсказаниями для подсчета точности
url_accuracy = _b5.true_traits_[corpus]['googledisk']

_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = 'en')

[2024-10-10 21:44:08] Извлечение признаков (экспертных и нейросетевых) из текста …

[2024-10-10 21:44:08] Получение прогнозов и вычисление точности (мультимодальное объединение) …

    10 из 10 (100.0%) … GitHub:nbsphinx-math:OCEANAI\docs\source\user_guide:nbsphinx-math:notebooks\video_FI:nbsphinx-math:test_plk5k7PBEg.003.mp4 …

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
Person ID
1 2d6btbaNdfo.000.mp4 0.618917 0.660694 0.477656 0.654437 0.601256
2 300gK3CnzW0.001.mp4 0.461732 0.413451 0.415706 0.498301 0.431224
3 300gK3CnzW0.003.mp4 0.468002 0.448618 0.371742 0.509602 0.453739
4 4vdJGgZpj4k.003.mp4 0.585348 0.616446 0.49443 0.605614 0.587017
5 be0DQawtVkE.002.mp4 0.680991 0.56602 0.553915 0.646545 0.64246
6 cLaZxEf1nE4.004.mp4 0.66342 0.551018 0.557912 0.585238 0.587174
7 g24JGYuT74A.004.mp4 0.590237 0.399273 0.409554 0.531861 0.507134
8 JZNMxa3OKHY.000.mp4 0.60577 0.523617 0.531137 0.594406 0.57984
9 nvlqJbHk_Lc.003.mp4 0.511002 0.464702 0.390882 0.443663 0.438811
10 _plk5k7PBEg.003.mp4 0.647606 0.610466 0.524718 0.61428 0.606428

[2024-10-10 21:44:08] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.0735 0.0631 0.0914 0.0706 0.0691 0.0735
Accuracy 0.9265 0.9369 0.9086 0.9294 0.9309 0.9265

[2024-10-10 21:44:08] Средняя средних абсолютных ошибок: 0.0735, средняя точность: 0.9265 …

Лог файлы успешно сохранены …

— Время выполнения: 35.328 сек. —

[2]:
True

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

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

  1. Kuroda S., Yamamoto I. Good boss, bad boss, workers’ mental health and productivity: Evidence from Japan // Japan & The World Economy. – 2018. – vol. 48. – pp. 106-118.

Пользователь может установить свои коэффициенты корреляции

[3]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/478675819?token=LuB7L1QsEY0UuSs&filename=colleague_ranking.csv'
df_correlation_coefficients = pd.read_csv(url)
df_correlation_coefficients = pd.DataFrame(
    df_correlation_coefficients.drop(['ID'], axis = 1)
)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[3]:
Score_comparison Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
ID
1 higher -0.0602 0.0471 -0.1070 -0.0832 0.190
2 lower -0.1720 -0.1050 0.0772 0.0703 -0.229

Поиск старшего коллеги

[4]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'major',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'major_colleague_ranking_fi_en', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[4]:
Path OPE CON EXT AGR NNEU Match
Person ID
3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 0.023
7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 0.006
1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 0.002
4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 0.002
10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 -0.002
5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 -0.005
8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 -0.008
6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 -0.011
2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 -0.154
9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 -0.176

Поиск младшего коллеги

[5]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'minor',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'minor_colleague_ranking_fi_en', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[5]:
Path OPE CON EXT AGR NNEU Match
Person ID
9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 -0.004
2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 -0.012
3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 -0.193
7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 -0.205
8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 -0.209
4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 -0.219
6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 -0.222
10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 -0.231
1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 -0.231
5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 -0.236

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

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

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

Пользователь может установить свои коэффициенты корреляции

[6]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients = pd.read_csv(url)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[6]:
Trait EI SN TF JP
ID
1 Openness 0.09 -0.03 -0.14 -0.16
2 Conscientiousness 0.04 -0.04 0.20 0.14
3 Extraversion 0.20 -0.03 0.01 -0.07
4 Agreeableness 0.02 0.05 -0.35 0.03
5 Non-Neuroticism 0.08 0.00 0.16 0.00
[7]:
_b5._colleague_personality_type_match(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = [0.34, 0.56, 0.42, 0.57, 0.56],
    threshold = 0.5,
    out = True
)

_b5._save_logs(df = _b5.df_files_MBTI_colleague_match_, name = 'MBTI_colleague_personality_type_match_en', out = True)

# Optional
df = _b5.df_files_MBTI_colleague_match_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[7]:
Path OPE CON EXT AGR NNEU EI SN TF JP MBTI Match
Person ID
2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 -0.185699 0.017946 0.083205 0.030144 ISTJ 100.0
3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 -0.160520 0.068617 -0.278880 0.053384 ISFJ 75.0
1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 0.047788 0.002056 -0.092138 0.046539 ESFJ 50.0
4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 0.037527 0.002895 -0.081646 0.045425 ESFJ 50.0
7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 0.006447 0.037143 -0.271593 -0.105712 ESFP 25.0
9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 -0.094752 -0.007199 -0.083317 -0.132767 INFP 25.0
5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 0.259041 -0.027361 -0.100093 -0.049093 ENFP 0.0
6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 0.252010 -0.029419 -0.087981 -0.050501 ENFP 0.0
8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 0.239967 -0.025332 -0.090041 -0.042964 ENFP 0.0
10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 0.248447 -0.028874 -0.081294 -0.036454 ENFP 0.0

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

В качестве примера предлагается использование коэффициентов корреляции между персональными качествами личности человека и типами личности MBTI, представленных в статье [1] и кооэффициентов корреляции между типами личности MBTI и персональными растройствами [2].

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

  2. Furnham A. MBTI and aberrant personality traits: dark-side trait correlates of the Myers Briggs type inventory // Psychology. - 2022. - vol. 13(5). - pp 805-815.

Среди персональных расстройста рассматриваются следующие: 1) Параноидное (Paranoid) — Недоверие и подозрительность по отношению к другим; мотивы интерпретируются как злонамеренные. 2) Шизоидное (Schizoid) — Эмоциональная холодность и отстранённость от социальных отношений; безразличие к похвалам и критике. 3) Шизотипическое (Schizotypal) — Странные убеждения или магическое мышление; поведение или речь, которые кажутся странными, эксцентричными или необычными. 4) Антисоциальное (Antisocial) — Пренебрежение к истине; импульсивность и неспособность планировать будущее; нарушение социальных норм. 5) Пограничное (Borderline) — Неуместная злость; нестабильные и интенсивные отношения, которые чередуются между идеализацией и обесцениванием. 6) Истерическое (Histrionic) — Чрезмерная эмоциональность и стремление к вниманию; драматизация, театральное поведение и преувеличенное выражение эмоций. 7) Нарциссическое (Narcissistic) — Высокомерные и надменные манеры или установки, преувеличенное чувство собственной значимости и права на особое отношение. 8) Избегающее (Avoidant) — Социальное избегание; чувство неполноценности и повышенная чувствительность к критике или отказу. 9) Зависимое (Dependent) — Трудности в принятии повседневных решений без чрезмерных советов и уверений; трудности в выражении несогласия из-за страха потери поддержки или одобрения. 10) Обсессивно-компульсивное личностное расстройство (OCPD) — Чрезмерная озабоченность порядком, перфекционизмом, контролем и деталями; стремление к соблюдению правил, часто в ущерб гибкости и эффективности.

Пользователь может установить свои коэффициенты корреляции

[8]:
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients_mbti = pd.read_csv(url)

df_correlation_coefficients_mbti.index.name = 'ID'
df_correlation_coefficients_mbti.index += 1
df_correlation_coefficients_mbti.index = df_correlation_coefficients_mbti.index.map(str)

url = 'https://download.sberdisk.ru/download/file/493644096?token=T309xfzRosPj3v9&filename=df_disorder_correlation.csv'
df_correlation_coefficients_disorders = pd.read_csv(url)

df_correlation_coefficients_disorders.index.name = 'ID'
df_correlation_coefficients_disorders.index += 1
df_correlation_coefficients_disorders.index = df_correlation_coefficients_disorders.index.map(str)
[9]:
_b5._colleague_personality_desorders(
    correlation_coefficients_mbti = df_correlation_coefficients_mbti,
    correlation_coefficients_disorders = df_correlation_coefficients_disorders,
    personality_desorder_number = 3,
    threshold = 0.5,
    out = True
)

_b5._save_logs(df = _b5.df_files_MBTI_disorders_, name = 'MBTI_colleague_personality_type_match_fi_en', out = True)

# Optional
df = _b5.df_files_MBTI_disorders_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[9]:
Path OPE CON EXT AGR NNEU MBTI Disorder 1 Disorder 2 Disorder 3
Person ID
1 2d6btbaNdfo.000.mp4 0.619 0.661 0.478 0.654 0.601 ESFJ Narcissistic (0.034) Paranoid (0.033) Dependent (0.028)
2 300gK3CnzW0.001.mp4 0.462 0.413 0.416 0.498 0.431 ISTJ Schizoid (0.039) Avoidant (0.022) Dependent (0.012)
3 300gK3CnzW0.003.mp4 0.468 0.449 0.372 0.510 0.454 ISFJ Dependent (0.089) Narcissistic (0.087) Paranoid (0.082)
4 4vdJGgZpj4k.003.mp4 0.585 0.616 0.494 0.606 0.587 ESFJ Narcissistic (0.03) Paranoid (0.029) Dependent (0.025)
5 be0DQawtVkE.002.mp4 0.681 0.566 0.554 0.647 0.642 ENFP Paranoid (0.067) Narcissistic (0.064) Histrionic (0.062)
6 cLaZxEf1nE4.004.mp4 0.663 0.551 0.558 0.585 0.587 ENFP Paranoid (0.063) Histrionic (0.06) Narcissistic (0.06)
7 g24JGYuT74A.004.mp4 0.590 0.399 0.410 0.532 0.507 ESFP Narcissistic (0.09) Paranoid (0.085) Dependent (0.074)
8 JZNMxa3OKHY.000.mp4 0.606 0.524 0.531 0.594 0.580 ENFP Paranoid (0.061) Narcissistic (0.058) Histrionic (0.057)
9 nvlqJbHk_Lc.003.mp4 0.511 0.465 0.391 0.444 0.439 INFP Avoidant (0.036) Schizoid (0.035) Narcissistic (0.031)
10 _plk5k7PBEg.003.mp4 0.648 0.610 0.525 0.614 0.606 ENFP Paranoid (0.06) Histrionic (0.057) Narcissistic (0.056)

MuPTA (ru)

[10]:
import os
import pandas as pd

# Импорт модуля
from oceanai.modules.lab.build import Run

# Создание экземпляра класса
_b5 = Run()

corpus = 'mupta'
lang = 'ru'

# Настройка ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000      # Размер загрузки файла из сети за 1 шаг

# Формирование аудиомоделей
res_load_model_hc = _b5.load_audio_model_hc()
res_load_model_nn = _b5.load_audio_model_nn()

# Загрузка весов аудиомоделей
url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)

# Формирование видеомоделей
res_load_model_hc = _b5.load_video_model_hc(lang=lang)
res_load_model_deep_fe = _b5.load_video_model_deep_fe()
res_load_model_nn = _b5.load_video_model_nn()

# Загрузка весов видеомоделей
url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']
res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)

# Загрузка словаря с экспертными признаками (текстовая модальность)
res_load_text_features = _b5.load_text_features()

# Формирование текстовых моделей
res_setup_translation_model = _b5.setup_translation_model() # только для русского языка
res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)
res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)
res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)

# Загрузка весов текстовых моделей
url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']
res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']
res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)

# Формирование модели для мультимодального объединения информации
res_load_avt_model_b5 = _b5.load_avt_model_b5()

# Загрузка весов модели для мультимодального объединения информации
url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']
res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url, force_reload = False)

PATH_TO_DIR = './video_MuPTA/'
PATH_SAVE_VIDEO = './video_MuPTA/test/'

_b5.path_to_save_ = PATH_SAVE_VIDEO

# Загрузка 10 тестовых аудиовидеозаписей из корпуса MuPTA
# URL: https://hci.nw.ru/en/pages/mupta-corpus
domain = 'https://download.sberdisk.ru/download/file/'
tets_name_files = [
    '477995979?token=2cvyk7CS0mHx2MJ&filename=speaker_06_center_83.mov',
    '477995980?token=jGPtBPS69uzFU6Y&filename=speaker_01_center_83.mov',
    '477995967?token=zCaRbNB6ht5wMPq&filename=speaker_11_center_83.mov',
    '477995966?token=B1rbinDYRQKrI3T&filename=speaker_15_center_83.mov',
    '477995978?token=dEpVDtZg1EQiEQ9&filename=speaker_07_center_83.mov',
    '477995961?token=o1hVjw8G45q9L9Z&filename=speaker_19_center_83.mov',
    '477995964?token=5K220Aqf673VHPq&filename=speaker_23_center_83.mov',
    '477995965?token=v1LVD2KT1cU7Lpb&filename=speaker_24_center_83.mov',
    '477995962?token=tmaSGyyWLA6XCy9&filename=speaker_27_center_83.mov',
    '477995963?token=bTpo96qNDPcwGqb&filename=speaker_10_center_83.mov',
]

for curr_files in tets_name_files:
    _b5.download_file_from_url(url = domain + curr_files, out = True)

# Получение прогнозов
_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных
_b5.ext_ = ['.mov'] # Расширения искомых файлов

# Полный путь к файлу с верными предсказаниями для подсчета точности
url_accuracy = _b5.true_traits_['mupta']['googledisk']

_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = lang)

[2024-10-10 21:54:06] Извлечение признаков (экспертных и нейросетевых) из текста …

[2024-10-10 21:54:07] Получение прогнозов и вычисление точности (мультимодальное объединение) …

    10 из 10 (100.0%) … GitHub:nbsphinx-math:OCEANAI\docs\source\user_guide:nbsphinx-math:notebooks\video_MuPTA:nbsphinx-math:test\speaker_27_center_83.mov …

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
Person ID
1 speaker_01_center_83.mov 0.765745 0.696637 0.656309 0.75986 0.494141
2 speaker_06_center_83.mov 0.686514 0.659488 0.611838 0.749739 0.420672
3 speaker_07_center_83.mov 0.671993 0.661216 0.571759 0.704542 0.381026
4 speaker_10_center_83.mov 0.69828 0.59893 0.571893 0.674907 0.35082
5 speaker_11_center_83.mov 0.718329 0.598986 0.573518 0.73201 0.379845
6 speaker_15_center_83.mov 0.670932 0.671055 0.602337 0.708656 0.399527
7 speaker_19_center_83.mov 0.767261 0.658167 0.653367 0.801366 0.463443
8 speaker_23_center_83.mov 0.699837 0.684907 0.616671 0.806437 0.447853
9 speaker_24_center_83.mov 0.710566 0.66299 0.610562 0.711242 0.413696
10 speaker_27_center_83.mov 0.759404 0.712562 0.658357 0.830507 0.507612

[2024-10-10 21:54:07] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.0706 0.0788 0.1328 0.1071 0.1002 0.0979
Accuracy 0.9294 0.9212 0.8672 0.8929 0.8998 0.9021

[2024-10-10 21:54:07] Средняя средних абсолютных ошибок: 0.0979, средняя точность: 0.9021 …

Лог файлы успешно сохранены …

— Время выполнения: 311.791 сек. —

[10]:
True

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

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

  1. Kuroda S., Yamamoto I. Good boss, bad boss, workers’ mental health and productivity: Evidence from Japan // Japan & The World Economy. – 2018. – vol. 48. – pp. 106-118.

Пользователь может установить свои коэффициенты корреляции

[11]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/478675819?token=LuB7L1QsEY0UuSs&filename=colleague_ranking.csv'
df_correlation_coefficients = pd.read_csv(url)
df_correlation_coefficients = pd.DataFrame(
    df_correlation_coefficients.drop(['ID'], axis = 1)
)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[11]:
Score_comparison Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
ID
1 higher -0.0602 0.0471 -0.1070 -0.0832 0.190
2 lower -0.1720 -0.1050 0.0772 0.0703 -0.229

Поиск старшего коллеги

[12]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'major',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'major_colleague_ranking_mupta_ru', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[12]:
Path OPE CON EXT AGR NNEU Match
Person ID
1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 -0.053
10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 -0.055
8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 -0.058
7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 -0.064
4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 -0.211
3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 -0.216
6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 -0.224
5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 -0.224
9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 -0.231
2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 -0.234

Поиск младшего коллеги

[13]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'minor',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'minor_colleague_ranking_mupta_ru', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[13]:
Path OPE CON EXT AGR NNEU Match
Person ID
2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 -0.007
6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 -0.014
9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 -0.016
5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 -0.019
3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 -0.019
4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 -0.025
8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 -0.191
7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 -0.200
10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 -0.212
1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 -0.214

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

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

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

Пользователь может установить свои коэффициенты корреляции

[14]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients = pd.read_csv(url)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[14]:
Trait EI SN TF JP
ID
1 Openness 0.09 -0.03 -0.14 -0.16
2 Conscientiousness 0.04 -0.04 0.20 0.14
3 Extraversion 0.20 -0.03 0.01 -0.07
4 Agreeableness 0.02 0.05 -0.35 0.03
5 Non-Neuroticism 0.08 0.00 0.16 0.00
[15]:
_b5._colleague_personality_type_match(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = [0.34, 0.56, 0.42, 0.57, 0.56],
    threshold = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_MBTI_colleague_match_, name = 'MBTI_colleague_personality_type_match_ru', out = True)

# Optional
df = _b5.df_files_MBTI_colleague_match_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[15]:
Path OPE CON EXT AGR NNEU EI SN TF JP MBTI Match
Person ID
1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 0.203710 -0.032534 -0.306328 -0.048136 ENFP 0.0
2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 0.191874 -0.027843 -0.287812 -0.037850 ENFP 0.0
3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 0.184889 -0.028534 -0.263672 -0.033835 ENFP 0.0
4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 0.186613 -0.028317 -0.264603 -0.047660 ENFP 0.0
5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 0.187565 -0.026114 -0.292012 -0.049261 ENFP 0.0
6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 0.189904 -0.029607 -0.265650 -0.034305 ENFP 0.0
7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 0.205006 -0.028877 -0.323879 -0.052313 ENFP 0.0
8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 0.194016 -0.026570 -0.308738 -0.035061 ENFP 0.0
9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 0.193712 -0.030591 -0.275902 -0.042274 ENFP 0.0
10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 0.285739 -0.029510 -0.166680 -0.042916 ENFP 0.0

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

В качестве примера предлагается использование коэффициентов корреляции между персональными качествами личности человека и типами личности MBTI, представленных в статье [1] и кооэффициентов корреляции между типами личности MBTI и персональными растройствами [2].

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

  2. Furnham A. MBTI and aberrant personality traits: dark-side trait correlates of the Myers Briggs type inventory // Psychology. - 2022. - vol. 13(5). - pp 805-815.

Среди персональных расстройста рассматриваются следующие: 1) Параноидное (Paranoid) — Недоверие и подозрительность по отношению к другим; мотивы интерпретируются как злонамеренные. 2) Шизоидное (Schizoid) — Эмоциональная холодность и отстранённость от социальных отношений; безразличие к похвалам и критике. 3) Шизотипическое (Schizotypal) — Странные убеждения или магическое мышление; поведение или речь, которые кажутся странными, эксцентричными или необычными. 4) Антисоциальное (Antisocial) — Пренебрежение к истине; импульсивность и неспособность планировать будущее; нарушение социальных норм. 5) Пограничное (Borderline) — Неуместная злость; нестабильные и интенсивные отношения, которые чередуются между идеализацией и обесцениванием. 6) Истерическое (Histrionic) — Чрезмерная эмоциональность и стремление к вниманию; драматизация, театральное поведение и преувеличенное выражение эмоций. 7) Нарциссическое (Narcissistic) — Высокомерные и надменные манеры или установки, преувеличенное чувство собственной значимости и права на особое отношение. 8) Избегающее (Avoidant) — Социальное избегание; чувство неполноценности и повышенная чувствительность к критике или отказу. 9) Зависимое (Dependent) — Трудности в принятии повседневных решений без чрезмерных советов и уверений; трудности в выражении несогласия из-за страха потери поддержки или одобрения. 10) Обсессивно-компульсивное личностное расстройство (OCPD) — Чрезмерная озабоченность порядком, перфекционизмом, контролем и деталями; стремление к соблюдению правил, часто в ущерб гибкости и эффективности.

Пользователь может установить свои коэффициенты корреляции

[16]:
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients_mbti = pd.read_csv(url)

df_correlation_coefficients_mbti.index.name = 'ID'
df_correlation_coefficients_mbti.index += 1
df_correlation_coefficients_mbti.index = df_correlation_coefficients_mbti.index.map(str)

url = 'https://download.sberdisk.ru/download/file/493644096?token=T309xfzRosPj3v9&filename=df_disorder_correlation.csv'
df_correlation_coefficients_disorders = pd.read_csv(url)

df_correlation_coefficients_disorders.index.name = 'ID'
df_correlation_coefficients_disorders.index += 1
df_correlation_coefficients_disorders.index = df_correlation_coefficients_disorders.index.map(str)
[17]:
_b5._colleague_personality_desorders(
    correlation_coefficients_mbti = df_correlation_coefficients_mbti,
    correlation_coefficients_disorders = df_correlation_coefficients_disorders,
    personality_desorder_number = 3,
    threshold = 0.5,
    out = True
)

_b5._save_logs(df = _b5.df_files_MBTI_disorders_, name = 'MBTI_colleague_personality_type_match_fi_en', out = True)

# Optional
df = _b5.df_files_MBTI_disorders_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[17]:
Path OPE CON EXT AGR NNEU MBTI Disorder 1 Disorder 2 Disorder 3
Person ID
1 speaker_01_center_83.mov 0.766 0.697 0.656 0.760 0.494 ENFP Narcissistic (0.121) Paranoid (0.119) Dependent (0.083)
2 speaker_06_center_83.mov 0.687 0.659 0.612 0.750 0.421 ENFP Narcissistic (0.114) Paranoid (0.112) Dependent (0.078)
3 speaker_07_center_83.mov 0.672 0.661 0.572 0.705 0.381 ENFP Narcissistic (0.105) Paranoid (0.104) Dependent (0.071)
4 speaker_10_center_83.mov 0.698 0.599 0.572 0.675 0.351 ENFP Narcissistic (0.106) Paranoid (0.105) Dependent (0.071)
5 speaker_11_center_83.mov 0.718 0.599 0.574 0.732 0.380 ENFP Narcissistic (0.115) Paranoid (0.113) Dependent (0.079)
6 speaker_15_center_83.mov 0.671 0.671 0.602 0.709 0.400 ENFP Narcissistic (0.107) Paranoid (0.105) Dependent (0.072)
7 speaker_19_center_83.mov 0.767 0.658 0.653 0.801 0.463 ENFP Narcissistic (0.127) Paranoid (0.125) Dependent (0.087)
8 speaker_23_center_83.mov 0.700 0.685 0.617 0.806 0.448 ENFP Narcissistic (0.12) Paranoid (0.118) Dependent (0.083)
9 speaker_24_center_83.mov 0.711 0.663 0.611 0.711 0.414 ENFP Narcissistic (0.11) Paranoid (0.109) Dependent (0.074)
10 speaker_27_center_83.mov 0.759 0.713 0.658 0.831 0.508 ENFP Paranoid (0.09) Narcissistic (0.088) Histrionic (0.073)

MuPTA (en)

[18]:
import os
import pandas as pd

# Импорт модуля
from oceanai.modules.lab.build import Run

# Создание экземпляра класса
_b5 = Run()

corpus = 'fi'
lang = 'en'

# Настройка ядра
_b5.path_to_save_ = './models' # Директория для сохранения файла
_b5.chunk_size_ = 2000000      # Размер загрузки файла из сети за 1 шаг

# Формирование аудиомоделей
res_load_model_hc = _b5.load_audio_model_hc()
res_load_model_nn = _b5.load_audio_model_nn()

# Загрузка весов аудиомоделей
url = _b5.weights_for_big5_['audio'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_audio_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['audio'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_audio_model_weights_nn(url = url, force_reload = False)

# Формирование видеомоделей
res_load_model_hc = _b5.load_video_model_hc(lang=lang)
res_load_model_deep_fe = _b5.load_video_model_deep_fe()
res_load_model_nn = _b5.load_video_model_nn()

# Загрузка весов видеомоделей
url = _b5.weights_for_big5_['video'][corpus]['hc']['googledisk']
res_load_model_weights_hc = _b5.load_video_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['fe']['googledisk']
res_load_model_weights_deep_fe = _b5.load_video_model_weights_deep_fe(url = url, force_reload = False)

url = _b5.weights_for_big5_['video'][corpus]['nn']['googledisk']
res_load_model_weights_nn = _b5.load_video_model_weights_nn(url = url, force_reload = False)

# Загрузка словаря с экспертными признаками (текстовая модальность)
res_load_text_features = _b5.load_text_features()

# Формирование текстовых моделей
res_setup_translation_model = _b5.setup_translation_model() # только для русского языка
res_setup_translation_model = _b5.setup_bert_encoder(force_reload = False)
res_load_text_model_hc_fi = _b5.load_text_model_hc(corpus=corpus)
res_load_text_model_nn_fi = _b5.load_text_model_nn(corpus=corpus)

# Загрузка весов текстовых моделей
url = _b5.weights_for_big5_['text'][corpus]['hc']['googledisk']
res_load_text_model_weights_hc_fi = _b5.load_text_model_weights_hc(url = url, force_reload = False)

url = _b5.weights_for_big5_['text'][corpus]['nn']['googledisk']
res_load_text_model_weights_nn_fi = _b5.load_text_model_weights_nn(url = url, force_reload = False)

# Формирование модели для мультимодального объединения информации
res_load_avt_model_b5 = _b5.load_avt_model_b5()

# Загрузка весов модели для мультимодального объединения информации
url = _b5.weights_for_big5_['avt'][corpus]['b5']['googledisk']
res_load_avt_model_weights_b5 = _b5.load_avt_model_weights_b5(url = url)

PATH_TO_DIR = './video_MuPTA/'
PATH_SAVE_VIDEO = './video_MuPTA/test/'

_b5.path_to_save_ = PATH_SAVE_VIDEO

# Загрузка 10 тестовых аудиовидеозаписей из корпуса MuPTA
# URL: https://hci.nw.ru/en/pages/mupta-corpus
domain = 'https://download.sberdisk.ru/download/file/'
tets_name_files = [
    '477995979?token=2cvyk7CS0mHx2MJ&filename=speaker_06_center_83.mov',
    '477995980?token=jGPtBPS69uzFU6Y&filename=speaker_01_center_83.mov',
    '477995967?token=zCaRbNB6ht5wMPq&filename=speaker_11_center_83.mov',
    '477995966?token=B1rbinDYRQKrI3T&filename=speaker_15_center_83.mov',
    '477995978?token=dEpVDtZg1EQiEQ9&filename=speaker_07_center_83.mov',
    '477995961?token=o1hVjw8G45q9L9Z&filename=speaker_19_center_83.mov',
    '477995964?token=5K220Aqf673VHPq&filename=speaker_23_center_83.mov',
    '477995965?token=v1LVD2KT1cU7Lpb&filename=speaker_24_center_83.mov',
    '477995962?token=tmaSGyyWLA6XCy9&filename=speaker_27_center_83.mov',
    '477995963?token=bTpo96qNDPcwGqb&filename=speaker_10_center_83.mov',
]

for curr_files in tets_name_files:
    _b5.download_file_from_url(url = domain + curr_files, out = True)

# Получение прогнозов
_b5.path_to_dataset_ = PATH_TO_DIR # Директория набора данных
_b5.ext_ = ['.mov'] # Расширения искомых файлов

# Полный путь к файлу с верными предсказаниями для подсчета точности
url_accuracy = _b5.true_traits_['mupta']['googledisk']

_b5.get_avt_predictions(url_accuracy = url_accuracy, lang = lang)

[2024-10-10 22:04:06] Извлечение признаков (экспертных и нейросетевых) из текста …

[2024-10-10 22:04:06] Получение прогнозов и вычисление точности (мультимодальное объединение) …

    10 из 10 (100.0%) … GitHub:nbsphinx-math:OCEANAI\docs\source\user_guide:nbsphinx-math:notebooks\video_MuPTA:nbsphinx-math:test\speaker_27_center_83.mov …

Path Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
Person ID
1 speaker_01_center_83.mov 0.59561 0.542967 0.440668 0.589769 0.515306
2 speaker_06_center_83.mov 0.661347 0.673973 0.603208 0.64543 0.6431
3 speaker_07_center_83.mov 0.439868 0.465049 0.284547 0.422551 0.396058
4 speaker_10_center_83.mov 0.47715 0.502563 0.373686 0.441372 0.424637
5 speaker_11_center_83.mov 0.403292 0.344359 0.317304 0.422228 0.384346
6 speaker_15_center_83.mov 0.581837 0.562177 0.504623 0.602169 0.522254
7 speaker_19_center_83.mov 0.510444 0.448468 0.425599 0.451861 0.447891
8 speaker_23_center_83.mov 0.500526 0.541376 0.308529 0.441178 0.452412
9 speaker_24_center_83.mov 0.427677 0.511355 0.301078 0.434281 0.442301
10 speaker_27_center_83.mov 0.566414 0.659169 0.434059 0.59122 0.579172

[2024-10-10 22:04:06] Точность по отдельным персональным качествам личности человека …

Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism Mean
Metrics
MAE 0.1632 0.1621 0.176 0.2589 0.1122 0.1745
Accuracy 0.8368 0.8379 0.824 0.7411 0.8878 0.8255

[2024-10-10 22:04:06] Средняя средних абсолютных ошибок: 0.1745, средняя точность: 0.8255 …

Лог файлы успешно сохранены …

— Время выполнения: 302.368 сек. —

[18]:
True

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

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

  1. Kuroda S., Yamamoto I. Good boss, bad boss, workers’ mental health and productivity: Evidence from Japan // Japan & The World Economy. – 2018. – vol. 48. – pp. 106-118.

Пользователь может установить свои коэффициенты корреляции

[19]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/478675819?token=LuB7L1QsEY0UuSs&filename=colleague_ranking.csv'
df_correlation_coefficients = pd.read_csv(url)
df_correlation_coefficients = pd.DataFrame(
    df_correlation_coefficients.drop(['ID'], axis = 1)
)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[19]:
Score_comparison Openness Conscientiousness Extraversion Agreeableness Non-Neuroticism
ID
1 higher -0.0602 0.0471 -0.1070 -0.0832 0.190
2 lower -0.1720 -0.1050 0.0772 0.0703 -0.229

Поиск старшего коллеги

[20]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'major',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'major_colleague_ranking_mupta_en', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[20]:
Path OPE CON EXT AGR NNEU Match
Person ID
10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 0.091
8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 0.080
1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 0.073
7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 0.015
2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 -0.004
6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 -0.013
5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 -0.139
3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 -0.164
4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 -0.172
9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 -0.175

Поиск младшего коллеги

[21]:
# Список оценок персональных качеств личности целевого человека
target_scores = [0.527886, 0.522337, 0.458468, 0.51761, 0.444649]

_b5._colleague_ranking(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = target_scores,
    colleague = 'minor',
    equal_coefficients = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_colleague_, name = 'minor_colleague_ranking_mupta_en', out = True)

# Опционно
df = _b5.df_files_colleague_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[21]:
Path OPE CON EXT AGR NNEU Match
Person ID
9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 0.014
3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 0.005
4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 -0.001
5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 -0.004
7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 -0.195
6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 -0.198
2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 -0.240
8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 -0.260
1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 -0.283
10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 -0.304

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

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

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

Пользователь может установить свои коэффициенты корреляции

[22]:
# Загрузка датафрейма с коэффициентами корреляции
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients = pd.read_csv(url)

df_correlation_coefficients.index.name = 'ID'
df_correlation_coefficients.index += 1
df_correlation_coefficients.index = df_correlation_coefficients.index.map(str)

df_correlation_coefficients
[22]:
Trait EI SN TF JP
ID
1 Openness 0.09 -0.03 -0.14 -0.16
2 Conscientiousness 0.04 -0.04 0.20 0.14
3 Extraversion 0.20 -0.03 0.01 -0.07
4 Agreeableness 0.02 0.05 -0.35 0.03
5 Non-Neuroticism 0.08 0.00 0.16 0.00
[23]:
_b5._colleague_personality_type_match(
    correlation_coefficients = df_correlation_coefficients,
    target_scores = [0.34, 0.56, 0.42, 0.57, 0.56],
    threshold = 0.5,
    out = False
)

_b5._save_logs(df = _b5.df_files_MBTI_colleague_match_, name = 'MBTI_colleague_personality_type_match_en', out = True)

# Optional
df = _b5.df_files_MBTI_colleague_match_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[23]:
Path OPE CON EXT AGR NNEU EI SN TF JP MBTI Match
Person ID
3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 -0.155235 0.019207 0.050250 0.012514 ISTJ 100.0
5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 -0.152724 0.014281 0.070700 0.025861 ISTJ 100.0
4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 -0.140376 -0.016646 0.250115 0.159620 INTJ 75.0
8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 -0.040020 -0.049474 0.117143 0.004070 INTJ 75.0
9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 -0.122322 -0.020306 0.240365 0.148065 INTJ 75.0
1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 0.040210 0.003122 -0.103169 0.029258 ESFJ 50.0
7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 -0.101987 -0.007200 -0.078923 -0.128220 INFP 25.0
10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 0.048690 -0.000776 -0.066064 0.049778 ENFJ 25.0
2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 0.271478 -0.032624 -0.074766 -0.034321 ENFP 0.0
6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 0.229601 -0.024972 -0.091174 -0.031648 ENFP 0.0

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

В качестве примера предлагается использование коэффициентов корреляции между персональными качествами личности человека и типами личности MBTI, представленных в статье [1] и кооэффициентов корреляции между типами личности MBTI и персональными растройствами [2].

  1. Furnham A. The big five facets and the MBTI: The relationship between the 30 NEO-PI (R) Facets and the four Myers-Briggs Type Indicator (MBTI) scores // Psychology. - 2022. vol. 13(10). - pp. 1504-1516.

  2. Furnham A. MBTI and aberrant personality traits: dark-side trait correlates of the Myers Briggs type inventory // Psychology. - 2022. - vol. 13(5). - pp 805-815.

Среди персональных расстройста рассматриваются следующие: 1) Параноидное (Paranoid) — Недоверие и подозрительность по отношению к другим; мотивы интерпретируются как злонамеренные. 2) Шизоидное (Schizoid) — Эмоциональная холодность и отстранённость от социальных отношений; безразличие к похвалам и критике. 3) Шизотипическое (Schizotypal) — Странные убеждения или магическое мышление; поведение или речь, которые кажутся странными, эксцентричными или необычными. 4) Антисоциальное (Antisocial) — Пренебрежение к истине; импульсивность и неспособность планировать будущее; нарушение социальных норм. 5) Пограничное (Borderline) — Неуместная злость; нестабильные и интенсивные отношения, которые чередуются между идеализацией и обесцениванием. 6) Истерическое (Histrionic) — Чрезмерная эмоциональность и стремление к вниманию; драматизация, театральное поведение и преувеличенное выражение эмоций. 7) Нарциссическое (Narcissistic) — Высокомерные и надменные манеры или установки, преувеличенное чувство собственной значимости и права на особое отношение. 8) Избегающее (Avoidant) — Социальное избегание; чувство неполноценности и повышенная чувствительность к критике или отказу. 9) Зависимое (Dependent) — Трудности в принятии повседневных решений без чрезмерных советов и уверений; трудности в выражении несогласия из-за страха потери поддержки или одобрения. 10) Обсессивно-компульсивное личностное расстройство (OCPD) — Чрезмерная озабоченность порядком, перфекционизмом, контролем и деталями; стремление к соблюдению правил, часто в ущерб гибкости и эффективности.

Пользователь может установить свои коэффициенты корреляции

[24]:
url = 'https://download.sberdisk.ru/download/file/493644095?token=EX7hFxNJhMoLumI&filename=df_mbti_correlation.csv'
df_correlation_coefficients_mbti = pd.read_csv(url)

df_correlation_coefficients_mbti.index.name = 'ID'
df_correlation_coefficients_mbti.index += 1
df_correlation_coefficients_mbti.index = df_correlation_coefficients_mbti.index.map(str)

url = 'https://download.sberdisk.ru/download/file/493644096?token=T309xfzRosPj3v9&filename=df_disorder_correlation.csv'
df_correlation_coefficients_disorders = pd.read_csv(url)

df_correlation_coefficients_disorders.index.name = 'ID'
df_correlation_coefficients_disorders.index += 1
df_correlation_coefficients_disorders.index = df_correlation_coefficients_disorders.index.map(str)
[25]:
_b5._colleague_personality_desorders(
    correlation_coefficients_mbti = df_correlation_coefficients_mbti,
    correlation_coefficients_disorders = df_correlation_coefficients_disorders,
    personality_desorder_number = 3,
    threshold = 0.5,
    out = True
)

_b5._save_logs(df = _b5.df_files_MBTI_disorders_, name = 'MBTI_colleague_personality_type_match_fi_en', out = True)

# Optional
df = _b5.df_files_MBTI_disorders_.rename(columns = {'Openness':'OPE', 'Conscientiousness':'CON', 'Extraversion': 'EXT', 'Agreeableness': 'AGR', 'Non-Neuroticism': 'NNEU'})
columns_to_round = df.columns[1:6]
df[columns_to_round] = df[columns_to_round].apply(lambda x: [round(i, 3) for i in x])
df
[25]:
Path OPE CON EXT AGR NNEU MBTI Disorder 1 Disorder 2 Disorder 3
Person ID
1 speaker_01_center_83.mov 0.596 0.543 0.441 0.590 0.515 ESFJ Narcissistic (0.037) Paranoid (0.036) Dependent (0.03)
2 speaker_06_center_83.mov 0.661 0.674 0.603 0.645 0.643 ENFP Paranoid (0.061) Histrionic (0.06) Narcissistic (0.057)
3 speaker_07_center_83.mov 0.440 0.465 0.285 0.423 0.396 ISTJ Schizoid (0.033) Avoidant (0.019) Dependent (0.009)
4 speaker_10_center_83.mov 0.477 0.503 0.374 0.441 0.425 INTJ Schizoid (0.03) OCPD (0.021) Avoidant (0.017)
5 speaker_11_center_83.mov 0.403 0.344 0.317 0.422 0.384 ISTJ Schizoid (0.032) Avoidant (0.018) Dependent (0.01)
6 speaker_15_center_83.mov 0.582 0.562 0.505 0.602 0.522 ENFP Paranoid (0.06) Narcissistic (0.057) Histrionic (0.054)
7 speaker_19_center_83.mov 0.510 0.448 0.426 0.452 0.448 INFP Schizoid (0.036) Avoidant (0.036) Narcissistic (0.03)
8 speaker_23_center_83.mov 0.501 0.541 0.309 0.441 0.452 INTJ OCPD (0.012) Schizoid (0.01) Avoidant (0.006)
9 speaker_24_center_83.mov 0.428 0.511 0.301 0.434 0.442 INTJ Schizoid (0.026) OCPD (0.02) Avoidant (0.015)
10 speaker_27_center_83.mov 0.566 0.659 0.434 0.591 0.579 ENFJ Narcissistic (0.026) Paranoid (0.026) Dependent (0.021)