Skip to content

NLP - Natural Language Processing

img.png

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

Пример простого кода на Python для выполнения задачи обработки естественного языка можно рассмотреть на примере анализа тональности текста. Для этого мы можем использовать библиотеку nltk (Natural Language Toolkit) и TextBlob.

Пример кода

python
# Установите необходимые библиотеки
# !pip install nltk
# !pip install textblob

import nltk
from textblob import TextBlob

# Загрузка ресурсов для nltk
nltk.download('punkt')

# Пример текста для анализа
text = "I love programming. It is very exciting and rewarding."

# Создание объекта TextBlob
blob = TextBlob(text)

# Анализ тональности текста
sentiment = blob.sentiment

# Вывод результатов
print(f"Text: {text}")
print(f"Polarity: {sentiment.polarity}, Subjectivity: {sentiment.subjectivity}")
Text: I love programming. It is very exciting and rewarding.
Polarity: 0.4633333333333334, Subjectivity: 0.8666666666666667
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data]   Package punkt is already up-to-date!

Описание кода

  1. Импорт библиотек: Мы импортируем nltk для работы с текстом и TextBlob для анализа тональности.
  2. Загрузка ресурсов: nltk.download('punkt') загружает необходимые ресурсы для токенизации текста.
  3. Пример текста: Мы берем пример текста "I love programming. It is very exciting and rewarding."
  4. Создание объекта TextBlob: Мы создаем объект TextBlob, передавая ему наш текст.
  5. Анализ тональности: Мы получаем тональность текста с помощью метода sentiment объекта TextBlob.
  6. Вывод результатов: Выводим оригинальный текст и результаты анализа тональности.

Результаты анализа

  • Polarity (Полярность): Значение от -1 до 1, где -1 означает отрицательную тональность, 0 — нейтральную, и 1 — положительную.
  • Subjectivity (Субъективность): Значение от 0 до 1, где 0 означает объективность, а 1 — субъективность текста.

Задачи NLP

  1. Токенизация: Разделение текста на слова или предложения.
  2. Частеречная разметка (POS-tagging): Определение частей речи для каждого слова в тексте.
  3. Определение именованных сущностей (NER): Распознавание именованных сущностей, таких как имена людей, места, организации.
  4. Машинный перевод: Перевод текста с одного языка на другой.
  5. Резюмирование текста: Создание кратких версий текстов.

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

Contacts: teffal@mail.ru