Когда я ступил в неизведанные залы НЛП, мне выпала честь изучить несколько инструментов. Я начал с инструмента IBM Watson, который обладает очень уникальными функциями. Я научился тестировать URL-адреса с помощью Curl. Мне пришлось работать с эмоциями, текстовыми категориями и многими другими аспектами. Он также имеет уникальную функцию понимания естественного языка, которую можно использовать для целей НЛП.
(REF:https://cloud.ibm.com/apidocs/natural-language-understanding#analyze-text)
Я также наткнулся на действительно классную исследовательскую работу GOOGLE LIT, которая представляет собой набор инструментов, написанный на машинописном языке и предположительно являющийся будущим НЛП.
Однако мне больше всего понравился TEXTBLOB.
ВВЕДЕНИЕ
Я считаю, что с огромным ростом потребности в чат-ботах с крупномасштабной онлайн-коммерциализацией (еще больше вызванной добавленной ситуацией с COVID) я нахожу свое сердце более склонным к более надежному инструменту, который может очень пригодиться, особенно для целей анализа настроений и полярности. суждение, помимо бесчисленных функций, таких как распознавание словосочетаний, маркировка частей речи, исправление неправильно написанных слов и т. д.
Почему мне это действительно понравилось?
Некоторые функции TEXTBLOB действительно крутые. Я думаю, что больше всего на свете для меня имеет первостепенное значение легкость, с которой я могу выполнять все задачи, которых хочу достичь в своем уме.
TEXTBLOB помогает мне в этом.
Он содержит несколько утилит от перевода файлов до тегов POS, использования в алгоритмах классификации, n-грамм. Он также использует методы синтаксического анализа и может пригодиться для синтаксического и семантического анализа. С помощью этого инструмента мы можем легко токенизировать слова и предложения.
Основываясь на границах слов и предложений, он может разбивать слова на одинаковые. У него есть действительно классные функции, такие как множественное число, которое может преобразовать список Python во множественное число, а также средства проверки орфографии, чтобы превратить его в надежный интерфейс.
Инструмент для перевода и распознавания языка текста просто огромен.
Я попытался реализовать несколько задач в уме уникальным и крутым способом. Я не особо выделял проект, а сосредоточился на том, чтобы выделить некоторые функции, которые я нашел действительно потрясающими в этом инструменте.
Я попытался реализовать то, что действительно привлекло мое внимание
- Импорт TextBlob
Первым шагом к любой задаче является импорт инструмента.
КОД:-
из textblob импортировать TextBlob
импортировать matplotlib.pyplot как plt
2)Оценка тональности разных слов
Часто в документации мы видим необходимость работать с эмоциями, передаваемыми документом. В этом сценарии вполне возможно использовать инструмент настроений.
КОД:-
импортировать matplotlib.pyplot как plt
l1=[«счастливый», «плохой», «ненавижу», «конкретный», «злой», «глупый»]
l2=[]
для i в диапазоне (len (l1)):
печать (TextBlob (l1 [i]). настроение)
l2.append(TextBlob(l1[i]).настроение.полярность)
число_ячеек = 5
-Чтобы установить количество баров, которые могут иметь значение
plt.figure(figsize=(10,8))
n, bins, patches = plt.hist(l2, num_bins, facecolor='pink')
plt.xlabel('Полярность слов')
plt.ylabel('Количество слов соответствующей полярности')
plt.title('Гистограмма полярности')
plt.show();
ВЫВОД:
Настроение (полярность = 0,8, субъективность = 1,0)
Отношение(полярность=-0,69999999999999998, субъективность=0,6666666666666666)
Отношение(полярность=0,0, субъективность=0,0)
Настроение (полярность = 0,0, субъективность = 0,125)
Отношение(полярность=-0,5, субъективность=1,0)
Отношение(полярность=-0,79999999999999999, субъективность=1,0)
3)ТЕГИНГ POS
Тегирование частей речи является наиболее важной частью любого инструмента НЛП, поскольку именно оно фактически привязывает наш инструмент к разным частям речи.
Код:
text1= «Изучение таблиц — это такая важная задача, и в то же время такая приятная с таким количеством комплексных чисел. Кого волнует время, когда время течет так легко?»
блоб = TextBlob (текст1)
печать (blob.noun_phrases)
печать (blob.теги)
Вывод:
[‘обучение’, ‘важная задача’, ‘комплексные числа’, ‘кто’]
[('Обучение', 'VBG'), ('таблицы', 'NNS'), ('есть', 'VBZ'), ('такой', 'JJ'), ('an', ' DT'), ('важно', 'JJ'), ('задача', 'NN'), ('и', 'CC'), ('пока', 'RB'), ('так', ' RB'), ('приятный', 'JJ'), ('с', 'IN'), ('так', 'RB'), ('много', 'JJ'), ('сложный', ' JJ'), ('числа', 'NNS'), ('Кто', 'WP'), ('заботы', 'ВБЗ'), ('о', 'ВО'), ('время', ' NN'), ('когда', 'WRB'), ('время', 'NN'), ('течет', 'ВБЗ'), ('так', 'РБ'), ('легко', ' РБ')]
(ССЫЛКА:-https://textblob.readthedocs.io/en/dev/)
4)Базовый анализ тональности текста
Попытка понять основное настроение любого фрагмента текста необходима по нескольким причинам, таким как транслитерация текста на несколько языков и оценка эмоций клиентов, когда речь идет о конечных продуктах для бизнеса.
КОД:
text2="Некоторые моменты дороже других"
blob2 = TextBlob(текст2)
печать (blob2.настроение)
ВЫВОД:
Настроение (полярность = 0,5, субъективность = 0,75)
5) Взаимодействие и оценка отзывов клиентов для ресторанной системы.
КОД и вывод:
#@title Введите входное предложение как отлично хорошо хорошо плохо ужасно
text_input1 = "Это плохой ресторан" #@param {type:"string"}
text_input2 = "Это лучший ресторан в городе" #@param {type:"string"}
#используя образец системы отзывов о ресторане
print(TextBlob(text_input1).sentiment», на основе обзора 1)
print(TextBlob(text_input2).sentiment», на основе обзора 2)
если TextBlob(text_input1).sentiment.polarity+TextBlob(text_input2).sentiment.polarity›0:
print("Людям нравится ваш ресторан")
если TextBlob(text_input1).sentiment.polarity+TextBlob(text_input2).sentiment.polarity‹0:
print("Люди ненавидят ваш ресторан")
ВЫВОД:-
Отношение(полярность=-0,69999999999999998, субъективность=0,6666666666666666)
Настроение (полярность = 0,75, субъективность = 0,75)
Ваш ресторан нравится людям
6) Приходим к определениям
Одна идея, которая действительно пришла мне в голову во время выполнения этой задачи, заключалась в том, чтобы на самом деле иметь систему подписей в реальном времени (возможно, с задержкой в 2–3 секунды для текущих вебинаров и основных слов или новых слов, появляющихся с их определениями рядом с подписью).
ВВОД:
из textblob импортировать Word
печать (Слово («счастливый»). Определения)
print(Слово("монах").определения)
print(Word("эмансипация").определения)
ВЫВОД: [‘наслаждающийся или демонстрирующий или отмеченный радостью или удовольствием’, ‘отмеченный удачей’, ‘горячо настроенный действовать или быть полезным’, ‘ярко выраженный и по существу’]
[‘религиозный мужчина, живущий в монастыре и посвятивший себя созерцанию, молитве и работе’, ‘американский джазовый пианист, один из основателей стиля бибоп (1917–1982)’]
[“освобождение кого-то от контроля другого; особенно отказ родителя от власти и контроля над несовершеннолетним ребенком»]
7) Без исправления контекста неправильно составленных слов
Хотя необходимо понимать, принимается ли во внимание прагматика, значительный прогресс достигается, когда речь идет о синтаксисе и семантических правилах, когда дело доходит до этого случая.
КОД:
b = TextBlob("Странно, что я не умею правильно писать по-английски")
печать (б. правильно ())
ВЫВОД:
Это так запрограммировано, что я могу правильно писать по-английски
8)Определение языка
Обнаружение языка на самом деле может быть одним из самых важных требований НЛП. Очень часто, ссылаясь на документы, мы путаем статьи и их языки. Используя это, вы можете убедиться, что ваш веб-сайт, сделанный на французском языке, будет виден вашему английскому коллеге.
ВВОД
b = TextBlob("Die Frau und das Mädchen")#немецкий
печать (b.detect_language())
b2 = TextBlob("Mi nombre es Shounak")#Испанский
печать (b2.detect_language())
b3 = TextBlob("mera naam shounak hai")#хинди
печать (b3.detect_language())
b4 = TextBlob("Aami bombay te thaaki")#бенгальский
печать (b4.detect_language())
b5 = TextBlob("Sehr Gut, Junge, bis Spater")#немецкий
печать (b5.detect_language())
ВЫВОД:
de
es
hi
bn
de
Здесь de обозначает немецкий, а es — испанский, hi — хинди, bn — бенгальский и снова de — немецкий.
МОДУЛИ И ПОДФУНКЦИИ
Выполнив dir с последующим вводом имени модуля, мы можем узнать обо всех функциях. Точно так же слева я показал каждую функцию, которую можно вызвать как часть текстового блоба. Большинство функций необходимы, такие как dic, dict, len, add, new, reduce, iter, sizeof, classify, endwith, index и т. д.
Он также имеет несколько различных нестандартных функций, таких как объединение, обнаружение_языка, создание_предложения_объектов, анализатор, исправление, setattr, cmpkey.
(ССЫЛКА:
https://textblob.readthedocs.io/en/dev/)
(ОБЗОР-ЗАДАЧИ,ЛИЦЕНЗИРОВАНИЕ)
В целом, он добавляет довольно много новых функций в НЛП и делает несколько задач, связанных с НЛП, довольно крутыми и простыми.
Когда дело доходит до работы с текстовым BLOB-объектом, лично мне было проще закодировать его, чем пытаться использовать графический интерфейс для имитации моих задач. Даже документация об ошибках была определена очень хорошо, и вам нужно убедиться, что необходимые корпуса выбраны правильно и перевод происходит гладко.
Он также может похвастаться лицензией Массачусетского технологического института и в значительной степени определяет текущее время в НЛП. Это для пользователей, которые находят свои ноги с помощью НЛП, и часто считается заклятым конкурентом инструмента NLTK.
ССЫЛКИ
https://textblob.readthedocs.io/en/dev/
https://towardsdatascience.com/having-fun-with-textblob-7e9eed783d3f
https://cloud.ibm.com/apidocs/natural-language-understanding#analyze-text