Авторы: Адитья Шарма, Приянка Соханлал Джайн, Пранджал Верма, Рохан Шарма.

Этот блог создается и поддерживается студентами программы магистра наук в области профессиональных компьютерных наук в Университете Саймона Фрейзера в рамках их курса обучения. Чтобы узнать больше об этой уникальной программе, посетите {sfu.ca/computing/mpcs}.

Представьте себе: вы застряли в бесконечной петле обратной связи, где каждый раз, когда вы пытаетесь высказать свое мнение о продукте или услуге, они просто исчезают в бездне. Это как пытаться оставить сообщение в бутылке посреди океана — никогда не знаешь, доберется ли оно до берега. Но благодаря сочетанию технологии блокчейн и обработки естественного языка (NLP) блюз обратной связи остался в прошлом! Сочетание защищенной от несанкционированного доступа системы реестра блокчейна и языковой магии НЛП делает отправку и получение отзывов проще простого (а давайте будем честными, кто не любит пироги?). Так что пристегнитесь, пришло время покинуть пустыню обратной связи и присоединиться к миру безопасных и эффективных систем обратной связи.

Действительно ли нам нужно это приложение?

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

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

Что мы хотим сделать

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

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

Много громких технических слов, верно? Шифрование… Хеширование… Алгоритмы подписи… НЛП… Блокчейн….

Не волнуйтесь! Мы вас прикрыли 😊

Приготовьтесь к безумной поездке, ребята, поскольку мы отправляемся в путешествие в интригующие сферы блокчейна и НЛП! Пристегните ремни и держитесь крепче, потому что скоро все станет веселым и познавательным одновременно!

Устаревшая централизация против волшебства блокчейна: обновите сейчас!

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

Раскрытие возможностей блокчейна и НЛП для безопасной и надежной обратной связи

Блокчейн: шериф обратной связи

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

Для создания системы обратной связи на основе блокчейна разработаны три ключевые модели. Первая модель предназначена для хранения и синхронизации записей обратной связи, чтобы предотвратить любую фабрикацию или изменение данных. Затем следует реализация криптографии на эллиптических кривых (ECC) для защиты данных и предотвращения доступа третьих лиц. Кроме того, создается модель учетных данных пользователя для идентификации и аутентификации пользователей, предоставляющих отзывы. Эта модель помечает обратную связь как положительную или отрицательную.

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

Использование криптографии на эллиптических кривых (ECC) в системе обратной связи обеспечивает безопасную цифровую идентификацию. Это тип криптографии с открытым ключом, основанный на алгебраической структуре эллиптических кривых над конечными полями. Этот метод более эффективен с точки зрения пространства и времени по сравнению с другими методами шифрования с открытым ключом и использует уравнения эллиптических кривых вместо простых чисел. Алгоритм цифровой подписи на эллиптических кривых (ECDSA) гарантирует, что транзакции выполняются законным пользователем.

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

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

Эмоциональная информация с анализом настроений

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

Рабочий процесс анализа настроений можно разбить на несколько этапов, как показано на рисунке ниже.

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

Реализация

Блок-схема ниже представляет собой основной рабочий процесс системы. Основные шаги будут объяснены далее.

ШАГ 1. Отправка отзыва

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

Перед отправкой отзывов создается цифровая подпись с использованием алгоритма цифровой подписи на эллиптических кривых (ECDSA) из закрытого ключа пользователя и хешированных данных. Эта подпись действует как форма аутентификации и помогает обеспечить целостность полученных данных. Впоследствии это подтверждается с использованием открытого ключа пользователя и подписи, чтобы гарантировать, что пользователь авторизован и что данные не были подделаны. При использовании этого метода процесс отправки отзывов является безопасным и гарантируется аутентификация пользователя. Алгоритм цифровой подписи приведен ниже.

Ниже приведен псевдокод для проверки подписи ECC.

1. Decrypt signature to find H1
2. Hash feedback to find H2
3. If H1 equals H2
      Store feedback
4. Else
      Reject feedback

ШАГ 2: БЛОКЧЕЙН

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

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

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

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

Ниже приведены некоторые псевдокоды, дающие обзор всего приложения.

Это рассчитано на то, чтобы добыть корень Меркла в блокчейне.

1. Set Nonce to 0 and Count to 5
2. Set pattern "00000" as Pat
3. Repeat the following steps until a certain condition is met:
      Combine previous block hash, Merkle hash, Nonce, and block timestamp
4. Hash the combined values to get hash_val
5. If the first 5 characters of hash_val are equal to Pat
      Break the loop
6. Else
      Increase Nonce by 1
7. End loop

Создание корня Merkle

1. Add each review in the feedback as a leaf to the tree
2. Build the tree using "Make_tree()" function
3. Get the root of the tree as the Merkle hash (Merkle_hash)
4. Return Merkle_hash

Создание блока в системе блокчейн

1. For each port in a list of ports:
2. If the current port is not equal to the given port number (port_no) 
      Create a block using the given information (blockNo, prevH, hashVal, merkleH, portNo, blockTimestamp) on that port
3. End loop

Проверка несанкционированного доступа в блокчейне путем проверки целостности каждого блока

1. Set a counter for tampered blocks to 0
2. Loop through each block in a range of number of blocks: 
      a) Obtain the block object through port number
      b) Get all reviews in the block
      c) Confirm every review by computing the Merkle root again and keeping it in calcMerkleH
      d) If the merkle root in the block (b.merkleH) matches the calculated one (calcMerkleH)
            Mark the block as verified
      e) Else
            Mark the block as tampered
            Increase the tampered blocks counter
4. If the tampered blocks counter is greater 0
      Return the port number and status "Tampered"
5. Else
      Return the port number and status "Not Tampered"

Проверка целостности блокчейна, хранящегося на нескольких «портах».

1. Initialize a variable "max_len" to 0.
2. Initialize an empty list "tampered ports".
3. Loop through all the ports.
4. For each port, call the "verify" function to check the status of the port and store the result in "verified_port" and "status".
5. If the status is "Not Corrupted", check the number of blocks in the port and store it in "block_len".
6. If "block_len" is greater than or equal to "max_len", update "max_len" with "block_len".
7. If the status is "Corrupted", append the port to the list "tamperedPorts".
8. Initialize a variable "availablePort" to None.
9. Loop through all the ports again.
10. If the port is not in the list "tamperedPorts", check the number of blocks in the port and store it in "block_len".
11. If "block_len" is not equal to "max_len", append the port to the list "tamperedPorts".
12. If "block_len" is equal to "max_len", set "availablePort" to the current port.
13. End the loop.
14. Loop through all the "tampered_ports".
15. For each port, erase the current blockchain and duplicate the blockchain from "availablePort

ШАГ 3: АНАЛИЗ НАСТРОЕНИЙ

Анализ настроений — это процесс, используемый для выявления эмоций и мнений, выраженных в письменном тексте, таком как отзывы клиентов, сообщения в социальных сетях или онлайн-обзоры. Цель анализа настроений — определить, является ли отношение автора к конкретному предмету положительным, отрицательным или нейтральным, и предоставить ценную информацию организациям, использующим НЛП!

Модель анализа настроений, используемая в этом исследовании, является мощным инструментом для понимания эмоций и мнений, выраженных учащимися в своих отзывах. Набор данных отзывов студентов, который использовался для построения этой модели, был собран с веб-сайта Kaggle.com. Этот набор данных чрезвычайно богат и дает всестороннее представление о чувствах, выраженных студентами. Он содержит около 10 000 строк данных, каждая из которых состоит из информации об отзывах и настроениях. Столбец настроений имеет решающее значение, поскольку он классифицирует чувства, выраженные в отзывах пользователей. Столбец настроений разделен на две категории: 1 (положительное) и 0 (отрицательное).

Natural Language Toolkit (NLTK) — это широко используемая библиотека для задач обработки естественного языка (NLP). Это комплексный набор библиотек и инструментов, обеспечивающий удобный и эффективный способ выполнения задач НЛП.

В этом исследовании пакет NLTK используется для предварительной обработки данных отзывов студентов. Процесс предварительной обработки является критическим шагом в обеспечении того, чтобы данные были чистыми, свободными от ненужной информации и готовыми к анализу. Для улучшения процесса предварительной обработки пакет NLTK используется в сочетании с дополнительными библиотеками, такими как RegexTokenizer и Porter Stemmer. Библиотека RegexTokenizer используется для токенизации данных в отдельные слова, а библиотека Porter Stemmer используется для определения корней, что включает в себя преобразование слов в их корневую форму.

Процесс предварительной обработки является важным шагом в обеспечении того, чтобы данные были пригодны для анализа. Первым шагом в процессе предварительной обработки является удаление стоп-слов. Стоп-слова — это слова, которые не несут особого смысла и могут негативно повлиять на анализ. Примеры стоп-слов включают «the», «a» и «of». Следующим шагом является удаление знаков препинания, которые также могут повлиять на анализ. Затем текст преобразуется в нижний регистр, чтобы слова не рассматривались как разные объекты из-за использования заглавных букв. Наконец, стемминг выполняется для приведения слов к их корневой форме.

Чтобы сделать процесс предварительной обработки более управляемым и эффективным, создается вспомогательная функция. Вспомогательная функция выполняет все ключевые шаги процесса предварительной обработки и упрощает этот процесс для пользователя. Это позволяет пользователю сосредоточиться на анализе, а не беспокоиться о процессе предварительной обработки. Использование пакета NLTK, библиотеки RegexTokenizer, библиотеки Porter Stemmer и вспомогательной функции делает процесс предварительной обработки быстрым, эффективным и точным.

Более того, использование пакета NLTK совместно с дополнительными библиотеками, такими как RegexTokenizer и Porter Stemmer, обеспечивает комплексное и эффективное решение задач НЛП. Библиотека RegexTokenizer используется для токенизации данных в отдельные слова, что является важным шагом в НЛП. Библиотека Porter Stemmer используется для определения стемминга — метода, используемого для приведения слов к их корневой форме. Это важный шаг в НЛП, поскольку он помогает уменьшить размерность данных, облегчая их анализ. Данные тестирования состояли примерно из 4500 строк, и мы получили точность 81% при прогнозировании категорий отзывов учащихся.

import nltk
from nltk.tokenize import RegexpTokenizer
from nltk.stem import PorterStemmer
from nltk.corpus import stopwords

# Load student feedback dataset
student_feedback = pd.read_csv("student_feedback.csv")

# Initialize RegexTokenizer and PorterStemmer
tokenizer = RegexpTokenizer(r'\w+')
stemmer = PorterStemmer()

# Define preprocessing function
def preprocess_reviews(review):
    # Convert to lowercase
    review = review.lower()
    # Tokenize review
    tokens = tokenizer.tokenize(review)
    # Remove stop words
    filtered_tokens = [token for token in tokens if token not in stopwords.words('english')]
    # Perform stemming
    stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]
    return " ".join(stemmed_tokens)

# Apply preprocessing function to each review in the dataset
student_feedback['review'] = student_feedback['review'].apply(preprocess_reviews)

Модель анализа настроений — это супергерой, который расшифровывает отзывы и эмоции учащихся. С NLTK, RegexTokenizer, Porter Stemmer и вспомогательной функцией в качестве помощников предварительная обработка выполняется быстро, эффективно и точно. Набор данных отзывов студентов Kaggle предоставляет ценную информацию о мнениях студентов, например, о поиске горшочка с золотом!

ЗАКЛЮЧЕНИЕ

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

Ссылки

  1. https://blockgeeks.com/guides/what-is-blockchain-technology/
  2. https://www.simplilearn.com/tutorials/blockchain-tutorial/merkle-tree-in-blockchain
  3. Б. Гипп, К. Брайтингер, Н. Мушке и Дж. Бил, «CryptSubmit: представление защищенной отправки рукописей с отметками времени и обратной связи с рецензентами с использованием блокчейна, Совместная конференция ACM/IEEE по цифровым библиотекам (JCDL), 2017 г., Торонто, Онтарио, Канада, 2017, стр. 1–4, doi: 10.1109/JCDL.2017.7991588.»
  4. Т. Паттен и П. Джейкобс, «Обработка естественного языка, в IEEE Expert, vol. 9, нет. 1, стр. 35-, февраль 1994 г., doi: 10.1109/64.295134.»