Contar la cantidad de veces que una palabra aparece en BigQuery columna

0

Pregunta

Tengo una columna con algunas cadenas largas y la necesidad de poder contar las palabras más usadas en él.

Necesito algo que funcione como esta https://towardsdatascience.com/very-simple-python-script-for-extracting-most-common-words-from-a-story-1e3570d0b9d0. El conteo de palabras en parte al menos...

Y es muy importante que tengo la opción a la lista negra de algunas palabras por lo que no cuentan.

google-bigquery
2021-11-23 18:33:36
1

Mejor respuesta

2

Trate de abajo enfoque simple

with blacklist as (
  select 'with' word union all 
  select 'that' union all
  select 'add more as you see needed'
)
select lower(word) word, count(*) frequency
from data, unnest(regexp_extract_all(col, r'[\w]*')) word
where length(word) > 3  
and word not in (select word from blacklist)
group by word
order by frequency desc     

 
2021-11-23 22:40:30

no funcionó... las frases en portugués, esto puede ser el problema? o tal vez yo no realizar el derecho expansión en el código idk
Murilo

), lista negra ( seleccione 'con' palabra union all select 'que' la unión de todos los seleccione 'agregar más a medida que vea necesarios' ) seleccione inferior(palabra) de la palabra, count() frecuencia de T0, unnest(regexp_extract_all(T0.columna, r'[\w]')) palabra donde la longitud(word) > 3 y la palabra no en (seleccione la palabra de la lista negra) de grupo por orden de las palabras por frecuencia desc ///he intentado esto..
Murilo

por favor, ser más específico - ¿qué quieres decir con "no funcionó"? proporcionar un ejemplo de los datos de entrada. etc....
Mikhail Berlyant

mi mal, me aparece este mensaje "Esta consulta no devuelve resultados".
Murilo

no importa, había un error en mi consulta original, funciona perfectamente ahora, muchas gracias
Murilo

Gracias por confirmar. Me alegro de que funcione para usted. Considerar también la votación, la respuesta si me sirvió :o)
Mikhail Berlyant

por cierto, estoy mirando los resultados y el código es el corte de palabras que contienen algunos "brasileña de letras" como la "Ç" "ã" "õ", es allí una manera de hacer que considerar a aquellos. En una palabra como "información", que cuenta como "informa"
Murilo

seguro factible, va a comprobar en breve. pero mientras tanto, comprobar mi en mis otras respuestas de cómo tratar a los acentos, etc. Debe ser por lo menos algunas respuestas relacionadas a :o)
Mikhail Berlyant

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................