ABmagia
Hola,
He estado jugando con la visualización de Word Cloud y me pregunto si hay una configuración que le permita cambiar la lógica que se emplea al seleccionar varias palabras en la visualización. Por ejemplo, si vi la palabra «teléfono» y «tienda», es posible que desee ver todos los comentarios que contienen ambas palabras. Sin embargo, en este momento, está configurado como OR donde extraerá comentarios que contengan «teléfono» o «tienda».
Este puede ser el valor predeterminado para la mayoría de las visualizaciones en Power BI, pero pregúntese si hay alguna forma de personalizar la lógica que se usa.
¡Gracias!
Owen Auger
En respuesta a ABmagia
Usé una función Splitter Splitter.SplitTextByWhitespace() para agregar una columna que divide cada oración en palabras. Luego expandí esta columna en nuevas filas.
Aquí está la consulta utilizada en mi enlace de Dropbox.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKslIVUhOLFEoKs0rVorVgQik5KejCuTmlxanIoRyK1FEYgE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Sentence = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Sentence", type text}}), #"Duplicated Column" = Table.DuplicateColumn(#"Changed Type", "Sentence", "Sentence - Copy"), #"Lowercased Text" = Table.TransformColumns(#"Duplicated Column",{{"Sentence - Copy", Text.Lower, type text}}), #"Added Custom" = Table.AddColumn(#"Lowercased Text", "Word", each Splitter.SplitTextByWhitespace([#"Sentence - Copy"])), #"Expanded Word" = Table.ExpandListColumn(#"Added Custom", "Word"), #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Word",{{"Word", type text}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Sentence - Copy"}) in #"Removed Columns"
Con datos de texto reales, imagino que necesitaría limpiar el texto de varias maneras y eliminar la puntuación.
spmvoss
Me doy cuenta de que este es un tema antiguo, pero también es casi exactamente lo que estoy buscando.
Tengo un gran conjunto de datos con registro de horas de trabajo con descripciones para cada entrada. Luego usé un algoritmo externo para extraer palabras clave, que luego se agregaron en una lista separada por comas, consulte la tabla a continuación. Tengo una nube de palabras visual con Palabras clave como categoría y Horas como valores.
Ahora, el problema que tengo con la solución propuesta es que esto haría explotar mi conjunto de datos, considerando que el número promedio de palabras clave es 6/7. ¿Alguien sabría una forma inteligente de resolver esto sin tener muchas líneas duplicadas? Pensé en usar la función FIND(), pero mi problema es que la función ALLSELECTED() devolverá [Updating, Requirements, Document] en lugar de solo Actualizar cuando seleccionamos esa palabra.
Fecha | Proyecto | Horas | Descripción | Palabras clave |
20-07-2020 | Proyecto X | 2.5 | Actualización del documento de requisitos | [Updating, Requirements, Document] |
Owen Auger
Hola @ABmagic
Puede hacer esto creando una medida adecuada y usándola para filtrar un objeto visual de ‘oraciones’.
Vea un modelo ficticio aquí:
https://www.dropbox.com/s/499zocl05bk8bqk/Word%20cloud%20multi-select%20intersection.pbix?dl=0
Tengo una tabla simple llamada Frases que contiene Oración y Palabra columnas
Oración | Palabra |
el gato corre | el |
el gato corre | gato |
el gato corre | carreras |
el perro corre | el |
el perro corre | perro |
el perro corre | carreras |
el raton corre | el |
el raton corre | ratón |
el raton corre | carreras |
mi raton corre | mi |
mi raton corre | ratón |
mi raton corre | carreras |
Creé estas dos medidas:
Word Frequency = COUNTROWS ( Sentences ) Sentence Count With All Words = VAR WordsSelected = ALLSELECTED ( Sentences[Word] ) RETURN COUNTROWS ( FILTER ( VALUES ( Sentences[Sentence] ), VAR WordsInSentence = CALCULATETABLE ( VALUES ( Sentences[Word] ) ) RETURN ISEMPTY ( EXCEPT ( WordsSelected, WordsInSentence ) ) ) )
El Recuento de oraciones con todas las palabras La medida comprueba si las palabras correspondientes a una oración en particular incluyen al menos todas las palabras seleccionadas y cuenta todas las oraciones que cumplen esta condición.
Luego creé una nube de palabras usando Palabra & Frecuencia de palabra y una tabla visual que simplemente contiene el Oración campo.
En la tabla visual, agregué un filtro de nivel visual Recuento de oraciones con todas las palabras > 0.
Luego, seleccionar varias palabras filtra la tabla visual de manera adecuada.
Esto funciona con mi modelo de datos simple, pero podría requerir ajustes dependiendo de cómo estén configuradas sus tablas.
Espero que ayude 🙂
Saludos,
Owen
ABmagia
En respuesta a Owen Auger
¿Alguna forma rápida de crear la columna «palabra»? Tengo más de 1300 filas de comentarios con los que estoy trabajando.
¡Gracias!
Owen Auger
En respuesta a ABmagia
Usé una función Splitter Splitter.SplitTextByWhitespace() para agregar una columna que divide cada oración en palabras. Luego expandí esta columna en nuevas filas.
Aquí está la consulta utilizada en mi enlace de Dropbox.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKslIVUhOLFEoKs0rVorVgQik5KejCuTmlxanIoRyK1FEYgE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Sentence = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Sentence", type text}}), #"Duplicated Column" = Table.DuplicateColumn(#"Changed Type", "Sentence", "Sentence - Copy"), #"Lowercased Text" = Table.TransformColumns(#"Duplicated Column",{{"Sentence - Copy", Text.Lower, type text}}), #"Added Custom" = Table.AddColumn(#"Lowercased Text", "Word", each Splitter.SplitTextByWhitespace([#"Sentence - Copy"])), #"Expanded Word" = Table.ExpandListColumn(#"Added Custom", "Word"), #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Word",{{"Word", type text}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Sentence - Copy"}) in #"Removed Columns"
Con datos de texto reales, imagino que necesitaría limpiar el texto de varias maneras y eliminar la puntuación.
ABmagia
En respuesta a Owen Auger
¡Gracias por esto! ¡Tendré que darle una oportunidad a esto alguna vez! ¡Gracias!
v-yuezhe-msft
@ABmagic,
Me temo que no hay ningún método para personalizar la lógica como se describe en el visual personalizado de Word Cloud. Con respecto a este problema, puede enviar una solicitud de función en el foro de ideas de Power BI.
Saludos,
lidia
ABmagia
En respuesta a v-yuezhe-msft
¿Es lo mismo para todas las visualizaciones dentro de Power BI?
¡Gracias!