Рубрики
Без рубрики

3 Инструменты обработки натурального языка от AWS до Python

Фото Eric Krull на Unsplash. Обработка и обработка документов может обеспечить много ценного для ALM … Помечено с AWS, Python, обучение машин, наукой данных.

Фото Эрик Кролл на Бессмысленно .

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

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

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

Теперь вопрос в том, как вы это делаете?

Если вы разработаете пользовательскую нейронную сеть с нуля, которые сломают предложения, слова, смысл, настроение и т. Д.?

Это, вероятно, не лучшее решение – – по крайней мере, не для вашего начального MVP. Вместо этого есть много библиотек и облачных услуг, которые могут быть использованы для помощи документов разбивки.

В этой статье мы собираемся посмотреть на три варианта и как вы можете реализовать эти инструменты для анализа документов с Python. Мы собираемся посмотреть на AWS понимать, натуральный язык GCP и TextBlob.

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

В этом случае AWS понимать – API NLP, который может сделать его очень легко обработать текст.

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

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

Давайте посмотрим на пример.

Для всех примеров кода в этой статье мы будем использовать текст ниже:

If you have ever worked at a FAANG or even technology-driven start-up like Instacart, then you have probably realized that data drives everything.

To the point that analysts, PMs, and product managers are starting to understand SQL out of necessity. SQL is the language of data and if you want to interact with data, you need to know it.

Do you want to easily figure out the average amount of time a user spends on your product, but don't want to wait for an analyst? You better figure out how to run a query.

This ability to run queries easily is also driven by the fact that SQL editors no longer need to be installed. With cloud-based data, warehouses come SaaS SQL editors. We will talk about a SaaS SQL editor more in the next section.

However, the importance here is you don't have to wait 30 minutes to install and editor and deal with all the hassle of managing it.

Now you can just go to a URL and access your team's data warehouse. This has allowed anyone in the company easy access to their data.

We know both from anecdotal experience as well as the fact that indeed.com's tracking in 2019 has shown a steady requirement for SQL skill sets for the past 5 years.

Мы возьмем этот текстовый пример и проводим через код ниже, где переменная простота текста:

from io import StringIO
import requests
import boto3
import sys


S3_API_PUBLIC = os.environ.get("PUBLIC_KEY")
S3_API_SECRET = os.environ.get("SECRET_KEY")


client_comprehend = boto3.client(
   'comprehend',
   region_name = 'eu-west-1',
   aws_access_key_id = S3_API_PUBLIC,
   aws_secret_access_key = S3_API_SECRET
)
plain_text = # PUT TEST TEXT HERE

dominant_language_response = client_comprehend.detect_dominant_language(
       Text=plain_text)

dominant_language = sorted(dominant_language_response['Languages'], key=lambda k: k['LanguageCode'])[0]['LanguageCode']


if dominant_language not in ['en','es']:
           dominant_language = 'en'

response = client_comprehend.detect_entities(
           Text=plain_text,
           LanguageCode=dominant_language)
print(response)

AWS поститят вывод

После того, как вы запустите код выше, вы получите вывод, как приведенный ниже. Это сокращенная версия. Однако вы все еще можете увидеть вывод. Например, вы можете увидеть КОЛИЧЕСТВО был помечен на 30 минут и пять лет – оба из которых являются величины времени:

{
   "Entities":[
      {
         "Score":0.9316830039024353,
         "Type":"ORGANIZATION",
         "Text":"FAANG",
         "BeginOffset":30,
         "EndOffset":35
      },
      {
         "Score":0.7218282222747803,
         "Type":"TITLE",
         "Text":"Instacart",
         "BeginOffset":76,
         "EndOffset":85
      },
      {
         "Score":0.9762992262840271,
         "Type":"TITLE",
         "Text":"SQL",
         "BeginOffset":581,
         "EndOffset":584
      },
      {
         "Score":0.997804582118988,
         "Type":"QUANTITY",
         "Text":"30 minutes",
         "BeginOffset":801,
         "EndOffset":811
      },
      {
         "Score":0.5189864635467529,
         "Type":"ORGANIZATION",
         "Text":"indeed.com",
         "BeginOffset":1079,
         "EndOffset":1089
      },
      {
         "Score":0.9985176920890808,
         "Type":"DATE",
         "Text":"2019",
         "BeginOffset":1104,
         "EndOffset":1108
      },
      {
         "Score":0.6815792322158813,
         "Type":"QUANTITY",
         "Text":"5 years",
         "BeginOffset":1172,
         "EndOffset":1179
      }
]
     }

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

Google создал очень похожий сервис Cloud NLP под названием Облако натуральный язык Отказ

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

Давайте использовать версию натурального языка GCP на строке. Ниже приведен код приведен пример использования GCP для обнаружения объектов:

from googleapiclient import discovery
import httplib2
from oauth2client.client import GoogleCredentials

DISCOVERY_URL = ('https://{api}.googleapis.com/'
                '$discovery/rest?version={apiVersion}')

def gcp_nlp_example():

    http = httplib2.Http()

    credentials = GoogleCredentials.get_application_default().create_scoped(
     ['https://www.googleapis.com/auth/cloud-platform'])

    http=httplib2.Http()
    credentials.authorize(http)

    service = discovery.build('language', 'v1beta1',
                           http=http, discoveryServiceUrl=DISCOVERY_URL)

    service_request = service.documents().analyzeEntities(
    body={
     'document': {
        'type': 'PLAIN_TEXT',
        'content': # PUT TEXT HERE
    }
   })

    response = service_request.execute()
    print(response)
    return 0

gcp_nlp_example()

Вывод натурального языка GCP

Выход GCP аналогичен для понимания AWS. Однако вы заметите, что GCP также разбивает подобные слова и пытается найти метаданные, связанные с исходным словом:

//sample

{
   "entities":[
      {
         "name":"SaaS SQL",
         "type":"OTHER",
         "metadata":{
            "mid":"/m/075st",
            "wikipedia_url":"https://en.wikipedia.org/wiki/SQL"
         },
         "salience":0.36921546,
         "mentions":[
            {
               "text":{
                  "content":"SQL",
                  "beginOffset":-1
               },
               "type":"COMMON"
            },
            {
               "text":{
                  "content":"SQL",
                  "beginOffset":-1
               },
               "type":"PROPER"
            },
            {
               "text":{
                  "content":"language",
                  "beginOffset":-1
               },
               "type":"COMMON"
            }
           ]
      }

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

Это далеко не идеально. Однако это делает большую работу по анализу через документы.

Он предлагает части речевого анализа, как AWS поститят и натуральный язык GCP, а также анализ настроений. Однако самостоятельно он не будет классифицировать, какие существующие существующие.

Это все еще отличный инструмент для разрушения основных типов слов.

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

Есть еще много вопросов, которые вы можете ответить, а продукты вы можете разрабатывать в зависимости от вашей цели.

Реализация библиотеки TextBlob очень проста.

Нет необходимости подключаться к API в этом случае. Все, что вам нужно будет сделать, это импортировать библиотеку и позвонить нескольким классам.

Это показано в коде ниже:

from textblob import TextBlob
t=#PUT YOUR TEXT HERE
blob = TextBlob(t)
for i in blob.noun_phrases:
    print(i)

Выход TextBlob

Вот вывод TextBlob. Вы увидите много похожих слов, которые вытянуты с помощью AWS и GCP. Однако нет вся дополнительная маркировка и метаданные, которые поставляются с API. Это то, за что вы платите (среди нескольких других полезных функций) как AWS и GCP:

faang
technology-driven start-up
instacart
pms
product managers
sql
sql
average amount
don ' t
query.this ability
sql
saas sql
saas sql
don ' t
url
team ' s data warehouse
easy access
anecdotal experience
indeed.com ' s
steady requirement
Sql

И с этим мы охватывали три разных способа, которые вы можете использовать NLP на ваших документах или в необработанном тексте.

NLP – отличный инструмент, чтобы помочь обработать документы, классифицировать их и искать отношения. Благодаря AWS и GCP, многие менее технические разработчики могут воспользоваться некоторыми функциями NLP.

Это, как говорят, есть много тяжелых аспектов для NLP. Например, необходимость разработки чата, которые полезны для отслеживания разговоров и контекста, не простая задача. На самом деле, здесь есть отличная серия, где Адам Гейтигень охватывает только что. Вы можете прочитать больше в статье Обработка натурального языка – это весело.

Удачи с любым следующим проектом NLP.

Если вы хотите узнать больше о науке о данных и технике данных. Проверьте статьи и видео ниже.

4 совета SQL для данных ученых

Как анализировать данные без сложных ETL для ученых данных

Что такое хранилище данных И зачем использовать это

Кафка против rabbitmq.

SQL лучшие практики — Проектирование видео ETL

5 Отличные библиотеки для управления большими данными с Python

Оригинал: “https://dev.to/seattledataguy/3-natural-language-processing-tools-from-aws-to-python-4g0i”