drew (Normal User)
Newbie
Messaggi: 13
Iscritto: 22/03/2011
|
Ciaooo, sto sviluppando una piattaforma per l'analisi delle conversazioni (sto raccogliendo chat di Whatsapp e Facebook).
Per ora, dai messaggi estraggo le parole con una regex standard che cerca ( ,.!?/) e voglio migliorare la funzione, facendo in modo che riconosca anche (..., .., ecc) e altre espressioni comuni nelle chat ed errori tipici come sequenze di punteggiatura (parola ! .parola) ed infine mi serve che links, mail, date e ore non vengano suddivisi.
Otre alla regex, per favore, segnalate anche i problemi comuni che si incontrano nel processare conversazioni con errori di ortografia e grammatica ed eventuali soluzioni.
Grazie!
Ultima modifica effettuata da drew il 05/12/2015 alle 22:45 |
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Io dopo aver letto sono rimasto con un enorme punti interrogativo, e l'unica cosa che riesco a pensare è: "bboooooohhhhhh". Cosa vuol dire non vengano divisi link e mai? Cosa hai scritto? Possiamo vedere qualcosa? In che senso ...? Cosa intendi con processare conversazioni?
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
Oltre all'affermazione di DarkJuster...
Il senso del topic?
Cioe non ho capito se e' una richiesta di aiuto su qualcosa
O che abbia descritto cosa sta facendo
Forse a natale abbiamo un nuovo ciaffo sotto l'albero lol.
|
|
drew (Normal User)
Newbie
Messaggi: 13
Iscritto: 22/03/2011
|
Si, è una richiesta di aiuto...
Per processare conversazioni, intendo che il programma estrare le parole usate nei messaggi ed elebora delle statistiche su modelli linguistici pre-inseriti e ne cerca di nuovi, riconoscendo correlazioni di trend.
Per ora, separo le parole cercando lo spazio, la virgola e il punto e, vorrei riuscire a far riconoscere correttamente al programma una percentuale di parole maggiore, ad esempio facedogli splittare prima segmenti divisi dai tre o due punti di sospensione e altri pattern che lo spazio, la virgola e il punto e far si che che link, mails, date(se introduco anche il carattere \) vengano riconosciuti e non vengano divisi come gli altri segmenti.
La domanda è: posso fare tutto usando le regex o devo/è meglio riprocessare gli output con altre funzioni che correggono gli errori?
|
|
TheDarkJuster (Member)
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
|
Se avessi seguito i miei thread sapresti già che io ti risponderei lascia stare le regex.
Analizzando bene il problema non posso non affermare che usare le regex sia la scelta mogliore come semplicità e possibilità di estensione del programma.
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Se la mole di dati è contenuta e la complessità di computazione non è un problema vai per le regex, ti risparmi tutta la complessità di sviluppare un parser, avendone uno bello potente, versatile e gia pronto alle spalle. Con poche di righe di codice puoi identificare gran parte degli schemi che ti servono senza scomodare piu di qualche funzione, in piu avresti a disposizione dei gruppi d caratteri che ti semplificherebbero il compito di identificare cos'è e cosa non è una parola. Lo split secondo caratteri come lo spazio, la virgola e il punto sono piuttosto limitative per un testo articolato.
Fatto il parsing secondo regex a te non rimarrà che lavorare con dei semplici array, molto piu gestibili di una stringa disordinata.
|
|
drew (Normal User)
Newbie
Messaggi: 13
Iscritto: 22/03/2011
|
Postato originariamente da Roby94:
Se la mole di dati è contenuta e la complessità di computazione non è un problema vai per le regex, ti risparmi tutta la complessità di sviluppare un parser, avendone uno bello potente, versatile e gia pronto alle spalle. Con poche di righe di codice puoi identificare gran parte degli schemi che ti servono senza scomodare piu di qualche funzione, in piu avresti a disposizione dei gruppi d caratteri che ti semplificherebbero il compito di identificare cos'è e cosa non è una parola. Lo split secondo caratteri come lo spazio, la virgola e il punto sono piuttosto limitative per un testo articolato.
Fatto il parsing secondo regex a te non rimarrà che lavorare con dei semplici array, molto piu gestibili di una stringa disordinata. |
Grazie mille... |
|
lumo (Member)
Expert
Messaggi: 449
Iscritto: 18/04/2010
|
Potresti avere dei problemi con le regex perché dalla tua descrizione sembrerebbe ti serva fare backtracking, in praticolare per individuare gli errori comuni.
In realtà la risposta da darti è difficile, perché l'analisi linguistica dei testi è un campo in cui si fa molta sperimentazioni e molta ricerca. Vedi cosa ti esce.
|
|
Roby94 (Member)
Guru
Messaggi: 1170
Iscritto: 28/12/2009
|
Postato originariamente da lumo:
Potresti avere dei problemi con le regex perché dalla tua descrizione sembrerebbe ti serva fare backtracking, in praticolare per individuare gli errori comuni. |
Dipende molto da che tipi di errori vorrebbe correggere, in ogni caso, se suddividi prima il testo in una lista di parole risoluta più facile analizzarle una ad una e identificare particolari errori ortografici. Ultima modifica effettuata da Roby94 il 11/12/2015 alle 23:33 |
|