Delen via


Tekst voorverwerken

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.

Voert opschoonbewerkingen uit op tekst

Categorie: Text Analytics

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

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

Moduleoverzicht

In dit artikel wordt beschreven hoe u de voorverwerkingstekstmodule in Machine Learning Studio (klassiek) gebruikt om tekst op te schonen en te vereenvoudigen. Door de tekst voor te verwerken, kunt u gemakkelijker zinvolle functies maken op basis van tekst.

De module Voorverwerkingstekst ondersteunt bijvoorbeeld deze veelvoorkomende bewerkingen op tekst:

  • Het verwijderen van stopwoorden
  • Reguliere expressies gebruiken om specifieke doelreeksen te zoeken en te vervangen
  • Synchronisatie, waarmee meerdere gerelateerde woorden worden geconverteerd naar één canonieke vorm
  • Filteren op specifieke onderdelen van spraak
  • Casenormalisatie
  • Verwijderen van bepaalde klassen tekens, zoals cijfers, speciale tekens en reeksen herhaalde tekens, zoals 'aaaa'
  • E-mailberichten en URL's identificeren en verwijderen

U kunt kiezen welke opschoonopties u wilt gebruiken en eventueel een aangepaste lijst met stopwoorden opgeven.

De module ondersteunt momenteel zes talen: Engels, Spaans, Frans, Nederlands, Duits en Italiaans.

Tekst voorverwerking configureren

  1. Voeg de voorverwerkingstekstmodule toe aan uw experiment in Studio (klassiek). U vindt deze module onder Text Analytics.

  2. Verbinding maken een gegevensset met ten minste één kolom met tekst.

  3. Als de tekst die u voorbewerkt allemaal in dezelfde taal is, selecteert u de taal in de vervolgkeuzelijst Taal. Met deze optie wordt de tekst voorverwerkt met behulp van taalkundige regels die specifiek zijn voor de geselecteerde taal.

  4. Als u tekst die meerdere talen kan bevatten, wilt voorverwerken, kiest u de optie Kolom bevat taal.

    Gebruik vervolgens de kolom eigenschap Culture-language om een kolom in de gegevensset te kiezen die de taal aangeeft die in elke rij wordt gebruikt. De kolom moet een standaardtaal-id bevatten, zoals 'Engels' of en.

    Op basis van deze id past de module de juiste taalkundige resources toe om de tekst te verwerken.

    Als uw gegevensset dergelijke id's niet bevat, gebruikt u de module Taal detecteren om de taal vooraf te analyseren en een id te genereren.

    Tip

    Er t doet zich een fout voor als een niet-ondersteunde taal wordt opgenomen. Zie de sectie Technische notities voor meer informatie.

  5. Verwijderen per deel van spraak: selecteer deze optie als u een deel van de spraakanalyse wilt toepassen. Vervolgens kunt u de woordgroepen gebruiken om bepaalde klassen woorden te verwijderen.

    • Zelfstandige naamwoorden verwijderen: selecteer deze optie om zelfstandige naamwoorden te verwijderen.
    • Bijvoeglijke naamwoorden verwijderen: selecteer deze optie om bijvoeglijke naamwoorden te verwijderen.
    • Werkwoorden verwijderen: selecteer deze optie om werkwoorden te verwijderen.

    Zie de sectie Technische notities voor meer informatie over de gebruikte methode voor spraakidentificatie.

  6. Tekstkolom om op te schonen: selecteer de kolom of kolommen die u wilt voorverwerken.

  7. Stopwoorden verwijderen: selecteer deze optie als u een vooraf gedefinieerde stopwoordlijst wilt toepassen op de tekstkolom. Verwijdering van woorden stoppen wordt uitgevoerd vóór andere processen.

    Stopwoordlijsten zijn taalafhankelijk en aanpasbaar; Zie de sectie Technische notities voor meer informatie.

  8. Synchronisatie: selecteer deze optie als u wilt dat woorden in hun canonieke vorm worden weergegeven. Deze optie is handig voor het verminderen van het aantal unieke exemplaren van anderszins vergelijkbare teksttokens.

    Het synchronisatieproces is in hoge mate taalafhankelijk; Zie de sectie Technische notities voor meer informatie.

  9. Zinnen detecteren: selecteer deze optie als u wilt dat de module een zinsgrensteken invoegt bij het uitvoeren van een analyse.

    In deze module wordt een reeks van drie pijptekens gebruikt om ||| het eindteken voor zinnen weer te geven.

  10. U kunt eventueel aangepaste find-and-replace-bewerkingen uitvoeren met behulp van reguliere expressies.

    • Aangepaste reguliere expressie: definieer de tekst die u zoekt.
    • Aangepaste vervangingsreeks: Definieer één vervangingswaarde.
  11. Hoofdletters normaliseren in kleine letters: selecteer deze optie als u ASCII-hoofdletters wilt converteren naar kleine letters.

    Als tekens niet worden genormaliseerd, wordt hetzelfde woord in hoofdletters en kleine letters beschouwd als twee verschillende woorden: AM is bijvoorbeeld hetzelfde als am.

  12. U kunt eventueel de volgende typen tekens of tekenreeksen verwijderen uit de verwerkte uitvoertekst:

    • Getallen verwijderen: selecteer deze optie om alle numerieke tekens voor de opgegeven taal te verwijderen.

    Identificatie van wat een getal vormt, is domeinafhankelijk en taalafhankelijk. Als numerieke tekens een integraal onderdeel van een bekend woord zijn, wordt het getal mogelijk niet verwijderd.

    • Speciale tekens verwijderen: gebruik deze optie om niet-alfanumerieke speciale tekens te vervangen door het s pipe-teken | .

      Zie de sectie Technische notities voor meer informatie over speciale tekens.

    • Dubbele tekens verwijderen: selecteer deze optie om reeksen te verwijderen die tekens herhalen. Een reeks zoals 'aaaaa' wordt bijvoorbeeld verwijderd.

    • E-mailadressen verwijderen: selecteer deze optie om een reeks van de indeling te verwijderen <string>@<string>.

    • URL's verwijderen: selecteer deze optie om een reeks met de volgende URL-voorvoegsels te verwijderen:

      • http, https
      • ftp
      • www
  13. Samentrekkingen van werkwoorden uitvtrekken: deze optie geldt alleen voor talen die werkwoordsamentrekkingen gebruiken; momenteel alleen Engels.

    Als u bijvoorbeeld deze optie selecteert, kunt u de zin ' zou daar niet blijven' vervangen door 'zou daar niet blijven'.

  14. Backslashes normaliseren naar slashes: selecteer deze optie om alle exemplaren van toe te staan \\ aan /.

  15. Tokens splitsen voor speciale tekens: selecteer deze optie als u woorden &wilt opsplitsen voor tekens zoals , -enzovoort.

    De tekenreeks zou bijvoorbeeld MS-WORD worden gescheiden in twee tokens, MS en WORD.

Voorbeelden

De volgende voorbeelden in de Azure AI Gallery het gebruik van de module Voorverwerkingstekst :

Technische opmerkingen

Deze sectie bevat meer informatie over de onderliggende voorverwerkingstechnologie voor tekst en het opgeven van aangepaste tekstresources.

Ondersteunde talen

Momenteel Machine Learning ondersteuning voor voorverwerking van tekst in deze talen:

  • Nederlands
  • Engels
  • Frans
  • Duits
  • Italiaans
  • Spaans

Er zijn extra talen gepland. Zie de Microsoft Machine Learning blog voor aankondigingen.

Lemmatisering

Het proces van het identificeren van één canonieke vorm om meerdere woordtokens weer te geven.

De bibliotheken voor de verwerking van natuurlijke taal die zijn opgenomen in Machine Learning Studio (klassiek) combineren de volgende meerdere taalkundige bewerkingen om te voorzien in eenvertaling:

  • Scheiding van zinnen: In vrije tekst die wordt gebruikt voor sentimentanalyse en andere tekstanalyses, worden zinnen vaak uitgevoerd of ontbreken leestekens. Invoerteksten kunnen een willekeurig lang stuk tekst vormen, variërend van een tweet of fragment tot een volledige alinea of zelfs een document.

    De hulpprogramma's voor natuurlijke taal die door Studio (klassiek) worden gebruikt, voeren scheiding van zinnen uit als onderdeel van de onderliggende lexicale analyse. Zinnen worden echter niet gescheiden in de uitvoer. U kunt eventueel opgeven dat een zinsgrens moet worden gemarkeerd om te helpen bij andere tekstverwerking en -analyse.

  • Tokenisatie: De regels die de grenzen van woorden bepalen, zijn taalafhankelijk en kunnen complex zijn, zelfs in talen die spaties tussen woorden gebruiken.

    Sommige talen (zoals Chinees of Japans) gebruiken geen witruimte tussen woorden en voor scheiding van woorden is eenmorfische analyse vereist.

    Daarom bieden de tokenisatiemethoden en -regels die in deze module worden gebruikt, verschillende resultaten van taal tot taal. Deze tokenisatieregels worden bepaald door tekstanalysebibliotheken die door Microsoft Research worden geleverd voor elke ondersteunde taal en kunnen niet worden aangepast.

  • Onderdeel van spraakidentificatie: In elke reeks woorden kan het lastig zijn om het exacte deel van de spraak voor elk woord rekenkundige te identificeren. Zelfs een duidelijk eenvoudige zin zoals 'Tijd die lijkt op een pijl' kan vele tientallen parses (een beroemde voorbeeld) hebben. Delen van spraak zijn ook zeer verschillend, afhankelijk van de morfologie van verschillende talen.

    In Machine Learning wordt een ondubbelzinnigheidsmodel gebruikt om het meest waarschijnlijke deel van de spraak te kiezen, gezien de context van de huidige zin. De deel van de spraakinformatie wordt gebruikt om woorden te filteren die worden gebruikt als functies en om te helpen bij sleuteltermextractie. De uitvoer van deze module bevat echter niet expliciet POS-tags en kan daarom niet worden gebruikt om met POS getagde tekst te genereren.

  • Woordenlijstformulier genereren: Een woord kan meerdere woordenlijsten of woordenlijstformulieren hebben, die elk afkomstig zijn van een andere analyse. Het Engelse woord gebouw heeft bijvoorbeeld twee mogelijke woorden: bouwen als het woord een zelfstandig naamwoord is ('het lange gebouw'), of bouwen als het woord een werkwoord is ('ze bouwen een huis'). In Machine Learning wordt alleen het meest waarschijnlijke woordenlijstformulier gegenereerd.

Voorbeelduitvoer van synchronisatie

Bron Geconversie van case
Hij is aan het water he i want
Hij gaat voor een baan he i go for a week
Het water is goed voor het bouwen van bouwstenen is goed voor build-bouwers
Hij bouwt een gebouw hij ik bouw een build
We bouwen allemaal gebouwen we zijn allemaal aan het bouwen

Notitie

De taalmodellen die worden gebruikt om een woordenlijstformulier te genereren, zijn getraind en getest op basis van diverse algemene en technische teksten en worden gebruikt in veel andere Microsoft-producten waarvoor API's in natuurlijke taal zijn vereist. Natuurlijke taal is echter inherent dubbelzinnig en 100% nauwkeurigheid van alle woorden is niet haalbaar. Zo kan de zinsverdelende tekst worden beïnvloed door andere spraakonderdelen of door de manier waarop de zin wordt geparseerd.

Als u aanvullende voorverwerking wilt uitvoeren of taalkundige analyse wilt uitvoeren met behulp van een gespecialiseerde of domeinafhankelijke woordenlijst, raden we u aan aanpasbare NLP-hulpprogramma's te gebruiken, zoals hulpprogramma's die beschikbaar zijn in Python en R.

Speciale tekens

Speciale tekens worden gedefinieerd als enkele tekens die niet kunnen worden geïdentificeerd als een ander deel van de spraak en kunnen leestekens bevatten: dubbele punt, punt-dubbele punt, enzovoort.

Stopwords

Een stopwoord (of stopwoord) is een woord dat vaak uit indexen wordt verwijderd omdat het gebruikelijk is en weinig waarde biedt voor het ophalen van informatie, zelfs als het taalkundig zinvol kan zijn.

Veel talen maken bijvoorbeeld een semantisch onderscheid tussen verantwoordelijke en onbeperkte artikelen ('het gebouw' versus 'een gebouw'), maar voor machine learning en het ophalen van informatie is de informatie soms niet relevant. Daarom kunt u besluiten om deze woorden te verwijderen.

De Machine Learning bevat lijsten met de meest voorkomende stopwoorden voor elk van de ondersteunde talen.

Taal Aantal stopwords Voorbeelden
Nederlands 49 aan, af, al
Engels 312 a, over, hierboven
Frans 154 de, des, d', la
Duits 602 a, ab, aber
Italiaans 135 a, adesso, ai
Spaans 368 equisa, kunt u, kunt u

Voor uw gemak is er een ingepakt bestand met de standaard stopwords voor alle huidige talen beschikbaar gesteld in Azure Storage: Stopwords.zip.

De stopword-lijst wijzigen

We verwachten dat veel gebruikers hun eigen stopwoordlijsten willen maken of de termen in de standaardlijst willen wijzigen. Het volgende experiment in de Cortana Intelligence Gallery laat zien hoe u een stop word-lijst kunt aanpassen.

Als u de lijst wijzigt of uw eigen stop word-lijst maakt, moet u aan deze vereisten voldoen:

  • Het bestand moet één tekstkolom bevatten. Mogelijk krijgt u de volgende foutmelding als er een extra kolom aanwezig is: Selectiepatroon tekstfoutkolom voorverwerking 'Tekstkolom moet worden opsschoond' bevat naar verwachting 1 kolom(en) die zijn geselecteerd in de invoerset, maar er worden 2 kolom(en) daadwerkelijk opgegeven. ( Fout 0022 )"

    Als dit gebeurt, zoek dan naar spaties, tabbladen of verborgen kolommen die aanwezig zijn in het bestand van waaruit de stopwoordlijst oorspronkelijk is geïmporteerd. Afhankelijk van hoe het bestand is voorbereid, kunnen tabbladen of komma's in tekst er ook toe leiden dat er meerdere kolommen worden gemaakt.

    Wanneer deze fout wordt weergegeven, controleert u het bronbestand of gebruikt u de module Kolommen in gegevensset selecteren om één kolom te kiezen die u wilt doorgeven aan de voorverwerkingstekstmodule .

  • Elke rij kan slechts één woord bevatten. Voor het parseren van het bestand worden woorden bepaald door het invoegen van spaties.

  • De stopword-lijst mag niet leeg zijn.

Volgorde van bewerkingen

In deze module kunt u meerdere bewerkingen toepassen op tekst. De volgorde waarin deze bewerkingen worden toegepast, kan echter niet worden gewijzigd. Dit kan van invloed zijn op de verwachte resultaten.

Als u bijvoorbeeld verwijderwoorden op tekst toewijst en ook gebruik maakt van het verwijderen van stopwoorden, worden alle woorden geconverteerd naar de hun hunword-formulieren voordat de stopwoordlijst wordt toegepast. Dus als uw tekst een woord bevat dat niet in de stopwoordlijst staat, maar de ervan in de stopwoordlijst staat, wordt het woord verwijderd.

Zorg ervoor dat u de doelvoorwaarden van tevoren test om de juiste resultaten te garanderen.

Niet-ondersteunde talen

Als uw tekstkolom talen bevat die niet worden ondersteund door Machine Learning, raden we u aan alleen de opties te gebruiken waarvoor taalafhankelijke verwerking niet is vereist. Dit kan vreemde resultaten voorkomen.

Als u de optie Kolom bevat taal gebruikt, moet u er ook voor zorgen dat er geen niet-ondersteunde talen worden opgenomen in de tekst die wordt verwerkt. Als een niet-ondersteunde taal of de id ervan aanwezig is in de gegevensset, wordt de volgende run time-fout gegenereerd:

"Voorverwerking van tekstfout (0039): Geef een ondersteunde taal op."

Als u wilt voorkomen dat het hele experiment mislukt omdat er een niet-ondersteunde taal is gedetecteerd, gebruikt u de module Gegevens splitsen en geeft u een reguliere expressie op om de gegevensset te verdelen in ondersteunde en niet-ondersteunde talen.

Met de volgende reguliere expressie wordt bijvoorbeeld de gegevensset gesplitst op basis van de gedetecteerde taal voor de kolom Sentence:

\"Sentence Language" Dutch|English|French|Italian|Spanish

Als u een kolom hebt die de taal-id bevat of als u een dergelijke kolom hebt gegenereerd, kunt u een reguliere expressie zoals de volgende gebruiken om te filteren op de id-kolom:

\"Sentence Iso6391 Name" nl|en|fr|it|es

Verwachte invoer

Naam Type Description
Gegevensset Gegevenstabel Invoergegevens
Stopwoorden Gegevenstabel Optionele aangepaste lijst met stopwoorden die moeten worden verwijderd

Moduleparameters

Naam Type Bereik Optioneel Standaard Beschrijving
URL's verwijderen Boolean-waarde Waar

Niet waar
Vereist true URL's verwijderen
Taal Taal Engels

Spaans

Frans

Nederlands

Duits

Italiaans
Vereist Engels De taal selecteren die moet worden voorverwerkt
Tekstkolom om op te schonen Kolomselectie Vereist StringFeature Selecteer de tekstkolom die u wilt ops schonen
Aangepaste reguliere expressie Tekenreeks Optioneel De aangepaste reguliere expressie opgeven
Aangepaste vervangingsreeks Tekenreeks Optioneel Geef de aangepaste vervangingsreeks op voor de aangepaste reguliere expressie
Stopwoorden verwijderen Booleaans Vereist true Stopwoorden verwijderen
Lemmatisering Booleaans Vereist true Synchronisatie gebruiken
Verwijderen op onderdeel van spraak Waar onwaar type waar

onjuist
Vereist Niet waar Aangeven of een deel van de spraakanalyse moet worden gebruikt om bepaalde woordklassen te identificeren en te verwijderen
Zelfstandige naamwoorden verwijderen Booleaans Is van toepassing wanneer de optie Filteren op deel van spraak is geselecteerd true Zelfstandige naamwoorden verwijderen
Bijvoeglijke naamwoorden verwijderen Booleaans Is van toepassing wanneer de optie Filteren op deel van spraak is geselecteerd true Bijvoeglijke naamwoorden verwijderen
Werkwoorden verwijderen Booleaans Is van toepassing wanneer de optie Filteren op deel van spraak is geselecteerd true Werkwoorden verwijderen
Zinnen detecteren Booleaans Vereist true Zinnen detecteren door een zinsinding \"||| \" die kan worden gebruikt door de module n-gram-functiesextractor
Hoofdletters normaliseren in kleine letters Booleaans Vereist true Hoofdletters normaliseren in kleine letters
Getallen verwijderen Booleaans Vereist true Getallen verwijderen
Speciale tekens verwijderen Booleaans Vereist true Verwijder niet-alfanumerieke speciale tekens en vervang deze door \"|\" teken
Dubbele tekens verwijderen Booleaans Vereist true Dubbele tekens verwijderen
E-mailadressen verwijderen Booleaans Vereist true E-mailadressen verwijderen

Uitvoerwaarden

Naam Type Description
Gegevensset met resultaten Gegevenstabel Gegevensset met resultaten

Uitzonderingen

Uitzondering Description
Fout 0003 Er treedt een uitzondering op als een of meer invoer null of leeg zijn.
Fout 0030 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te downloaden.
Fout 0048 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te openen.
Fout 0049 Er treedt een uitzondering op wanneer het niet mogelijk is om een bestand te parseren.

Zie Foutcodes voor een lijst met fouten die specifiek zijn Machine Learning voor Studio-modules (klassiek).

Zie Foutcodes voor een lijst Machine Learning REST API API-uitzonderingen.

Zie ook

Tekstanalyse

Lijst met A-Z-modules