def frecuencia_de_palabras(self) -> Dict[str, int]: if self._frecuencia_de_palabras is None: ms_tex = (m.texto for m in self.mensajes) ps = flat_map(ms_tex, lambda x: re.split(sep, x)) palabras = (p for p in ps if len(p) > 0 and p not in self.palabras_huecas) self._frecuencia_de_palabras = groups_size(palabras, fkey=identity) return self._frecuencia_de_palabras
def frecuencia_de_palabras_por_usuario(self) -> Dict[UsuarioPalabra, int]: if self._frecuencia_de_palabras_por_usuario is None: ms_us_tex = ((m.usuario, m.texto) for m in self.mensajes) plsu = (UsuarioPalabra.of(u, p) for u, t in ms_us_tex for p in re.split(sep, t)) plsuf = (pu for pu in plsu if len(pu.palabra) > 0 and pu.palabra not in self.palabras_huecas) self._frecuencia_de_palabras_por_usuario = groups_size(plsuf) return self._frecuencia_de_palabras_por_usuario
def numero_de_estaciones_por_bicis_disponibles(self) -> dict[int, int]: return groups_size(self.estaciones, lambda e: e.free_bikes)
def _numero_de_mensajes_por_propiedad( self, p: Callable[[Mensaje], P]) -> Dict[P, int]: return groups_size(self.mensajes, fkey=p)
def numero_de_palabras_por_resto_de_usuarios(self) -> Dict[str, int]: return groups_size( self.frecuencia_de_palabras_por_resto_de_usuarios.items(), fkey=lambda e: e[0].usuario)
def frecuencias_de_palos(self) -> dict[int, int]: if not self._frecuencias_de_palos: self._frecuencias_de_palos = groups_size(self._cartas, fkey=lambda c: c.palo) return self._frecuencias_de_palos
def frecuencias_de_valores(self) -> dict[int, int]: if not self._frecuencias_de_valores: self._frecuencias_de_valores = groups_size(self._cartas, fkey=lambda c: c.valor) return self._frecuencias_de_valores
def frecuencias_de_palabras(file: str) -> OrderedDict[str, int]: d = groups_size(palabras_no_huecas(file)) return OrderedDict(sorted(d.items(), key=lambda t: t[0]))