¿Redes de co-ocurrencia de palabras clave en JMP?¡Hola comunidad! ¿Alguien ha descubierto cómo crear un gráfico de red de coincidencia de palabras clave en JMP que se pueda guardar como un script en la tabla de datos con interactividad con otros gráficos? Puedo llamar a R para hacer el gráfico, pero es estático cuando lo devuelvo a JMP. Soy un usuario estándar de JMP y me encantaría encontrar una solución que no incluya las palabras “disponible solo en JMP Pro”, ya que una licencia de JMP Pro está muy por fuera de mi presupuesto. Gracias de antemano por el consejo que cualquiera puede brindar.GráficosScriptingRe: redes de cooccurrencia de palabras clave en JMPPuede obtener algo relacionado, tal vez, como esto. Y está conectado a la mesa. Y no Pro.
Gráfico de constelación de agrupación
// load some documents that might separate into some categories
dt1 = Open( "f:/gutenberg/books5000.jmp" ); // 5000 is too many, subset 36...
dt1 << selectwhere( Starts With( Loc Class, "D501" ) | Starts With( Loc Class, "TX:" ) | Starts With( Loc Class, "Q" ) | Starts With( Loc Class, "P" ) );
dt2 = dt1 << subset( selected rows( 1 ) );
Close( dt1, nosave );
originalnames = dt2 << getColumnNames();
te = dt2 << Text Explorer(
Text Columns( :text ), // the entire document is in one cell of the row
Add Stop Words(
{"agreement", "almost", "another", "company", "copyright holder", "electronic", "foundation", "gutenberg", "literary archive", "little",
"person or entity", "project", "public domain", "research", "without"}
),
Minimum Characters per Word( 6 ),
Stemming( "Stem for Combining" ),
Language( "English" )
);
te << savedocumenttermmatrix( Maximum Number of Terms( 300 ), Minimum Term Frequency( 25 ), Weighting( "TF IDF" ) );//BINARY would use ALL rather than !any, below
te << closewindow;
// remove all-connected columns
allnames = dt2 << getColumnNames();
For( iname = N Items( allnames ), iname > N Items( originalnames ), iname -= 1,
If( !Any( dt2[0, iname] ),
dt2 << deletecolumns( iname )
)
);
allnames = dt2 << getColumnNames();
cols = (N Items( originalnames ) + 1) :: N Items( allnames );
dt2 << Hierarchical Cluster( Y( allnames[cols] ),
Label( Transform Column( "Label", Character, Formula( Left( left(LoC Class,4)||:Subject||:Title, 20 ) ) ) ), // build your own identifier here
Method( "Ward" ), Standardize Data( 1 ), Dendrogram Scale( "Distance Scale" ),
Number of Clusters( 4 ), Constellation Plot( 1 ), Show Dendrogram( 0 ),
SendToReport(Dispatch({"Constellation Plot"},"Clust Hier",FrameBox,{Frame Size( 1056, 716 )}))
);Re: redes de cooccurrencia de palabras clave en JMPHola Craige,
¡Esto es brillante! No soy un genio de JSL, pero lo hice funcionar con mis datos. Lo único que no puedo averiguar cómo hacer es crear un identificador de etiqueta que use los nombres de las columnas para los términos en la matriz de términos del documento. La matriz de términos de mi documento tiene 252 columnas. Cada nombre de columna se forma automáticamente con los términos valor derivado y el sufijo TF IDF2. Por ejemplo, una columna se llama "distribut · TF IDF 2", otra se llama "montaña · TF IDF 2". Me gustaría que las etiquetas de los puntos de la constelación fueran el término derivado, sin el sufijo (por ejemplo, distribut · o mountain ·). ¿Existe una manera fácil de usar los valores de los nombres de columna de la matriz de términos del documento como etiquetas de puntos?
Muchas gracias por proporcionar este guión.
Casey
Re: redes de cooccurrencia de palabras clave en JMPNo estoy seguro; Creo que para cada fila querrás las 3 o 4 palabras más importantes (nombres de columna) para esa fila, y podrían ser las que tengan el mayor valor. ¿Se ve bien cuando miras algunas filas? Si es así, no sería un gran paso de preprocesamiento crear esa columna de etiqueta.
Re: redes de cooccurrencia de palabras clave en JMPUsar una fila a la vez puede no ser la respuesta correcta; eso no tendrá que ser una (s) palabra (s) común (s) con vecinos en el diagrama. A menos que dos vecinos espaciales compartan algunas palabras.
Re: redes de cooccurrencia de palabras clave en JMPHola Craige,
Me acabo de dar cuenta de que el script que envió usa valores en un DTM para crear grupos de documentos basados en usos similares de términos entre documentos. En este caso, cada nodo representa un documento y cada vínculo se basa en un valor de distancia del análisis de conglomerados. Estoy intentando hacer algo ligeramente diferente.
Me gustaría crear un gráfico de constelación como este, donde cada nodo representa un TERM en el DTM y cada enlace se basa en algún tipo de estadística que describe la co-ocurrencia de palabras clave. Esto está muy fuera de mi experiencia. Me encanta la idea de una trama de este tipo, pero no estoy seguro de si sería apropiado reformatear el DTM de alguna manera para que se pueda realizar un análisis de clúster donde los términos terminen como nodos (o cómo haría esto). Esto lograría mi objetivo de tener un gráfico en JMP basado en la relación de términos que pueda usar como un filtro global en una visualización de datos interactiva. Sin embargo, ¿este tipo de finalización crearía un gráfico que no se basa en las mejores prácticas de análisis de texto? Para aquellos de ustedes que comprenden este campo, ¿este uso del análisis de conglomerados sería inapropiado para ilustrar la co-ocurrencia de palabras clave? Si es así, ¿alguien ha creado algo que pueda realizar análisis de coincidencia de palabras clave (utilizando métodos estadísticos adecuados para este tipo de análisis) en JMP?Me interesa escuchar los comentarios de la comunidad sobre esto. Pido disculpas porque mi publicación original no fue más clara. Craige, definitivamente usaré el script que envió en su primera respuesta para cuando necesite agrupar documentos. Gracias.
Re: redes de cooccurrencia de palabras clave en JMPSolo agregando a @Craige_Hales 'Ayuda que puede usar el Análisis de clases latentes para agrupar filas (documentos) y el Análisis semántico latente para agrupar columnas (términos). Estas plataformas están disponibles en Analizar> Métodos multivariados. (También están integrados y especializados para Text Explorer en JMP Pro.) Consulte la documentación de JMP ...
La idea es que JMP tenga muchas plataformas potentes que funcionen juntas. Mi analogía es una calculadora gráfica. Hay muchos botones y, a menudo, se necesita más de un botón para hacer el trabajo. Es decir, no hay un botón que 'lo haga todo', pero puedes llegar allí. Debe aprender JMP como primer enfoque en lugar de intentar volver a crear una aplicación personalizada. ¿Por qué reinventar la rueda?
Re: redes de cooccurrencia de palabras clave en JMPSoy un leal al JMP desde 1994, así que soy consciente de sus muchas fortalezas y de cómo los diferentes problemas se pueden resolver a través de diferentes vías (esa es solo una de las cosas que me encantan). Siempre empiezo con JMP. Mi comunidad profesional está dominada por usuarios de R. Pueden hacer todo tipo de análisis, pero la capacidad de R para crear visualizaciones de datos interactivas (lo mío) ni siquiera está en la misma liga que JMP. Entonces, me quedo con JMP. Sin embargo, a medida que evolucionan los métodos estadísticos, una mayor fracción de análisis más nuevos es posible solo a través de R, o mediante JMP Pro, pero sin usar una licencia JMP estándar (por ejemplo, varias plataformas de análisis de texto, procedimientos básicos de selección de modelos que son una práctica estándar en mi campo ). Esto hace que sea más difícil para mí hacer análisis holísticos de principio a fin en JMP. A medida que JMP Pro y JMP estándar se separan cada vez más, me encuentro consultando a la comunidad para encontrar posibles soluciones a mis problemas que pueda sacar con una licencia estándar de JMP.La publicación de Craige fue un gran ejemplo de la comunidad que me ayudó a encontrar una manera de agrupar documentos usando un DTM en JMP estándar. Mi publicación más reciente preguntó si existe una solución similar que pueda ser posible agrupar términos usando un DTM en JMP estándar.
En este caso específico, estoy tratando de incorporar un gráfico de red de co-ocurrencia de palabras clave en una visualización interactiva existente que he creado en JMP estándar.No creo que esté intentando reinventar la rueda. Creo que me estoy encontrando con un muro de funcionalidad en la licencia estándar de JMP (tal vez) o con una falta de conocimiento / creatividad de mi parte sobre cómo lograr esto (lo más probable).No puedo pagar JMP Pro. Esta es mi realidad y no veo que cambie pronto. Tanto las plataformas de análisis de clases latentes como de análisis semántico latente que mencionaste solo están disponibles en JMP Pro. Cuando hago preguntas sobre las capacidades de la licencia estándar de JMP y obtengo respuestas que me dicen que solo puedo hacer algo en JMP Pro, realmente no me ayuda. Me alegra que mis preguntas ayuden a resolver los problemas de los usuarios de JMP Pro, pero todavía me quedo con mi enigma original de intentar hacer algo en JMP estándar que requiere más creatividad y conocimiento (dos cualidades asombrosas de la comunidad de usuarios de JMP) que Poseo por mi cuenta.
Estoy agradecido por JMP, por el personal de soporte técnico de JMP (que es increíble) y por esta comunidad de usuarios. Hasta que mi presupuesto sea mucho más grande de lo que nunca ha sido, probablemente seguiré haciendo preguntas aquí sobre formas creativas de hacer las cosas usando una licencia JMP estándar (que a veces puede ir más allá). Estoy de acuerdo con Mark en que primero se necesita aprender JMP (lo que he disfrutado durante más de 25 años). Aún así, a veces me cuesta entender cómo satisfacer mis necesidades de análisis y visualización en expansión con una licencia JMP estándar. Todavía espero que haya una forma legítima de usar un JMP estándar para crear un diagrama de red de co-ocurrencia de palabras clave para agrupar términos que tenga una interactividad completa y se pueda guardar como un script de tabla JMP. No se como hacer esto. Dado mi proceso normal de leer la documentación de JMP, buscar publicaciones de la comunidad de JMP y simplemente experimentar por mi cuenta, no he podido averiguar cómo hacer esto. Si simplemente no se puede hacer sin una licencia de JMP Pro, lo dejaré a la deriva y dejaré este tipo de gráfico fuera de mi visualización.
Perdón por la larga respuesta. Si alguien de JMP quiere opinar sobre algunas estrategias sobre cómo arreglárselas con JMP estándar cuando no puede pagar JMP Pro, me encantaría recibir algunos consejos (parece un buen tema de blog). Quizás no sea un tema para este foro de discusión. Pido disculpas si no lo es. No dude en ponerse en contacto conmigo fuera de línea en caseylott@ymail.com si alguien tiene alguna sugerencia para esto.