Herkenning van benoemde entiteiten

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Herkent benoemde entiteiten in een tekstkolom

Categorie: Text Analytics

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de Herkenning van benoemde entiteiten-module in Machine Learning Studio (klassiek) gebruikt om de namen van zaken, zoals mensen, bedrijven of locaties in een tekstkolom, te identificeren.

Herkenning van benoemde entiteiten is een belangrijk onderzoeksgebied op het gebied van machine learning en natuurlijke taalverwerking (NLP), omdat deze kan worden gebruikt om veel echte vragen te beantwoorden, zoals:

  • Bevat een tweet de naam van een persoon? Geeft de tweet ook zijn huidige locatie op?

  • Welke bedrijven zijn genoemd in een nieuwsartikel?

  • Zijn opgegeven producten vermeld in klachten of beoordelingen?

Als u een lijst met benoemde entiteiten wilt op halen, geeft u een gegevensset op als invoer die een tekstkolom bevat. De Herkenning van benoemde entiteiten module identificeert vervolgens drie typen entiteiten: personen (PER), locaties (LOC) en organisaties (ORG).

De module labelt ook de reeksen op de plaats waar deze woorden zijn gevonden, zodat u de termen in verdere analyse kunt gebruiken.

In de volgende tabel ziet u bijvoorbeeld een eenvoudige invoerzin en de termen en waarden die door de module worden gegenereerd:

Invoertekst Module-uitvoer
"Boston is een fantastische plek om te wonen." 0,Boston,0,6,LOC

De uitvoer kan als volgt worden geïnterpreteerd:

  • De eerste '0' betekent dat deze tekenreeks de eerste artikelinvoer voor de module is.

    Omdat één artikel meerdere entiteiten kan hebben, met inbegrip van het rijnummer van het artikel in de uitvoer, is belangrijk voor het toewijzen van functies aan artikelen.

  • Boston is de herkende entiteit.

  • De 0 die volgt, betekent Boston dat de entiteit begint Boston met de eerste letter van de invoerreeks. Indexen zijn op nul gebaseerd.

  • 6 betekent dat de lengte van de entiteit Boston 6 is.

  • LOC betekent dat de entiteit Boston een plaats of locatie is. Andere ondersteunde entiteitstypen zijn persoon (PER) en organisatie (ORG).

Een Herkenning van benoemde entiteiten

  1. Voeg de Herkenning van benoemde entiteiten-module toe aan uw experiment in Studio (klassiek). U vindt de module in de Text Analytics categorie.

  2. Koppel op de invoer met de naam Story een gegevensset met de tekst die moet worden geanalyseerd.

    Het 'verhaal' moet de tekst bevatten waaruit benoemde entiteiten moeten worden geëxtrahed.

    De kolom die als Verhaal wordt gebruikt , moet meerdere rijen bevatten, waarbij elke rij uit een tekenreeks bestaat. de tekenreeks kan kort zijn, zoals een zin of lang, zoals een nieuwsartikel.

    U kunt elke gegevensset verbinden die een tekstkolom bevat. Als de invoergegevensset echter meerdere kolommen bevat, gebruikt u Kolommen in gegevensset selecteren om alleen de kolom te kiezen die de tekst bevat die u wilt analyseren

    Notitie

    De tweede invoer, Aangepaste resources (zip) wordt op dit moment niet ondersteund.

    In de toekomst kunt u hier aangepaste resourcebestanden toevoegen om verschillende entiteitstypen te identificeren.

  3. Voer het experiment uit.

Resultaten

De module geeft een gegevensset weer met een rij voor elke entiteit die is herkend, samen met de offsets.

Omdat elke rij met invoertekst meerdere benoemde entiteiten kan bevatten, wordt automatisch een artikel-id-nummer gegenereerd en opgenomen in de uitvoer om de invoerrij te identificeren die de benoemde entiteit bevat. De artikel-id is gebaseerd op de natuurlijke volgorde van de rijen in de invoerset.

U kunt deze uitvoerset converteren naar CSV om deze te downloaden of op te slaan als een gegevensset voor opnieuw gebruik.

Herkenning van benoemde entiteiten gebruiken in een webservice

Als u een webservice publiceert vanuit Machine Learning Studio (klassiek) en de webservice wilt gebruiken met C#, Python of een andere taal, zoals R, moet u eerst de servicecode implementeren die is opgegeven op de Help-pagina van de webservice.

Als uw webservice meerdere rijen uitvoer biedt, moet de URL van de webservice die u aan uw C#-, Python- of R-code toevoegt, het achtervoegsel hebben scoremultirow in plaats van score.

Stel dat u de volgende URL gebruikt voor uw webservice: https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/score

Als u uitvoer met meerdere rijen wilt inschakelen, wijzigt u de URL in https://ussouthcentral.services.azureml.net/workspaces/<workspace id>/services/<service id>/scoremultirow

Als u deze webservice wilt publiceren, moet u na de Herkenning van benoemde entiteiten-module een extra module R-script uitvoeren toevoegen om de uitvoer met meerdere rijen te transformeren in één met puntpunt(;). De reden voor het consolideren van de meerdere rijen met uitvoer in één rij is om meerdere entiteiten per invoerrij te retourneren.

Stel dat u een invoerzin met twee benoemde entiteiten hebt. In plaats van twee rijen voor elke rij invoer te retourneren, kunt u één rijen met meerdere entiteiten retourneren, gescheiden door puntmatjes, zoals hier wordt weergegeven:

Invoertekst Uitvoer van webservice
Microsoft heeft twee kantoorlocaties in Boston. 0,Microsoft,0,9,ORG,;,0,Boston,38,6,LOC,;

Het volgende codevoorbeeld laat zien hoe u dit doet:

# Map 1-based optional input ports to variables  
d <- maml.mapInputPort(1) # class: data.frame  
y=length(d) ##size of cols  
x=dim(d)[1] ##size of rows  
longd=matrix("NA",nrow=1,ncol=x*(y+1))  
for (i in 1:x)  
  {   
     for (j in 1:y)  
     {  
       longd[1,j+(i-1)*(y+1)]=toString(d[i,j])   
     }  
     longd[1,j+(i-1)*(y+1)+1]=c(";")  
  }   

final_output=as.data.frame(longd)  
# Select data.frame to be sent to the output Dataset port  
maml.mapOutputPort("final_output");  

Voorbeelden

In dit blog vindt u uitgebreide uitleg over hoe herkenning van benoemde entiteiten werkt, wat de achtergrond en mogelijke toepassingen zijn:

Zie ook de volgende voorbeeldexperimenten in de Azure AI Gallery voor demonstraties van het gebruik van tekstclassificatiemethoden die vaak worden gebruikt in machine learning:

  • Voorbeeld van nieuwscategorisatie: maakt gebruik van functie-hashing om artikelen te classificeren in een vooraf gedefinieerde lijst met categorieën.

  • Voorbeeld van vergelijkbare bedrijven: gebruikt de tekst van Wikipedia-artikelen om bedrijven te categoriseren.

  • Tekstclassificatie, stap 1 van 5: gegevensvoorbereiding: In dit vijfdelige overzicht van tekstclassificatie wordt tekst van Twitter-berichten gebruikt om sentimentanalyse uit te voeren. Er worden ook verschillende voorverwerkingstechnieken voor tekst gedemonstreerd.

Technische opmerkingen

Taalondersteuning

Momenteel ondersteunt de Herkenning van benoemde entiteiten alleen Engelse tekst. Het kan organisatienamen, persoonlijke namen en locaties in Engelse zinnen detecteren. Als u de module in andere talen gebruikt, krijgt u mogelijk geen foutmelding, maar de resultaten zijn niet zo goed als voor Engelse tekst.

In de toekomst kan ondersteuning voor aanvullende talen worden ingeschakeld door de meertalige onderdelen te integreren die zijn opgegeven in de Office natural language Toolkit.

Verwachte invoer

Naam Type Description
Verhaal Gegevenstabel Een invoergegevensset (DataTable) die de tekstkolom bevat die u wilt analyseren.
CustomResources Zip (Optioneel) Een bestand in ZIP-indeling dat aanvullende aangepaste resources bevat.

Deze optie is momenteel niet beschikbaar en is alleen beschikbaar voor compatibiliteit met forwards.

Uitvoerwaarden

Naam Type Beschrijving
Entiteiten Gegevenstabel Een lijst met teken offsets en entiteiten

Zie ook

Tekstanalyse
Functie-hashing
Vowpal Wabbit 7-4-model scoren
Vowpal Wabbit 7-4-model trainen