{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## Извлечение признаков из текстового сигнала\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden", "tags": [] }, "outputs": [], "source": [ "import os # Взаимодействие с файловой системой\n", "import sys # Доступ к некоторым переменным и функциям Python\n", "\n", "PATH_TO_SOURCE = os.path.abspath(os.path.dirname(globals()['_dh'][0]))\n", "PATH_TO_ROOT = os.path.join(PATH_TO_SOURCE, '..', '..', '..')\n", "\n", "sys.path.insert(0, os.path.abspath(PATH_TO_ROOT))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Импорт необходимых инструментов" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from oceanai.modules.lab.build import Run" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Сборка" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:31] OCEANAI - персональные качества личности человека:**
    Авторы:
        Рюмина Елена [ryumina_ev@mail.ru]
        Рюмин Дмитрий [dl_03.03.1991@mail.ru]
        Карпов Алексей [karpov@iias.spb.su]
    Сопровождающие:
        Рюмина Елена [ryumina_ev@mail.ru]
        Рюмин Дмитрий [dl_03.03.1991@mail.ru]
    Версия: 1.0.0a40
    Лицензия: BSD License

" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_b5 = Run(\n", " lang = 'ru', # Язык\n", " color_simple = '#333', # Цвет обычного текста (шестнадцатеричный код)\n", " color_info = '#1776D2', # Цвет текста содержащего информацию (шестнадцатеричный код)\n", " color_err = '#FF0000', # Цвет текста содержащего ошибку (шестнадцатеричный код)\n", " color_true = '#008001', # Цвет текста содержащего положительную информацию (шестнадцатеричный код)\n", " bold_text = True, # Жирное начертание текста\n", " num_to_df_display = 30, # Количество строк для отображения в таблицах\n", " text_runtime = 'Время выполнения', # Текст времени выполнения\n", " metadata = True # Отображение информации о библиотеке\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Загрузка словаря с экспертными признаками" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:35] Загрузка словаря с экспертными признаками ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:35] Загрузка файла \"LIWC2007.txt\" 100.0% ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.187 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "res_load_text_features = _b5.load_text_features(\n", " force_reload = True, # Принудительная загрузка файла\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Формирование токенизатора и нейросетевой модели машинного перевода (`RU -> EN`)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:40] Формирование токенизатора и нейросетевой модели машинного перевода ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 2.146 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "res_setup_translation_model = _b5.setup_translation_model(\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Формирование токенизатора и нейросетевой модели BERT (`для кодирования слов`)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:48] Формирование токенизатора и нейросетевой модели BERT ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:48] Загрузка файла \"bert-base-multilingual-cased.zip\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:48] Формирование токенизатора и нейросетевой модели BERT ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:48] Загрузка файла \"bert-base-multilingual-cased.zip\"** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:48] Разархивирование архива \"bert-base-multilingual-cased.zip\" ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 1.942 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Настройки ядра\n", "_b5.path_to_save_ = './models' # Директория для сохранения файла\n", "_b5.chunk_size_ = 2000000 # Размер загрузки файла из сети за 1 шаг\n", "\n", "res_setup_translation_model = _b5.setup_bert_encoder(\n", " force_reload = False, # Принудительная загрузка файла\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Процесс извлечения признаков из текста" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 1 (Анализ видефайла (`EN`) с учетом ручной транскрипции)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:54] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:55] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 8964
    Размерность матрицы с нейросетевыми признаками: 104768
    Текст:
        usersdlgithuboceanaidocssourceuser_guidenotebooksglgfb3vfewc004mp4
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.211 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Путь к видеофайлу\n", "path = '/Users/dl/GitHub/OCEANAI/docs/source/user_guide/notebooks/glgfB3vFewc.004.mp4'\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Путь к видеофайлу\n", " asr = False, # Распознавание речи\n", " lang = 'en', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 2 (Анализ видефайла (`EN`) без учета ручной транскрипции)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:22:58] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:22:58] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 8964
    Размерность матрицы с нейросетевыми признаками: 104768
    Текст:
        usersdlgithuboceanaidocssourceuser_guidenotebooksglgfb3vfewc004mp4
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.188 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Путь к видеофайлу\n", "path = '/Users/dl/GitHub/OCEANAI/docs/source/user_guide/notebooks/glgfB3vFewc.004.mp4'\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Путь к видеофайлу\n", " asr = True, # Распознавание речи\n", " lang = 'en', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 3 (Анализ видефайла (`RU`) без учета ручной транскрипции)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:23:00] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:23:00] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 36564
    Размерность матрицы с нейросетевыми признаками: 414768
    Текст:
        usersdlgithuboceanaidocssourceuser_guidenotebookscenter_42mov
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.543 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Путь к текстовому файлу\n", "path = '/Users/dl/GitHub/OCEANAI/docs/source/user_guide/notebooks/center_42.mov'\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Путь к видеофайлу\n", " asr = False, # Распознавание речи\n", " lang = 'ru', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 4 (Анализ текста - `RU`)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:23:03] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:23:04] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 36564
    Размерность матрицы с нейросетевыми признаками: 414768
    Текст:
        на картинке изображены скорее всего друзья которые играют в игру с мячом\n", "это скорее всего происходит где-то в америке возможно в калифорнии на пляже\n", "девушка в топе и в шортах пытается словить мяч также двое парней смотрят один активно думает\n", "как перехватить следующую подачу мяча на заднем фоне видны высокие пальмы стоят дома\n", "небо голубое песок чистый чётко на песке отображаются силуэты людей у парня вдали одеты солнцезащитные очки\n", "он также в шортах и в майке вблизи не видно головы человека он одет в тёмные шорты и в серую футболку
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 1.267 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Текст\n", "path = '''\n", "На картинке изображены скорее всего друзья, которые играют в игру с мячом.\n", "Это скорее всего происходит где-то в Америке, возможно, в Калифорнии на пляже.\n", "Девушка в топе и в шортах пытается словить мяч. Также двое парней смотрят, один активно думает,\n", "как перехватить следующую подачу мяча. На заднем фоне видны высокие пальмы. Стоят дома.\n", "Небо голубое. Песок чистый. Чётко на песке отображаются силуэты людей. У парня вдали одеты солнцезащитные очки,\n", "он также в шортах и в майке. Вблизи не видно головы человека. Он одет в тёмные шорты и в серую футболку.\n", "'''\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Текст\n", " asr = False, # Распознавание речи\n", " lang = 'ru', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 5 (Анализ текста - `EN`)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:23:07] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:23:07] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 8964
    Размерность матрицы с нейросетевыми признаками: 104768
    Текст:
        today says they to for that but right now i am just watching super girl a new images be catching up\n", "and some shows a good say you guys
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.02 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Текст\n", "path = '''\n", "today says they to for that but right now i am just watching super girl a new images be catching up\n", "and some shows a good say you guys\n", "'''\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Текст\n", " asr = False, # Распознавание речи\n", " lang = 'en', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Пример 6 (Анализ текстового файла - `EN`)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "**[2024-10-08 19:23:09] Извлечение признаков (экспертных и нейросетевых) из текста ...** " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**[2024-10-08 19:23:09] Статистика извлеченных признаков из текста:**
    Размерность матрицы экспертных признаков: 8964
    Размерность матрицы с нейросетевыми признаками: 104768
    Текст:
        usersdlgithuboceanaidocssourceuser_guidenotebooksglgfb3vfewc004txt
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "**--- Время выполнения: 0.079 сек. ---**" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Текст\n", "path = '/Users/dl/GitHub/OCEANAI/docs/source/user_guide/notebooks/glgfB3vFewc.004.txt'\n", "\n", "hc_features, nn_features = _b5.get_text_features(\n", " path = path, # Текст\n", " asr = False, # Распознавание речи\n", " lang = 'en', # Выбор языка\n", " show_text = True, # Отображение текста\n", " out = True, # Отображение\n", " runtime = True, # Подсчет времени выполнения\n", " run = True # Блокировка выполнения\n", ")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.11" } }, "nbformat": 4, "nbformat_minor": 4 }