--- name: words_to_dataset kind: function lang: py domain: datascience version: "1.0.0" purity: pure signature: "def words_to_dataset(texts: Iterable[str | None], min_ocurrencias: int = 1, eliminar_stopwords: bool = False) -> list[dict]" description: "Extrae palabras y sus ocurrencias de un iterable de textos. Tokeniza con \\b\\w+\\b, convierte a mayusculas, cuenta con Counter, filtra por minimo de ocurrencias y opcionalmente elimina stopwords en espanol. Sin pandas." tags: [nlp, text, words, frequency, counter, stopwords, spanish, datascience, pendiente-usar] params: - name: texts desc: Iterable de strings o None. Los None se ignoran silenciosamente. - name: min_ocurrencias desc: Numero minimo de ocurrencias para incluir una palabra. Default 1. - name: eliminar_stopwords desc: Si True, filtra un conjunto embebido de stopwords comunes en espanol. output: "Lista de dicts {'palabra': str, 'ocurrencias': int} ordenada por ocurrencias descendente." uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "" imports: [] tested: true tests: - "cuenta palabras repetidas" - "eliminar stopwords filtra del" - "min ocurrencias filtra" - "none ignorados" - "lista vacia" - "orden descendente" test_file_path: "python/functions/datascience/tests/test_words_to_dataset.py" file_path: "python/functions/datascience/words_to_dataset.py" source_repo: "internal:footprint_aurgi" source_license: "internal-aurgi" source_file: "fuzzy_joins/arreglo_fuzzy.py" --- ## Ejemplo ```python from words_to_dataset import words_to_dataset texts = ["calle mayor", "calle del sol", "avenida principal"] result = words_to_dataset(texts) # [{"palabra": "CALLE", "ocurrencias": 2}, {"palabra": "MAYOR", "ocurrencias": 1}, ...] result_clean = words_to_dataset(texts, eliminar_stopwords=True) # "DEL" no aparece ``` ## Notas Stopwords embebidas (frozenset de ~40 palabras ES). Funcion pura: solo stdlib (re, collections.Counter). Tokens en mayusculas para unificar "Calle" y "CALLE".