Share via


Förbearbeta text

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Utför rensningsåtgärder på text

Kategori: Textanalys

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Modulöversikt

I den här artikeln beskrivs hur du använder modulen Förbearbeta text i Machine Learning Studio (klassisk) för att rensa och förenkla text. Genom att förbearbeta texten kan du enklare skapa meningsfulla funktioner från text.

Till exempel stöder modulen Förbearbeta text dessa vanliga åtgärder för text:

  • Borttagning av stoppord
  • Använda reguljära uttryck för att söka efter och ersätta specifika målsträngar
  • Lemmatisering, som konverterar flera relaterade ord till en enda kanonisk form
  • Filtrera på specifika delar av tal
  • Fall normalisering
  • Borttagning av vissa klasser av tecken, till exempel siffror, specialtecken och sekvenser av upprepade tecken, till exempel "aaaa"
  • Identifiering och borttagning av e-postmeddelanden och URL:er

Du kan välja vilka rensningsalternativ som ska användas och om du vill kan du ange en anpassad lista med stoppord.

Modulen stöder för närvarande sex språk: engelska, spanska, franska, nederländska, tyska och italienska.

Så här konfigurerar du textförbearbetning

  1. Lägg till modulen Förbearbeta text i experimentet i Studio (klassisk). Du hittar den här modulen under Textanalys.

  2. Anslut en datauppsättning som har minst en kolumn som innehåller text.

  3. Om texten du förbearbetar är på samma språk väljer du språket i listrutan Språk. Med det här alternativet förbearbetas texten med hjälp av språkregler som är specifika för det valda språket.

  4. Om du vill förbearbeta text som kan innehålla flera språk väljer du alternativet Kolumn innehåller språk.

    Använd sedan kolumnegenskapen Kultur-språk för att välja en kolumn i datauppsättningen som anger vilket språk som används på varje rad. Kolumnen måste innehålla en standardspråkidentifierare, till exempel "Engelska" eller en.

    Baserat på den här identifieraren tillämpar modulen lämpliga språkresurser för att bearbeta texten.

    Om datauppsättningen inte innehåller sådana identifierare använder du modulen Detect Language (Identifiera språk) för att analysera språket i förväg och generera en identifierare.

    Tips

    Ett fel uppstår om ett språk som inte stöds ingår. Mer information finns i avsnittet Tekniska anteckningar.

  5. Ta bort per del av tal: Välj det här alternativet om du vill använda en del av talanalysen. Du kan sedan använda taggarna för taldelen för att ta bort vissa ordklasser.

    • Ta bort substantiv: Välj det här alternativet om du vill ta bort substantiv.
    • Ta bort adjektiv: Välj det här alternativet om du vill ta bort adjektiv.
    • Ta bort verb: Välj det här alternativet om du vill ta bort verb.

    Mer information om den metod för talidentifiering som används finns i avsnittet Tekniska anteckningar.

  6. Textkolumn som ska rensas: Välj den eller de kolumner som du vill förbearbeta.

  7. Ta bort stoppord: Välj det här alternativet om du vill använda en fördefinierad stoppordslista för textkolumnen. Borttagning av stoppord utförs före andra processer.

    Stoppordslistor är språkberoende och anpassningsbara. Mer information finns i avsnittet Tekniska anteckningar.

  8. Lemmatisering: Välj det här alternativet om du vill att ord ska representeras i sin kanoniska form. Det här alternativet är användbart för att minska antalet unika förekomster av annars liknande texttoken.

    Lemmatiseringsprocessen är mycket språkberoende. Mer information finns i avsnittet Teknisk information.

  9. Identifiera meningar: Välj det här alternativet om du vill att modulen ska infoga ett meningsgränsmärke när du utför analys.

    I den här modulen används en serie med tre pipe-tecken ||| som representerar meningsterminatorn.

  10. Du kan också utföra anpassade find-and-replace-åtgärder med hjälp av reguljära uttryck.

    • Anpassat reguljärt uttryck: Definiera den text som du söker efter.
    • Anpassad ersättningssträng: Definiera ett enda ersättningsvärde.
  11. Normalisera versaler till gemener: Välj det här alternativet om du vill konvertera ASCII-versaler till deras gemener.

    Om tecken inte normaliseras anses samma ord i versaler och gemener vara två olika ord: AM till exempel är samma som am.

  12. Du kan också ta bort följande typer av tecken eller teckensekvenser från den bearbetade utdatatexten:

    • Ta bort siffror: Välj det här alternativet om du vill ta bort alla numeriska tecken för det angivna språket.

    Identifiering av vad som utgör ett tal är domänberoende och språkberoende. Om numeriska tecken är en viktig del av ett känt ord kanske talet inte tas bort.

    • Ta bort specialtecken: Använd det här alternativet om du vill ersätta icke-alfanumeriska specialtecken med pipe-tecknet | .

      Mer information om specialtecken finns i avsnittet Tekniska anteckningar.

    • Ta bort dubbletttecken: Välj det här alternativet om du vill ta bort alla sekvenser som upprepar tecken. Till exempel skulle en sekvens som "aaaaa" tas bort.

    • Ta bort e-postadresser: Välj det här alternativet om du vill ta bort alla sekvenser av formatet <string>@<string>.

    • Ta bort URL:er: Välj det här alternativet om du vill ta bort alla sekvenser som innehåller följande URL-prefix:

      • http, https
      • ftp
      • www
  13. Expandera verbkontraktioner: Det här alternativet gäller endast för språk som använder verbkontraktioner. för närvarande endast på engelska.

    Om du till exempel väljer det här alternativet kan du ersätta frasen "would't stay there" (stannar inte där) med "would not stay there" (stannar inte där).

  14. Normalisera omsnedstreck till snedstreck: Välj det här alternativet om du vill mappa alla instanser av \\ till /.

  15. Dela upp token på specialtecken: Välj det här alternativet om du vill dela upp ord med tecken &som , -och så vidare.

    Strängen skulle till exempel MS-WORD delas upp i två token, MS och WORD.

Exempel

I följande exempel Azure AI Gallery användningen av modulen Preprocess Text :

Teknisk information

Det här avsnittet innehåller mer information om den underliggande förbearbetningstekniken för text och hur du anger anpassade textresurser.

Språk som stöds

För Machine Learning stöder förbearbetning av text på följande språk:

  • Nederländska
  • Engelska
  • Franska
  • Tyska
  • Italienska
  • Spanska

Ytterligare språk planeras. Mer information finns i Microsoft Machine Learning-bloggen.

Lemmatisering

Lemmatisering är en process för att identifiera ett enda kanoniskt formulär som representerar flera ordtoken.

De bibliotek för bearbetning av naturligt språk som ingår i Machine Learning Studio (klassisk) kombinerar följande flera språkåtgärder för att tillhandahålla lemmatisering:

  • Meningsseparation: I fritext som används för attitydanalys och annan textanalys körs meningar ofta på eller skiljetecken kanske saknas. Indatatexterna kan utgöra ett godtyckligt långt textfragment, från en tweet eller ett fragment till ett fullständigt stycke eller till och med ett dokument.

    Verktygen för naturligt språk som används av Studio (klassisk) utför meningsseparation som en del av den underliggande lexikala analysen. Meningar avgränsas dock inte i utdata. Du kan också ange att en meningsgräns ska markeras för att underlätta annan textbearbetning och analys.

  • Tokenisering: De regler som bestämmer gränserna för ord är språkberoende och kan vara komplexa även i språk som använder blanksteg mellan ord.

    Vissa språk (till exempel kinesiska eller japanska) använder inte något tomt utrymme mellan ord, och ordseparation kräver morfologisk analys.

    Därför ger de tokeniseringsmetoder och -regler som används i den här modulen olika resultat från språk till språk. Dessa tokeniseringsregler bestäms av textanalysbibliotek som tillhandahålls av Microsoft Research för varje språk som stöds och kan inte anpassas.

  • Del av talidentifiering: I alla ordsekvenser kan det vara svårt att beräkningsmässigt identifiera den exakta delen av tal för varje ord. Även en till synes enkel mening som "Tidsskad som en pil" kan ha många dussin parsar (ett berömda exempel). Taldelar är också mycket olika beroende på olika språks morfologi.

    I Machine Learning används en disamueringsmodell för att välja den enskilt mest sannolika delen av tal, givet den aktuella meningskontexten. Taldelen används för att filtrera ord som används som funktioner och underlätta extrahering av nyckelfraser. Utdata från den här modulen innehåller dock inte uttryckligen POS-taggar och kan därför inte användas för att generera POS-taggad text.

  • Generera ordlisteformulär: Ett ord kan ha flera lemmas- eller ordlisteformulär som var och en kommer från olika analyser. Det engelska ordbygget har till exempel två möjliga lemmas: att bygga om ordet är ett substantiv ("den höga byggnaden") eller bygga om ordet är ett verb ("de bygger ett hus"). I Machine Learning genereras bara det enda troligaste ordlisteformuläret.

Exempel på lemmatiseringsutdata

Källa Lemmatiserad med ärendekonvertering
Han är i simsim he i simtur
Han är på väg för en simtur he i go for a bad
Det är bra att gå i simhallar för att bygga en egen mus vara bra för build-dräkter
Han bygger en byggnad han jag skapar en version
Vi bygger alla byggnader vi är alla bygge

Anteckning

De språkmodeller som används för att generera ordlisteformulär har tränats och testats mot en mängd olika allmänna och tekniska texter och används i många andra Microsoft-produkter som kräver API:er på naturligt språk. Naturligt språk är dock tvetydigt och 100 % noggrannhet i alla vokabulär är dock inte möjligt. Till exempel kan lemmatisering påverkas av andra delar av talet eller av sättet som meningen parsas.

Om du behöver utföra ytterligare förbearbetning eller utföra språklig analys med hjälp av en specialiserad eller domänberoende vokabulär, rekommenderar vi att du använder anpassningsbara NLP-verktyg, till exempel de som är tillgängliga i Python och R.

Specialtecken

Specialtecken definieras som enskilda tecken som inte kan identifieras som någon annan del av tal och kan innehålla skiljetecken: kolon, semikolon och så vidare.

Stopwords

Ett stoppord (eller stopword) är ett ord som ofta tas bort från index eftersom det är vanligt och ger lite värde för informationshämtning, även om det kan vara språkligt meningsfullt.

Många språk gör till exempel en semantisk skillnad mellan grafiska och obegränsade artiklar ("byggnaden" jämfört med "en byggnad"), men för maskininlärning och informationshämtning är informationen ibland inte relevant. Därför kan du välja att ta bort dessa ord.

Den Machine Learning miljön innehåller listor över de vanligaste stopporden för vart och ett av de språk som stöds.

Språk Antal stoppord Exempel
Nederländska 49 aan, af, al
Engelska 312 a, about, above
Franska 154 de, des, d', la
Tyska 602 a, ab, aber
Italienska 135 a, adesso, ai
Spanska 368 •sa,ésta, honste

För att underlätta för dig har en komprimerad fil som innehåller standard-stopwords för alla aktuella språk gjorts tillgänglig i Azure Storage: Stopwords.zip.

Ändra stopword-listan

Vi förväntar oss att många användare vill skapa egna stoppordslistor eller ändra de termer som ingår i standardlistan. Följande experiment i Cortana Intelligence Gallery visar hur du kan anpassa en lista med stoppord.

Observera följande krav om du ändrar listan eller skapar en egen stoppordslista:

  • Filen måste innehålla en enda textkolumn. Du kan få följande fel om det finns ytterligare en kolumn: "Förbearbeta textfel Kolumnmarkeringsmönster "Textkolumn att rensa" förväntas tillhandahålla 1 eller flera kolumner som valts i indatauppsättningen, men 2 kolumner tillhandahålls faktiskt. ( Fel 0022 )"

    Om detta inträffar letar du efter blanksteg, tabbar eller dolda kolumner i filen som stopword-listan ursprungligen importerades från. Beroende på hur filen förbereddes kan flikar eller kommatecken som ingår i texten också göra att flera kolumner skapas.

    När du får det här felet granskar du källfilen eller använder modulen Välj kolumner i datamängd för att välja en enda kolumn som ska överföras till modulen Förbearbeta text .

  • Varje rad får bara innehålla ett ord. För att parsa filen bestäms ord genom infogning av blanksteg.

  • Stopword-listan får inte vara tom.

Ordningen på åtgärder

I den här modulen kan du tillämpa flera åtgärder på text. Ordningen som dessa åtgärder tillämpas i kan dock inte ändras. Detta kan påverka de förväntade resultaten.

Om du till exempel tillämpar lemmatisering på text och även använder borttagning av stopword konverteras alla ord till sina lemmaformulär innan stoppordslistan tillämpas. Om din text innehåller ett ord som inte finns i stoppordslistan, men dess lemma finns i listan med stoppord, tas ordet därför bort.

Se till att testa målvillkoren i förväg för att garantera rätt resultat.

Språk som inte stöds

Om textkolumnen innehåller språk som inte stöds av Machine Learning rekommenderar vi att du endast använder de alternativ som inte kräver språkberoende bearbetning. Detta kan hjälpa dig att undvika avvikande resultat.

Om du använder alternativet Kolumn innehåller språk måste du dessutom se till att inga språk som inte stöds ingår i texten som bearbetas. Om ett språk eller dess identifierare inte stöds i datauppsättningen genereras följande körningsfel:

"Förbearbeta textfel (0039): Ange ett språk som stöds."

Undvik att hela experimentet misslyckas eftersom ett språk som inte stöds har identifierats genom att använda modulen Dela upp data och ange ett reguljärt uttryck för att dela upp datauppsättningen i språk som stöds och inte stöds.

Följande reguljära uttryck delar till exempel upp datauppsättningen baserat på det identifierade språket för kolumnen Sentence:

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

Om du har en kolumn som innehåller språkidentifieraren, eller om du har genererat en sådan kolumn, kan du använda ett reguljärt uttryck som följande för att filtrera på identifierarkolumnen:

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

Förväntade indata

Namn Typ Description
Datamängd Datatabell Indata
Stoppa ord Datatabell Valfri anpassad lista över stoppord som ska tas bort

Modulparametrar

Namn Typ Intervall Valfritt Standardvärde Description
Ta bort URL:er Boolesk Sant

Falskt
Obligatorisk true Ta bort URL:er
Språk Språk Engelska

Spanska

Franska

Nederländska

Tyska

Italienska
Obligatorisk Engelska Välj det språk som ska förbearbetas
Textkolumn att rensa Kolumnval Obligatorisk StringFeature Välj den textkolumn som ska rensas
Anpassat reguljärt uttryck Sträng Valfritt Ange det anpassade reguljära uttrycket
Anpassad ersättningssträng Sträng Valfritt Ange den anpassade ersättningssträngen för det anpassade reguljära uttrycket
Ta bort stoppord Boolesk Obligatorisk true Ta bort stoppord
Lemmatisering Boolesk Obligatorisk true Använda lemmatisering
Ta bort med en del av tal True False Type true

falskt
Obligatorisk Falskt Ange om en del av talanalysen ska användas för att identifiera och ta bort vissa ordklasser
Ta bort substantiv Boolesk Gäller när alternativet Filtrera efter del av tal har valts true Ta bort substantiv
Ta bort adjektiv Boolesk Gäller när alternativet Filtrera efter del av tal har valts true Ta bort adjektiv
Ta bort verb Boolesk Gäller när alternativet Filtrera efter del av tal har valts true Ta bort verb
Identifiera meningar Boolesk Obligatorisk true Identifiera meningar genom att lägga till en meningsterminator \"||| \" som kan användas av n-gram-funktioner extraktormodulen
Normalisera fall till gemener Boolesk Obligatorisk true Normalisera fall till gemener
Ta bort tal Boolesk Obligatorisk true Ta bort tal
Ta bort specialtecken Boolesk Obligatorisk true Ta bort icke-alfanumeriska specialtecken och ersätt dem med tecknet \"|\"
Ta bort dubbletttecken Boolesk Obligatorisk true Ta bort dubbletttecken
Ta bort e-postadresser Boolesk Obligatorisk true Ta bort e-postadresser

Utdata

Namn Typ Description
Resultatdatauppsättning Datatabell Resultatdatauppsättning

Undantag

Undantag Description
Fel 0003 Ett undantag inträffar om en eller flera indata är null eller tomma.
Fel 0030 ett undantag inträffar i när det inte går att ladda ned en fil.
Fel 0048 Ett undantag inträffar när det inte går att öppna en fil.
Fel 0049 Ett undantag inträffar när det inte går att parsa en fil.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

Textanalys

A-Z-modullista