Data Science Simplified: 5 основных задач NLP, в которых используется Hugging Face

Data Science Simplified Программирование и разработка

Hugging Face — компания, занимающаяся разработкой технологий НЛП и демократизацией искусственного интеллекта с помощью технологий естественного языка. Их команды изменили наш подход к НЛП, предоставив простые для понимания архитектуры языковых моделей.

Конвейер Hugging Face Transformers — это простой способ выполнять различные задачи НЛП. Его можно использовать для решения множества проектов НЛП с использованием самых современных стратегий и технологий.

Сегодня я хочу познакомить вас с конвейером Hugging Face, показывая вам 5 основных задач, которые вы можете решить с помощью их инструментов.

Анализ настроений

Анализ тональности относится к классификации данного текста с ПОЛОЖИТЕЛЬНЫМИ или ОТРИЦАТЕЛЬНЫМИ ярлыками на основе их настроения с заданной оценкой вероятности.

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

nlp = pipeline(«sentiment-analysis»)
#First Sentence
result = nlp(«I love trekking and yoga.»)[0]
print(f»label: {result[‘label’]}, with score: {round(result[‘score’], 4)}»)
#Second sentence
result = nlp(«Racial discrimination should be outright boycotted.»)[0]
print(f»label: {result[‘label’]}, with score: {round(result[‘score’], 4)}»)

Результат первого предложения:

label: POSITIVE, with score: 0.9992

Результат для второго предложения:

label: NEGATIVE, with score: 0.9991

Ответ на вопрос

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

Ниже в качестве контекста дан абзац о простых числах, и в зависимости от контекста задаются 2 вопроса. Этот контекстный абзац взят из базы данных SQuAD.

nlp = pipeline(«question-answering»)
context = r»»»
The property of being prime (or not) is called primality.
A simple but slow method of verifying the primality of a given number n is known as trial division.
It consists of testing whether n is a multiple of any integer between 2 and itself.
Algorithms much more efficient than trial division have been devised to test the primality of large numbers.
These include the Miller–Rabin primality test, which is fast but has a small probability of error, and the AKS primality test, which always produces the correct answer in polynomial time but is too slow to be practical.
Particularly fast methods are available for numbers of special forms, such as Mersenne numbers.
As of January 2016, the largest known prime number has 22,338,618 decimal digits.
«»»
#Question 1
result = nlp(question=»What is a simple method to verify primality?», context=context)
print(f»Answer: ‘{result[‘answer’]}'»)
#Question 2
result = nlp(question=»As of January 2016 how many digits does the largest known prime consist of?», context=context)
print(f»Answer: ‘{result[‘answer’]}'»)

Ответ на первый вопрос:

Answer: 'trial division'

Ответ на второй вопрос:

Answer: '22,3338,618'

Генерация текста

Генерация текста — одна из самых популярных задач НЛП. GPT-3 — это тип модели генерации текста, которая генерирует текст на основе приглашения ввода.

Ниже мы сгенерируем текст на основе приглашения A person must always work hard and. Затем модель выдаст ответ в виде короткого абзаца. Как вы увидите, результат не очень согласован, потому что у модели меньше параметров.

text_generator = pipeline(«text-generation»)
text= text_generator(«A person must always work hard and», max_length=50, do_sample=False)[0]
print(text[‘generated_text’])

Вывод для приведенного выше кода:

A person must always work hard and be prepared to do so.

The following are some of the things that you should do to help yoursefl:

1. Be prepared to work hard.

2. Be prepared to work hard.

Обобщение

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

summarizer = pipeline(«summarization»)
ARTICLE = «»»The Apollo program, also known as Project Apollo, was the third United States human spaceflight program carried out by the National Aeronautics and Space Administration (NASA), which accomplished landing the first humans on the Moon from 1969 to 1972.
First conceived during Dwight D. Eisenhower’s administration as a three-man spacecraft to follow the one-man Project Mercury which put the first Americans in space,
Apollo was later dedicated to President John F. Kennedy’s national goal of «landing a man on the Moon and returning him safely to the Earth» by the end of the 1960s, which he proposed in a May 25, 1961, address to Congress.
Project Mercury was followed by the two-man Project Gemini (1962–66).
The first manned flight of Apollo was in 1968.
Apollo ran from 1961 to 1972, and was supported by the two-man Gemini program which ran concurrently with it from 1962 to 1966.
Gemini missions developed some of the space travel techniques that were necessary for the success of the Apollo missions.
Apollo used Saturn family rockets as launch vehicles.
Apollo/Saturn vehicles were also used for an Apollo Applications Program, which consisted of Skylab, a space station that supported three manned missions in 1973–74, and the Apollo–Soyuz Test Project, a joint Earth orbit mission with the Soviet Union in 1975.
 «»»
summary=summarizer(ARTICLE, max_length=130, min_length=30, do_sample=False)[0]
print(summary[‘summary_text’])

Резюме, созданное для вышеприведенного абзаца:

The Apollo program, also known as Project Apollo, was the third U.S. human spaceflight program carried out by the National Aeronautics and Space Administration (NASA) The first manned flight of Apollo was in 1968. The program was dedicated to President Kennedy's national goal of "landing a man on the Moon and returning him safely to the Earth"

Перевод

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

translator = pipeline(«translation_en_to_de»)
print(translator(«A great obstacle to happiness is to expect too much happiness.», max_length=40)[0][‘translation_text’])

Перевод предложения:

Ein großes Hindernis für das Glück besteht darin, zu viel Glück zu erwarten. 

Что учить дальше

НЛП — мощный инструмент, и ему есть чему поучиться. Если вы заинтересованы в самостоятельном изучении НЛП или разработке проектов с использованием Hugging Face, подумайте о том, чтобы начать со следующих концепций:

  • Вложения
  • Языковые модели
  • Двунаправленный LSTM
  • Модели Seq2Seq
Читайте также:  Алгоритмы 101: как реализовать обход дерева в JavaScript

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

Оцените статью
bestprogrammer.ru
Добавить комментарий