Natural — это библиотека JavaScript для обработки естественного языка (NLP), одна из многих библиотек JavaScript для машинного обучения, набирающих обороты в эпоху искусственного интеллекта. НЛП, в частности, заполняет пробел между компьютерным пониманием и человеческим языком. Он обычно используется при сортировке отзывов клиентов, анализе твитов, для помощников поиска, таких как автозаполнение, и при разметке контента. Простые чат-боты, например те, которые всплывающие окна предлагают помощь с отслеживанием посылок или изменением заказа, также используют НЛП. Эти чат-боты токенизируют (подробнее об этом позже) сообщение, определяют намерение и автоматически отвечают с решением (ну… в большинстве случаев…).
К настоящему моменту мы все так или иначе знакомы с НЛП (ChatGPT и Клод оба используют НЛП). Но не все инструменты НЛП одинаковы. Natural — это основанный на правилах инструмент, обеспечивающий базовые функции НЛП; вы можете думать о библиотеке Natural как об инструменте для простых строительных блоков языковой обработки, таких как разделение предложений на слова, выяснение корней слов и сортировка текста по категориям. Natural — хороший инструмент, когда вам нужно что-то легкое, понятное и быстрое в сборке.
Модели NLP, используемые такими инструментами, как ChatGPT и Claude, используют NLP, но не так, как это делает приложение, использующее библиотеку Natural. Подобные ChatGPT используют расширенное НЛП, которое опирается на массивные нейронные сети, которые понимают контекст, нюансы и языковые модели за пределами инструментов, основанных на правилах; и их непросто понять или построить на их основе. Так что, если вам нужно что-то простое и цельное, Natural — лучший вариант.
Давайте рассмотрим некоторые основные функции Natural. Вы сами увидите, насколько легко работать с этим базовым инструментом НЛП.
Прежде чем приступить к работе, вы должны иметь базовое представление о JavaScript и установить node.js на свой компьютер.
В вашей IDE откройте новый файл и создайте проект со следующим кодом:
Затем мы готовы инициализировать проект Node и установить Natural:
Вы можете написать весь этот код на одной странице. Сначала создайте новую страницу.
Затем вы можете запускать код каждый раз с помощью этой команды терминала:
Токенизация текста с помощью естественной библиотеки
Компьютеры не могут понимать целые предложения — вместо этого они читают текст как необработанные символы, а сами по себе необработанные символы не имеют значения. Токенизация — это процесс разделения предложений на слова; он разбивает предложение на отдельные слова или фразы. Это дает компьютеру более удобные для анализа фрагменты, помогая ему распознавать закономерности, значения и взаимосвязи.
Поисковые системы используют токенизацию, чтобы разбить запрос на отдельные слова и найти наиболее релевантные результаты.
Выход:
[
‘Splitting’, ‘this’, ‘sentence’,
‘is’, ‘like’, ‘translating’,
‘from’, ‘human’, ‘to’,
‘computer’
]
123456
[ ‘Splitting’, ‘this’, ‘sentence’, ‘is’, ‘like’, ‘translating’, ‘from’, ‘human’, ‘to’, ‘computer’]
Понимание токенизации предложений
Токенизация предложений помогает компьютеру понимать полные предложения, а не сами слова. Для этого он разбивает блок текста на отдельные предложения, затем читает слова и понимает каждое слово в контексте предложения. Это помогает компьютеру обобщать текст и точнее извлекать информацию.
Выход:
[
‘These words mean something as a group.’,
‘This is a different group with new words.’,
«Here’s one more!»
]
12345
[ ‘These words mean something as a group.’, ‘This is a different group with new words.’, «Here’s one more!»]
Как привести слова к их корневой форме
Стемминг сводит слово к его корню. Это позволяет компьютеру рассматривать все похожие слова как одинаковые. Стемминг улучшает поиск и анализ. Такие слова, как «чтение», «читает» и «читать», имеют один и тот же корень «читать». При стемминге компьютер рассматривает все эти слова как одинаковые. Без стемминга компьютер рассматривал бы каждое слово как совершенно другое.
Natural использует PorterStemmer для выдерживания; это алгоритм, встроенный в библиотеку Natural. Он использует набор правил для удаления общих окончаний слов (таких как -ing, -s и -ed), чтобы сократить слово до его корня. Вам не нужно писать какую-либо логику.
Выход:
читать читать читать 123 читать читать читать
Реализация классификации текста
Классификация текста автоматически классифицирует текст. Он делает это, просматривая слова, шаблоны и контекст, чтобы определить свою категорию. Библиотека Natural делает это с помощью встроенных классификаторов. Классификаторы, которые он использует чаще всего, — это наивный классификатор Байеса и классификатор логистической регрессии. Наивный байесовский классификатор — это модель машинного обучения, а классификатор логистической регрессии — это скорее статистический классификатор. Эти классификаторы анализируют закономерности и изучают вероятность классификации нового текста.
В отличие от стемминга, вам необходимо обучить классификатор перед категоризацией нового текста. Вы можете обучить модель, указав текст классификатора и категорию, к которой он принадлежит. Вам не нужно обучать классификатор каждому возможному слову в категории. Классификатор имеет встроенные функции для анализа предоставленных вами примеров, изучения слов, связанных с каждой категорией, и расчета вероятностей. После обучения вы можете дать классификатору новый текст, и он спрогнозирует категорию.
Давайте воспользуемся примером разделения электронной почты на спам и входящие сообщения.
Выход:
спам-входящие спам-входящие 1234 спаминбоксспаминбокс
Измерение сходства слов и строк
Мы все лично пострадали от этого… автозамена, проверка правописания и автозаполнение. Чтобы использовать эти функции, компьютер измеряет, насколько одно слово похоже на другое. Сходство слов, также известное как сходство строк, — это способ компьютера сравнить два фрагмента текста и оценить, насколько они близки.
Natural использует алгоритмы расстояния Левенштейна или расстояния Яро-Винклера. Эти алгоритмы основаны на правилах, и вам не нужно предоставлять данные для обучения. Они подсчитывают разницу между буквами или сравнивают порядок букв — чем меньше разница, тем выше балл сходства. Именно так компьютер предлагает исправление или следующие слова в последовательности в зависимости от того, какую функцию вы используете.
Выход:
0.9555555555555556 1 0.9555555555555556
Краткое примечание о выводе:
- 1 означает, что слова идентичны
- 0 означает совершенно другое
- 0,9555555555555556 означает, что эти два слова практически идентичны.
Выполнение проверки орфографии в JavaScript
Такие инструменты, как автозамена, также используют проверку орфографии. Natural сравнивает слово со словарем известных слов (необходимо предоставить словарь известных слов). Если рассматриваемое слово не найдено, проверка орфографии определит его и предложит альтернативы. Те же алгоритмы, которые определяют сходство между словами, помогают и при проверке орфографии.
С помощью метода typoChecker.getCorrections() вам необходимо указать слово и количество возможных совпадений для возврата. Если вы не укажете номер, он предоставит все возможные совпадения.
Выход:
[ ‘elephant’ ]
[ ‘giraffe’ ]
12
[ ‘elephant’ ][ ‘giraffe’ ]
Заключение
Это всего лишь краткое введение в Естественную библиотеку. Это строительные блоки, которые вам понадобятся, чтобы начать создавать свое первое простое приложение для чата или инструмент для обработки текста. Если это руководство показалось вам простым для понимания, возможно, вы готовы приступить к изучению более продвинутых библиотек, таких как компромисс или nlp.js.
ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Джессика Вахтель — писатель-маркетолог для разработчиков в InfluxData, где она создает контент, который помогает сделать мир данных временных рядов более понятным и доступным. Джессика имеет опыт разработки программного обеспечения и технической журналистики. Узнайте больше от Джессики Вахтель