Estrazione di testo: trova una determinata parola, quindi ottieni le parole su entrambi i lati di essa<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto cercando di estrarre il testo nei commenti inseriti manualmente. Per fortuna c'è un po' di uno schema. All'interno delle prime 10 parole, se compare la parola "to", le parole su entrambi i lati di "to" sono le parole che voglio.
Ho fatto il piccolo passo per creare una colonna Espressione con la formula: Parole[Commenti]. Ha restituito un elenco delle parole dalla colonna Commenti: piuttosto interessante.
Quindi, cosa devo fare dopo per scoprire se "to" ricorre nelle prime dieci parole e, in tal caso, afferrare le parole su entrambi i lati di "to"?
Re: Text mining: trova una determinata parola, quindi prendi le parole su entrambi i lati di essaGrazie a tutti! Ci scusiamo per la risposta tardiva: ero impegnato a eseguire il text mining per una riunione annuale che si è appena conclusa.
Quindi, ho usato l'approccio della formula di Jeff perché non avevo molto tempo per fare qualcosa di veramente elegante. Ora ho tempo per imparare l'espressione regolare. Svilupperò una soluzione basata su script per questa analisi in modo da poterla fare rapidamente l'anno prossimo.
La pulizia dei dati/estrazione delle informazioni è stata la parte disordinata di questo lavoro. La formula mi ha aiutato a trovare quello che stavo cercando. Ma dovevo ancora lavorare molto in Columns > Ricodifica. Tanto di cappello a coloro che lo hanno reso così potente in JMP12!
A proposito, il text mining sarebbe un eccellente webinar di Mastering JMP .
Re: Text mining: trova una determinata parola, quindi prendi le parole su entrambi i lati di essaSe l'ho detto una volta, l'ho detto un milione di volte.Se hai intenzione di eseguire qualsiasi quantità di estrazione di testo, varrebbe la pena dedicare un'ora all'apprendimento delle espressioni regolari.Tonnellate di fantastici video di YouTube e c'è anche un'ottima sezione su di essi nella Guida agli script.
testo = "Testo di esempio per la domanda." ;
risposta 1 = regolare ( testo , "(\w+) a (\w+)" , "\1" ) ;
risposta2 = regolare ( testo , "(\w+) a (\w+)" , "\2" ) ;
Rispondere = regolare ( testo , "(\w+) a (\w+)" , "\1" || ", " || "\2" ) ;
Stampa ( risposta 1 ) ;
Stampa ( risposta2 ) ;
Stampa ( Rispondere ) ;
produzione:
"testo"
"il"
"testo, il"
Re: Text mining: trova una determinata parola, quindi prendi le parole su entrambi i lati di essaIan@JMP ha un bell'esempio con script.
Se vuoi farlo in una formula di colonna, apparirà così.

Questa formula utilizza a Variabile locale mantenere la posizione di "a".
Ho allegato una tabella di dati con una colonna con questa formula per mostrare come funziona.
NB: Se compare "a" in posizione 10 ti verranno fornite le parole 9 e 11. Se non è quello che vuoi, dovrai aggiungere una condizione aggiuntiva all'interno di If().
Re: Text mining: trova una determinata parola, quindi prendi le parole su entrambi i lati di essaSenza esagerare, forse qualcosa del genere? Il secondo dà "{}" perché l'ultima "parola" è "a". non "a". Ma potresti codificarlo se necessario.
NomiDefaultToHere ( 1 ) ;
parole ThatBracketTo =
Funzione ({ str } , { Locale predefinito } ,
strWords = Parole ( str ) ;
a pos = loc ( strWords , "a" ) ;
parole richieste = {} ;
Se ( a pos <= 10 ,
Se ( a pos > 1 , Inserire ( parole richieste , strWords [ a pos - 1 ])) ;
Se ( a pos < NI articoli ( strWords ) , Inserire ( parole richieste , strWords [ a pos + 1 ])) ;
) ;
Lista di valutazione ( parole richieste ) ;
) ;
testo di esempio = "Ecco una frase che non contiene troppe volte." ;
Stampa ( parole ThatBracketTo ( testo di esempio )) ;
testo di esempio = "Ecco una frase che contiene a." ;
Stampa ( parole ThatBracketTo ( testo di esempio )) ;