Forum
>>
Principianti
>>
Textual Data Cleaning
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da ErcoleL99 |
2022-07-18 15:36:46 - Textual Data Cleaning
|
Ho usato un OCR su migliaia di file pdf per creare dataset CSV di discorsi parlamentari. Nel dataset sono presenti due colonne: una contiene il testo dei discorsi e l'altra contiene i nomi degli oratori che hanno pronunciato il discorso.
Il problema è il seguente. A volte l'OCR ha unito due discorsi insieme. In particolare, il nome dell'oratore B e il suo intervento sono contenuti nel testo del discorso dell'oratore A (nella colonna discorsi). Ora, dato che il nome dell'oratore è sempre interamente in lettere maiuscole, esiste un metodo per risolvere questo problema in Python? Per esempio, c'è un modo per dire a Python che in tutti i casi in cui c'è una serie di parole interamente in maiuscolo nel testo di un discorso deve prendere quelle parole e metterle nelle colonne degli oratori e allo stesso tempo prendere le parole che seguono e inserirle nella rispettiva colonna dei discorsi, creando una nuova riga nel dataframe? Di seguito un'illustrazione del problema. Situazione attuale: | Speaker | Speech | | ---------------------------| -------------------------------------------------------------| | SPEAKER ALPHA | Lorem ipsum. SPEAKER BETA dolor sit amet | | SPEAKER GAMMA | Nunc tincidunt tincidunt erat | Ciò di cui ho bisogno | Speaker | Speech | | ----------------------------| ------------------------------------------| | SPEAKER ALPHA | Lorem ipsum. | |SPEAKER BETA | dolor sit amet | | SPEAKER GAMMA | Nunc tincidunt tincidunt erat | Grazie per l'aiuto! |
|
Scritto da Daniele aka Palmux |
2022-07-19 11:41:22 - Re: Textual Data Cleaning
|
Ciao e benvenuto.
Mi verrebbe da suggerirti di estrarre dalla stringa del discorso quello che è scritto in maiuscolo e sostituirlo con quello che ti pare, anche nulla come il caso sotto (nel re.sub è il "" dopo la prima virgola, se mettessi " " aggiungerebbe uno spazio ad esempio). >>> import re >>> stringa = 'Lorem ipsum. SPEAKER BETA dolor sit amet' >>> stringa = re.sub(r'\b[A-Z]+(?:\s+[A-Z]+)*\b',"", stringa) >>> print(stringa) Lorem ipsum. dolor sit amet Da li poi puoi applicare tutti quello che ti interessa, tagliare il testo, manipolarlo o quello che decidi. Fammi sapere se ti è utile. Cya |
Pagina: 1
Esegui il login per scrivere una risposta.