Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Analisi di conversazioni
Forum - PHP - Analisi di conversazioni

Avatar
drew (Normal User)
Newbie


Messaggi: 13
Iscritto: 22/03/2011

Segnala al moderatore
Postato alle 22:24
Sabato, 05/12/2015
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! :asd::asd::asd:

Ultima modifica effettuata da drew il 05/12/2015 alle 22:45
PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 15:59
Domenica, 06/12/2015
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?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:35
Lunedì, 07/12/2015
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 :om:

Forse a natale abbiamo un nuovo ciaffo sotto l'albero lol.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
drew (Normal User)
Newbie


Messaggi: 13
Iscritto: 22/03/2011

Segnala al moderatore
Postato alle 23:37
Lunedì, 07/12/2015
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?

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 0:48
Martedì, 08/12/2015
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.


PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 18:35
Martedì, 08/12/2015
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.

PM Quote
Avatar
drew (Normal User)
Newbie


Messaggi: 13
Iscritto: 22/03/2011

Segnala al moderatore
Postato alle 2:40
Giovedì, 10/12/2015
Testo quotato

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...

PM Quote
Avatar
lumo (Member)
Expert


Messaggi: 449
Iscritto: 18/04/2010

Segnala al moderatore
Postato alle 23:23
Venerdì, 11/12/2015
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.

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 23:32
Venerdì, 11/12/2015
Testo quotato

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
PM Quote