Een technologie voor natuurlijke taalverwerking kiezen in Azure

Natuurlijke taalverwerking (NLP) wordt gebruikt voor taken zoals sentimentanalyse, onderwerpdetectie, taaldetectie, sleuteltermextractie en documentcategorisatie.

Diagram van een pijplijn voor verwerking van natuurlijke taal

NLP kan worden gebruikt voor het classificeren van documenten, zoals het labelen van documenten als gevoelig of spam. De uitvoer van NLP kan worden gebruikt voor verdere verwerking of zoekopdracht. Een ander gebruik voor NLP is het samenvatten van tekst door de entiteiten in het document te identificeren. Deze entiteiten kunnen ook worden gebruikt om documenten te taggen met trefwoorden, waardoor zoeken en ophalen op basis van inhoud mogelijk is. Entiteiten kunnen worden gecombineerd in onderwerpen, met samenvattingen waarin de belangrijke onderwerpen in elk document worden beschreven. De gedetecteerde onderwerpen kunnen worden gebruikt voor het categoriseren van de documenten voor navigatie of voor het opsnoemen van gerelateerde documenten op basis van een geselecteerd onderwerp. Een ander gebruik voor NLP is het beoordelen van tekst op gevoel om de positieve of negatieve toon van een document te beoordelen. Deze benaderingen maken gebruik van veel technieken van de verwerking van natuurlijke taal, zoals:

  • Tokenizer. De tekst splitsen in woorden of woordgroepen.
  • Stemming en synchronisatie. Het normaliseren van woorden zodat verschillende vormen worden weergegeven in het canonieke woord met dezelfde betekenis. Bijvoorbeeld de kaart 'running' en 'ran' naar 'run'.
  • Extractie van entiteiten. Onderwerpen in de tekst identificeren.
  • Onderdeel van spraakdetectie. Het identificeren van tekst als een werkwoord, zelfstandig naamwoord, onderdeel, woordgroep, en meer.
  • Detectie van zinsgrens. Het detecteren van volledige zinnen binnen alinea's van tekst.

Wanneer u NLP gebruikt om informatie en inzicht te extraheren uit vrije tekst, zijn het uitgangspunt doorgaans de onbewerkte documenten die zijn opgeslagen in objectopslag, zoals Azure Storage of Azure Data Lake Store.

Uitdagingen

  • Het verwerken van een verzameling vrije tekstdocumenten is doorgaans rekenintensief, maar ook tijdintensief.
  • Zonder een gestandaardiseerde documentindeling kan het lastig zijn om consistent nauwkeurige resultaten te bereiken met behulp van vrije tekstverwerking om specifieke feiten uit een document te extraheren. Denk bijvoorbeeld aan een tekstweergave van een factuur. Het kan lastig zijn om een proces te bouwen dat het factuurnummer en de factuurdatum voor facturen correct extraheert voor een aantal — leveranciers.

Wat zijn uw opties bij het kiezen van een NLP-service?

In Azure bieden de volgende services mogelijkheden voor verwerking van natuurlijke taal (NLP) :

Selectiecriteria voor sleutels

Als u de keuzes wilt beperken, begint u met het beantwoorden van deze vragen:

  • Wilt u vooraf gebouwde modellen gebruiken? Zo ja, overweeg dan om de API's te gebruiken die worden aangeboden door Microsoft Cognitive Services.

  • Moet u aangepaste modellen trainen op een grote hoeveelheid tekstgegevens? Zo ja, dan kunt u Azure HDInsight gebruiken met Spark MLlib en Spark NLP.

  • Hebt u nlp-mogelijkheden op laag niveau nodig, zoals tokenisatie, woordequente, synchronisatie en termfrequentie/inverse documentfrequentie (TF/IDF)? Zo ja, dan kunt u Azure HDInsight gebruiken met Spark MLlib en Spark NLP.

  • Hebt u eenvoudige NLP-mogelijkheden op hoog niveau nodig, zoals entiteits- en intentie-identificatie, onderwerpdetectie, spellingcontrole of sentimentanalyse? Zo ja, overweeg dan om de API's te gebruiken die worden aangeboden door Microsoft Cognitive Services.

Mogelijkheidsmatrix

De volgende tabellen geven een overzicht van de belangrijkste verschillen in mogelijkheden.

Algemene mogelijkheden

Mogelijkheid Azure HDInsight Microsoft Cognitive Services
Biedt vooraf getrainde modellen als een service Nee Ja
REST-API Ja Ja
Programmeerbaarheid Python, Scala, Java C#, Java, Node.js, Python, PHP, Ruby
Verwerking van big data en grote documenten ondersteunen Ja Nee

Verwerking van natuurlijke taal op laag niveau

Mogelijkheid Azure HDInsight Microsoft Cognitive Services
Tokenizer Ja (Spark NLP) Ja (Linguistic Analysis-API)
Stemmer Ja (Spark NLP) No
Hadoopizer Ja (Spark NLP) No
Onderdeel van spraaktagging Ja (Spark NLP) Ja (Linguistic Analysis-API)
Termfrequentie/inverse-documentfrequentie (TF/IDF) Ja (Spark MLlib) No
Berekening van de — bewerkingsafstand voor tekenreeks vergelijkbaarheid Ja (Spark MLlib) No
N-gram-berekening Ja (Spark MLlib) No
Verwijdering van woorden stoppen Ja (Spark MLlib) No

Mogelijkheden voor natuurlijke taalverwerking op hoog niveau

Mogelijkheid Azure HDInsight Microsoft Cognitive Services
Identificatie en extractie van entiteiten/intenties No Ja (Language Understanding Intelligent Service (LUIS)-API)
Onderwerpdetectie Ja (Spark NLP) Ja (Text Analytics API)
Spellingcontrole Ja (Spark NLP) Ja (Bing Spellingcontrole API)
Sentimentanalyse Ja (Spark NLP) Ja (Text Analytics API)
Taaldetectie No Ja (Text Analytics API)
Ondersteunt naast Engels ook meerdere talen No Ja (varieert per API)

Zie ook

Natuurlijke taalverwerking