Wybór technologii przetwarzania języka naturalnego na platformie AzureChoosing a natural language processing technology in Azure

Przetwarzanie języka naturalnego (NLP) służy do wykonywania zadań, takich jak analiza tonacji, wykrywanie tematów, wykrywanie języka, wyodrębnianie kluczowych fraz i kategoryzacja dokumentu.Natural language processing (NLP) is used for tasks such as sentiment analysis, topic detection, language detection, key phrase extraction, and document categorization.

Diagram potoku przetwarzania języka naturalnego

NLP może służyć do klasyfikowania dokumentów, takich jak etykietowanie dokumentów jako poufne lub spamu.NLP can be use to classify documents, such as labeling documents as sensitive or spam. Dane wyjściowe elementu NLP mogą być używane do późniejszego przetwarzania lub wyszukiwania.The output of NLP can be used for subsequent processing or search. Innym zastosowaniem do NLP jest podsumowanie tekstu przez zidentyfikowanie jednostek znajdujących się w dokumencie.Another use for NLP is to summarize text by identifying the entities present in the document. Te jednostki mogą być również używane do znakowania dokumentów ze słowami kluczowymi, które umożliwiają wyszukiwanie i pobieranie na podstawie zawartości.These entities can also be used to tag documents with keywords, which enables search and retrieval based on content. Jednostki mogą być połączone z tematami, za pomocą podsumowań, które opisują ważne tematy obecne w poszczególnych dokumentach.Entities might be combined into topics, with summaries that describe the important topics present in each document. Wykryte tematy mogą służyć do kategoryzowania dokumentów do nawigacji lub do wyliczania powiązanych dokumentów w wybranym temacie.The detected topics may be used to categorize the documents for navigation, or to enumerate related documents given a selected topic. Innym zastosowaniem do NLP jest ocena tekstu dla tonacji, aby ocenić dodatnie lub ujemne Tony dokumentu.Another use for NLP is to score text for sentiment, to assess the positive or negative tone of a document. Metody te wykorzystują wiele technik z przetwarzania języka naturalnego, takich jak:These approaches use many techniques from natural language processing, such as:

  • Tokenizatora.Tokenizer. Dzielenie tekstu na wyrazy lub frazy.Splitting the text into words or phrases.
  • Rdzenie i Lematyzacja.Stemming and lemmatization. Normalizowanie wyrazów w taki sposób, aby różne formularze mapować do wyrazu kanonicznego z tym samym znaczeniem.Normalizing words so that different forms map to the canonical word with the same meaning. Na przykład "uruchomiona" i "uruchomiono" mapowanie do "Run".For example, "running" and "ran" map to "run."
  • Wyodrębnianie jednostek.Entity extraction. Identyfikowanie tematów w tekście.Identifying subjects in the text.
  • Część wykrywania mowy.Part of speech detection. Identyfikowanie tekstu jako czasownik, rzeczownik, Participle, frazy czasownikowej itd.Identifying text as a verb, noun, participle, verb phrase, and so on.
  • Wykrywanie granicy zdania.Sentence boundary detection. Wykrywanie kompletnych zdań w akapitach tekstu.Detecting complete sentences within paragraphs of text.

W przypadku korzystania z NLP w celu wyodrębnienia informacji i wglądu w tekst dowolnego formularza punkt początkowy jest zazwyczaj dokumentami nieprzetworzonymi przechowywanymi w magazynie obiektów, takimi jak usługa Azure Storage lub Azure Data Lake Store.When using NLP to extract information and insight from free-form text, the starting point is typically the raw documents stored in object storage such as Azure Storage or Azure Data Lake Store.

WyzwaniaChallenges

  • Przetwarzanie kolekcji dokumentów tekstowych o dowolnym formacie jest zwykle czasochłonne, a także czasochłonne.Processing a collection of free-form text documents is typically computationally resource intensive, as well as being time intensive.
  • Bez standardowego formatu dokumentu może być trudne do osiągnięcia spójnych wyników przy użyciu swobodnego przetwarzania tekstu w celu wyodrębnienia określonych faktów z dokumentu.Without a standardized document format, it can be difficult to achieve consistently accurate results using free-form text processing to extract specific facts from a document. Załóżmy na przykład, że tekstowa reprezentacja faktury — może być trudna do skompilowania procesu, który prawidłowo wyodrębni numer faktury i datę faktury dla faktur dla dowolnej liczby dostawców.For example, think of a text representation of an invoice—it can be difficult to build a process that correctly extracts the invoice number and invoice date for invoices across any number of vendors.

Jakie opcje są dostępne podczas wybierania usługi NLP?What are your options when choosing an NLP service?

Na platformie Azure następujące usługi zapewniają możliwości przetwarzania języka naturalnego (NLP):In Azure, the following services provide natural language processing (NLP) capabilities:

Kryteria wyboru kluczaKey selection criteria

Aby zawęzić opcje, Zacznij od udzielenia odpowiedzi na następujące pytania:To narrow the choices, start by answering these questions:

  • Czy chcesz używać wstępnie skompilowanych modeli?Do you want to use prebuilt models? Jeśli tak, rozważ użycie interfejsów API oferowanych przez Microsoft Cognitive Services.If yes, consider using the APIs offered by Microsoft Cognitive Services.

  • Czy konieczne jest uczenie niestandardowych modeli względem dużych korpus danych tekstowych?Do you need to train custom models against a large corpus of text data? Jeśli tak, rozważ użycie usługi Azure HDInsight z platformami Spark MLlib i Spark NLP.If yes, consider using Azure HDInsight with Spark MLlib and Spark NLP.

  • Potrzebujesz funkcji NLP niskiego poziomu, takich jak tokenizacji, z rdzeniami, Lematyzacja i częstotliwości termin/odwrócony dokument (TF/IDF)?Do you need low-level NLP capabilities like tokenization, stemming, lemmatization, and term frequency/inverse document frequency (TF/IDF)? Jeśli tak, rozważ użycie usługi Azure HDInsight z platformami Spark MLlib i Spark NLP.If yes, consider using Azure HDInsight with Spark MLlib and Spark NLP.

  • Potrzebujesz prostych, wysokiego poziomu funkcji NLP, takich jak identyfikacja jednostek i intencja, wykrywanie tematu, sprawdzanie pisowni czy analiza tonacji?Do you need simple, high-level NLP capabilities like entity and intent identification, topic detection, spell check, or sentiment analysis? Jeśli tak, rozważ użycie interfejsów API oferowanych przez Microsoft Cognitive Services.If yes, consider using the APIs offered by Microsoft Cognitive Services.

Macierz możliwościCapability matrix

W poniższej tabeli zestawiono kluczowe różnice w możliwościach.The following tables summarize the key differences in capabilities.

Ogólne możliwościGeneral capabilities

MożliwośćCapability Azure HDInsightAzure HDInsight Usługi Microsoft Cognitive ServicesMicrosoft Cognitive Services
Zapewnia modele z przeduczeniem jako usługaProvides pretrained models as a service NieNo TakYes
Interfejs API RESTREST API TakYes TakYes
ProgramowanieProgrammability Python, Scala, JavaPython, Scala, Java C#, Java, Node.js, Python, PHP, RubyC#, Java, Node.js, Python, PHP, Ruby
Obsługa przetwarzania zestawów danych Big Data i dużych dokumentówSupport processing of big data sets and large documents TakYes NieNo

Funkcje przetwarzania języka naturalnego niskiego poziomuLow-level natural language processing capabilities

MożliwośćCapability Azure HDInsightAzure HDInsight Usługi Microsoft Cognitive ServicesMicrosoft Cognitive Services
TokenizatoraTokenizer Tak (Spark NLP)Yes (Spark NLP) Tak (interfejs API analizy językowej)Yes (Linguistic Analysis API)
Programy szukające rdzeniStemmer Tak (Spark NLP)Yes (Spark NLP) NieNo
LemmatizerLemmatizer Tak (Spark NLP)Yes (Spark NLP) NieNo
Część tagowania mowyPart of speech tagging Tak (Spark NLP)Yes (Spark NLP) Tak (interfejs API analizy językowej)Yes (Linguistic Analysis API)
Częstotliwość terminów/odwracanie dokumentu (TF/IDF)Term frequency/inverse-document frequency (TF/IDF) Tak (Spark MLlib)Yes (Spark MLlib) NieNo
Obliczanie podobieństwa ciągów — edycji odległościString similarity—edit distance calculation Tak (Spark MLlib)Yes (Spark MLlib) NieNo
Obliczenia N-gramoweN-gram calculation Tak (Spark MLlib)Yes (Spark MLlib) NieNo
Zatrzymaj usuwanie wyrazówStop word removal Tak (Spark MLlib)Yes (Spark MLlib) NieNo

Funkcje przetwarzania języka naturalnego wysokiego poziomuHigh-level natural language processing capabilities

MożliwośćCapability Azure HDInsightAzure HDInsight Usługi Microsoft Cognitive ServicesMicrosoft Cognitive Services
Identyfikowanie jednostek/intencje i wyodrębnianieEntity/intent identification and extraction NieNo Tak (Language Understanding Intelligent Service (LUIS) API)Yes (Language Understanding Intelligent Service (LUIS) API)
Wykrywanie tematuTopic detection Tak (Spark NLP)Yes (Spark NLP) Tak (interfejs API analizy tekstu)Yes (Text Analytics API)
Sprawdzanie pisowniSpell checking Tak (Spark NLP)Yes (Spark NLP) Tak (sprawdzanie pisowni Bing API)Yes (Bing Spell Check API)
Analiza tonacjiSentiment analysis Tak (Spark NLP)Yes (Spark NLP) Tak (interfejs API analizy tekstu)Yes (Text Analytics API)
Wykrywanie językaLanguage detection NieNo Tak (interfejs API analizy tekstu)Yes (Text Analytics API)
Obsługuje wiele języków oprócz języka angielskiegoSupports multiple languages besides English NieNo Tak (w zależności od interfejsu API)Yes (varies by API)

Zobacz teżSee also

Przetwarzanie języka naturalnegoNatural language processing