Preprocess Text
Importante
Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.
A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).
- Vedere leinformazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni sulle Azure Machine Learning.
La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.
Esegue operazioni di pulizia sul testo
Categoria: Analisi del testo
Nota
Si applica a: Machine Learning Studio (versione classica)
Moduli di trascinamento della selezione simili sono disponibili nella finestra Azure Machine Learning progettazione.
Panoramica del modulo
Questo articolo descrive come usare il modulo Pre-elabora testo in Machine Learning Studio (versione classica) per pulire e semplificare il testo. Pre-elaborando il testo, è possibile creare più facilmente funzionalità significative dal testo.
Ad esempio, il modulo Pre-elabora testo supporta queste operazioni comuni sul testo:
- Rimozione di parole non pronunciate
- Uso di espressioni regolari per cercare e sostituire stringhe di destinazione specifiche
- Lemmatizzazione, che converte più parole correlate in un'unica forma canonica
- Applicazione di filtri a parti specifiche del riconoscimento vocale
- Normalizzazione delle maiuscole e minuscole
- Rimozione di determinate classi di caratteri, ad esempio numeri, caratteri speciali e sequenze di caratteri ripetuti, ad esempio "aaaa"
- Identificazione e rimozione di messaggi di posta elettronica e URL
È possibile scegliere le opzioni di pulizia da usare e, facoltativamente, specificare un elenco personalizzato di parole non erre.
Il modulo supporta attualmente sei lingue: inglese, spagnolo, francese, olandese, tedesco e italiano.
Come configurare la pre-elaborazione del testo
Aggiungere il modulo Pre-elabora testo all'esperimento in Studio (versione classica). È possibile trovare questo modulo in Analisi del testo.
Connessione un set di dati con almeno una colonna contenente testo.
Se il testo che si sta pre-elaborando è nella stessa lingua, selezionare la lingua dall'elenco a discesa Lingua. Con questa opzione, il testo viene pre-elaborato usando regole linguistiche specifiche per la lingua selezionata.
Per pre-elaborare testo che potrebbe contenere più lingue, scegliere l'opzione Colonna contiene la lingua .
Usare quindi la proprietà culture-language column per scegliere una colonna nel set di dati che indica la lingua usata in ogni riga. La colonna deve contenere un identificatore di lingua standard, ad esempio "English" o
en
.In base a questo identificatore, il modulo applica le risorse linguistiche appropriate per elaborare il testo.
Se il set di dati non contiene tali identificatori, usare il modulo Rileva lingua per analizzare in anticipo la lingua e generare un identificatore.
Suggerimento
Se viene inclusa una lingua non supportata, viene generato un errore. Per altre informazioni, vedere la sezione Note tecniche.
Rimuovi per parte del riconoscimento vocale: selezionare questa opzione se si vuole applicare l'analisi della parte della voce. È quindi possibile usare i tag part-of-speech per rimuovere determinate classi di parole.
- Rimuovi sostantivi: selezionare questa opzione per rimuovere i sostantivi.
- Rimuovi aggettivi: selezionare questa opzione per rimuovere gli aggettivi.
- Rimuovi verbi: selezionare questa opzione per rimuovere i verbi.
Per altre informazioni sul metodo di identificazione della parte del riconoscimento vocale usato, vedere la sezione Note tecniche.
Colonna di testo da pulire: selezionare la colonna o le colonne da pre-elaborare.
Rimuovi parole non valide: selezionare questa opzione se si vuole applicare un elenco di parole non parole non valide predefinito alla colonna di testo. L'arresto della rimozione di parole viene eseguito prima di qualsiasi altro processo.
Gli elenchi di parole non intesi dipendono dalla lingua e personalizzabili; Per altre informazioni, vedere la sezione Note tecniche.
Lemmatization (Lemmatizzazione): selezionare questa opzione se si vuole che le parole siano rappresentate nel formato canonico. Questa opzione è utile per ridurre il numero di occorrenze univoche di token di testo altrimenti simili.
Il processo di lemmatizzazione è altamente dipendente dalla lingua; per informazioni dettagliate, vedere la sezione Note tecniche.
Rileva frasi: selezionare questa opzione se si vuole che il modulo inserisca un segno di limite della frase durante l'esecuzione dell'analisi.
Questo modulo usa una serie di tre caratteri barra verticale per
|||
rappresentare il terminatore di frase.Facoltativamente, è possibile eseguire operazioni di ricerca e sostituzione personalizzate usando espressioni regolari.
- Espressione regolare personalizzata: definire il testo che si sta cercando.
- Stringa di sostituzione personalizzata: definire un singolo valore di sostituzione.
Normalizza maiuscole e minuscole: selezionare questa opzione se si desidera convertire i caratteri maiuscoli ASCII nelle relative forme minuscole.
Se i caratteri non sono normalizzati, la stessa parola in lettere maiuscole e minuscole viene considerata due parole diverse: ad esempio,
AM
è uguale aam
.Facoltativamente, è possibile rimuovere i tipi di caratteri o le sequenze di caratteri seguenti dal testo di output elaborato:
- Rimuovi numeri: selezionare questa opzione per rimuovere tutti i caratteri numerici per la lingua specificata.
L'identificazione di ciò che costituisce un numero dipende dal dominio e dalla lingua. Se i caratteri numerici sono parte integrante di una parola nota, il numero potrebbe non essere rimosso.
Rimuovi caratteri speciali: usare questa opzione per sostituire tutti i caratteri speciali non alfanumerici con il carattere barra
|
verticale.Per altre informazioni sui caratteri speciali, vedere la sezione Note tecniche.
Rimuovi caratteri duplicati: selezionare questa opzione per rimuovere le sequenze che ripetono i caratteri. Ad esempio, una sequenza come "aaaaa" verrà rimossa.
Rimuovi indirizzi di posta elettronica: selezionare questa opzione per rimuovere qualsiasi sequenza del formato
<string>@<string>
.Rimuovi URL: selezionare questa opzione per rimuovere qualsiasi sequenza che includa i prefissi URL seguenti:
http
,https
ftp
www
Espandere le contrazioni dei verbi: questa opzione si applica solo ai linguaggi che usano le contrazioni dei verbi. attualmente, solo inglese.
Ad esempio, selezionando questa opzione, è possibile sostituire la frase "would't stay there" con "would not stay there".
Normalizzare le barre rovesciate in barre: selezionare questa opzione per eseguire il mapping di tutte le istanze di
\\
a/
.Suddividere i token in caratteri speciali: selezionare questa opzione se si desidera interrompere
&
le parole in caratteri come ,-
e così via.Ad esempio, la stringa
MS-WORD
sarebbe separata in due token,MS
eWORD
.
Esempio
Gli esempi seguenti nella Azure AI Gallery illustrano l'uso del modulo Pre-elabora testo:
Come usare un elenco di parole non parole non ergasto personalizzato
Come modificare l'elenco di parole non parole non parola predefinite
Note tecniche
In questa sezione vengono fornite altre informazioni sulla tecnologia di pre-elaborazione del testo sottostante e su come specificare risorse di testo personalizzate.
Linguaggi supportati
Attualmente Machine Learning supporta la pre-elaborazione del testo nelle lingue seguenti:
- Olandese
- Inglese
- Francese
- Tedesco
- Italiano
- Spagnolo
Sono pianificate altre lingue. Per gli annunci, vedere il blog di Microsoft Machine Learning.
Lemmatizzazione
La lemmatizzazione è il processo di identificazione di un singolo formato canonico per rappresentare più token di parola.
Le librerie di elaborazione del linguaggio naturale incluse in Machine Learning Studio (versione classica) combinano le seguenti più operazioni linguistiche per fornire la lemmatizzazione:
Separazione delle frasi: nel testo libero usato per l'analisi del sentiment e altre analisi del testo, le frasi sono spesso in esecuzione o la punteggiatura potrebbe mancare. I testi di input possono costituire un blocco di testo arbitrariamente lungo, che va da un tweet o un frammento a un paragrafo completo o persino a un documento.
Gli strumenti in linguaggio naturale usati da Studio (classico) eseguono la separazione delle frasi come parte dell'analisi lessicale sottostante. Tuttavia, le frasi non sono separate nell'output. Facoltativamente, è possibile specificare che un limite di frase sia contrassegnato per facilitare l'elaborazione e l'analisi del testo.
Tokenizzazione: le regole che determinano i limiti delle parole dipendono dalla lingua e possono essere complesse anche nei linguaggi che usano spazi tra le parole.
Alcune lingue(ad esempio cinese o giapponese) non usano spazi vuoti tra le parole e la separazione delle parole richiede l'analisi morfologica.
Pertanto, i metodi e le regole di tokenizzazione usati in questo modulo forniscono risultati diversi da una lingua all'altra. Queste regole di tokenizzazione sono determinate dalle librerie di analisi del testo fornite da Microsoft Research per ogni lingua supportata e non possono essere personalizzate.
Identificazione della parte del parlato: in qualsiasi sequenza di parole può essere difficile identificare in modo computazionale la parte esatta del parlato per ogni parola. Anche una frase apparentemente semplice, ad esempio "Il tempo vola come una freccia" può avere molte decine di analisi (un esempio noto). Anche le parti del parlato sono molto diverse a seconda della morfologia delle diverse lingue.
In Machine Learning, un modello di disambiguazione viene usato per scegliere la singola parte più probabile del parlato, dato il contesto della frase corrente. Le informazioni sulla parte del parlato vengono usate per filtrare le parole usate come funzionalità e facilitare l'estrazione di frasi chiave. Tuttavia, l'output di questo modulo non include in modo esplicito i tag POS e pertanto non può essere usato per generare testo con tag POS.
Generazione della forma del dizionario: una parola può avere più lemma, o forme di dizionario, ognuna proveniente da un'analisi diversa. Ad esempio, la creazione di parole in inglese ha due possibili lemma: la compilazione se la parola è un sostantivo ("edificio alto" ) o la compilazione se la parola è un verbo ("stanno creando una casa"). In Machine Learning viene generato solo il modulo di dizionario più probabile.
Output di lemmatizzazione di esempio
Origine | Lemmatized con conversione di maiuscole e minuscole |
---|---|
Sta per fare il nuoto | lui i swim |
Si sta per fare una nuotata | lui i go for a swim |
Il nuoto è un bene per la costruzione di un muscolo | swim be good for build muscle |
Sta creando un edificio | lui ho compilato una compilazione |
Tutti gli edifici vengono costruiti | siamo tutti build building |
Nota
I modelli linguistici usati per generare la forma del dizionario sono stati addestrati e testati in base a un'ampia gamma di testi tecnici e di utilizzo generico e vengono usati in molti altri prodotti Microsoft che richiedono API in linguaggio naturale. Tuttavia, il linguaggio naturale è intrinsecamente ambiguo e l'accuratezza del 100% su tutti i vocabolari non è fattibile. Ad esempio, la lemmatizzazione può essere interessata da altre parti del parlato o dal modo in cui la frase viene analizzata.
Se è necessario eseguire una pre-elaborazione aggiuntiva o eseguire l'analisi linguistica usando un vocabolario specializzato o dipendente dal dominio, è consigliabile usare strumenti NLP personalizzabili, ad esempio quelli disponibili in Python e R.
Caratteri speciali
I caratteri speciali sono definiti come singoli caratteri che non possono essere identificati come altre parti del parlato e possono includere segni di punteggiatura: due punti, punti e virgola e così via.
Parole non significative
Una parola non significativa (o parola non significativa) è una parola spesso rimossa dagli indici perché è comune e fornisce poco valore per il recupero delle informazioni, anche se potrebbe essere linguisticamente significativa.
Ad esempio, molti linguaggi fanno una distinzione semantica tra articoli definito e indefinito ("edificio" e "edificio"), ma per machine learning e recupero delle informazioni, le informazioni talvolta non sono rilevanti. Di conseguenza, è possibile decidere di eliminare queste parole.
Il Machine Learning include elenchi delle parole non comuni più comuni per ognuna delle lingue supportate.
Linguaggio | Numero di parole non ergasto | Esempio |
---|---|---|
Olandese | 49 | aan, af, al |
Inglese | 312 | a, about, above |
Francese | 154 | de, des, d', la |
Tedesco | 602 | a, ab, aber |
Italiano | 135 | a, ora, ai |
Spagnolo | 368 | ésa, ésta, éste |
Per praticità, in Archiviazione di Azure è stato reso disponibile un file compresso contenente le parole non di parole non supportate predefinite per tutte le lingue correnti:Stopwords.zip.
Come modificare l'elenco di parole non parole non parola
Si prevede che molti utenti vogliano creare i propri elenchi di parole non ergasto o modificare i termini inclusi nell'elenco predefinito. L'esperimento seguente in Cortana Intelligence Gallery illustra come personalizzare un elenco di parole non parole non bloccate.
Se si modifica l'elenco o si crea un proprio elenco di parole non erre, osservare questi requisiti:
Il file deve contenere una singola colonna di testo. Se è presente una colonna aggiuntiva, è possibile che venga visualizzato l'errore seguente: "Pre-elabora il modello di selezione della colonna di errore di testo "Colonna di testo da pulire" dovrebbe fornire una o più colonne selezionate nel set di dati di input, ma due colonne sono o vengono effettivamente fornite. ( Errore 0022 )"
In questo caso, cercare spazi, tabulazioni o colonne nascoste presenti nel file da cui è stato originariamente importato l'elenco di parole non comuni. A seconda della modalità di preparazione del file, le tabulazioni o le virgole incluse nel testo possono anche causare la creazione di più colonne.
Quando viene visualizzato questo errore, esaminare il file di origine o usare il modulo Seleziona colonne nel set di dati per scegliere una singola colonna da passare al modulo Pre-elabora testo.
Ogni riga può contenere una sola parola. Ai fini dell'analisi del file, le parole sono determinate dall'inserimento di spazi.
L'elenco di parole non vuote non può essere vuoto.
Ordine delle operazioni
In questo modulo è possibile applicare più operazioni al testo. Tuttavia, l'ordine in cui vengono applicate queste operazioni non può essere modificato. Ciò può influire sui risultati previsti.
Ad esempio, se si applica la lemmatizzazione al testo e si usa anche la rimozione delle parole non parole non pronunciate, tutte le parole vengono convertite nei relativi formati lemma prima che venga applicato l'elenco di parole non pronunciate. Pertanto, se il testo include una parola che non è presente nell'elenco delle parole non intema, ma il relativo lemma è incluso nell'elenco delle parole non di base, la parola verrà rimossa.
Assicurarsi di testare in anticipo le condizioni di destinazione per garantire i risultati corretti.
Lingue non supportate
Se la colonna di testo include lingue non supportate da Machine Learning, è consigliabile usare solo le opzioni che non richiedono l'elaborazione dipendente dalla lingua. Ciò consente di evitare risultati imprevisti.
Inoltre, se si usa l'opzione Colonna contiene lingua, è necessario assicurarsi che nel testo elaborato non siano incluse lingue non supportate. Se nel set di dati è presente un linguaggio non supportato o il relativo identificatore, viene generato l'errore di runtime seguente:
"Errore di pre-elaborazione del testo (0039): specificare una lingua supportata".
Per evitare errori nell'intero esperimento perché è stata rilevata una lingua non supportata, usare il modulo Dividi dati e specificare un'espressione regolare per dividere il set di dati in linguaggi supportati e non supportati.
Ad esempio, l'espressione regolare seguente suddivide il set di dati in base alla lingua rilevata per la colonna Sentence
:
\"Sentence Language" Dutch|English|French|Italian|Spanish
Se si dispone di una colonna che contiene l'identificatore di lingua o se è stata generata una colonna di questo tipo, è possibile usare un'espressione regolare come la seguente per filtrare in base alla colonna identificatore:
\"Sentence Iso6391 Name" nl|en|fr|it|es
Input previsti
Nome | Tipo | Descrizione |
---|---|---|
Set di dati | Tabella dati | Dati di input |
Parole non pronunciate | Tabella dati | Elenco personalizzato facoltativo di parole non riservate da rimuovere |
Parametri del modulo
Nome | Tipo | Intervallo | Facoltativo | Predefinito | Descrizione |
---|---|---|---|---|---|
Rimuovere gli URL | Boolean | True Falso |
Necessario | true | Rimuovere gli URL |
Linguaggio | Linguaggio | Inglese Spagnolo Francese Olandese Tedesco Italiano |
Necessario | Inglese | Selezionare la lingua da pre-elaborare |
Colonna di testo da pulire | Selezione colonne | Necessario | StringFeature | Selezionare la colonna di testo da pulire | |
Espressione regolare personalizzata | string | Facoltativo | Specificare l'espressione regolare personalizzata | ||
Stringa di sostituzione personalizzata | string | Facoltativo | Specificare la stringa di sostituzione personalizzata per l'espressione regolare personalizzata | ||
Rimuovere le parole non pronunciate | Boolean | Necessario | true | Rimuovere le parole non pronunciate | |
Lemmatizzazione | Boolean | Necessario | true | Usare la lemmatizzazione | |
Rimuovi per parte del riconoscimento vocale | Tipo True False | true false |
Necessario | Falso | Indicare se è necessario usare l'analisi della parte della voce per identificare e rimuovere determinate classi di parole |
Rimuovere i sostantivi | Boolean | Si applica quando è selezionata l'opzione Filtra per parte del riconoscimento vocale | true | Rimuovere i sostantivi | |
Rimuovere gli aggettivi | Boolean | Si applica quando è selezionata l'opzione Filtra per parte del riconoscimento vocale | true | Rimuovere gli aggettivi | |
Rimuovere i verbi | Boolean | Si applica quando è selezionata l'opzione Filtra per parte del riconoscimento vocale | true | Rimuovere i verbi | |
Rilevare le frasi | Boolean | Necessario | true | Rilevare le frasi aggiungendo un carattere di terminazione della frase \"||| \" che può essere usato dal modulo n-gram features extractor | |
Normalizzare la combinazione di maiuscole e minuscole | Boolean | Necessario | true | Normalizzare la combinazione di maiuscole e minuscole | |
Rimuovere i numeri | Boolean | Necessario | true | Rimuovere i numeri | |
Rimuovere i caratteri speciali | Boolean | Necessario | true | Rimuovere i caratteri speciali non alfanumerici e sostituirli con il carattere \"|\" | |
Rimuovere i caratteri duplicati | Boolean | Necessario | true | Rimuovere i caratteri duplicati | |
Rimuovere gli indirizzi di posta elettronica | Boolean | Necessario | true | Rimuovere gli indirizzi di posta elettronica |
Output
Nome | Tipo | Descrizione |
---|---|---|
Set di dati di risultati | Tabella dati | Set di dati di risultati |
Eccezioni
Eccezione | Descrizione |
---|---|
Errore 0003 | Si verifica un'eccezione se uno o più input sono Null o vuoti. |
Errore 0030 | Viene generata un'eccezione se non è possibile scaricare un file. |
Errore 0048 | Viene generata un'eccezione quando non è possibile aprire un file. |
Errore 0049 | Viene generata un'eccezione quando non è possibile analizzare un file. |
Per un elenco di errori specifici dei moduli di Studio (versione classica), vedere l'Machine Learning codici di errore.
Per un elenco delle eccezioni API, vedere l'Machine Learning di errore dell'API REST.