veces una tiene spanish saber repite repetidas que pln palabras palabra lista letras frase elemento cuantas contar con como python nlp nltk

una - pln con python



recuento de palabras reales en NLTK (2)

Eliminar la puntuación

Usa una expresión regular para filtrar la puntuación

import re from collections import Counter >>> text = [''this'', ''is'', ''a'', ''sentence'', ''.''] >>> nonPunct = re.compile(''.*[A-Za-z0-9].*'') # must contain a letter or digit >>> filtered = [w for w in text if nonPunct.match(w)] >>> counts = Counter(filtered) >>> counts Counter({''this'': 1, ''a'': 1, ''is'': 1, ''sentence'': 1})

Promedio de caracteres

Suma los largos de cada palabra. Divide por el número de palabras.

>>> float(sum(map(len, filtered))) / len(filtered) 3.75

O puede hacer uso de los conteos que ya hizo para evitar algunos recalculados. Esto multiplica la longitud de la palabra por el número de veces que la vimos, luego suma todo eso.

>>> float(sum(len(w)*c for w,c in counts.iteritems())) / len(filtered) 3.75

El libro NLTK tiene un par de ejemplos de recuentos de palabras, pero en realidad no son recuentos de palabras sino contadores de fichas. Por ejemplo, el Capítulo 1, Counting Vocabulary dice que lo siguiente da un conteo de palabras:

text = nltk.Text(tokens) len(text)

Sin embargo, no es así - da un recuento de palabras y puntuación. ¿Cómo se puede obtener un conteo real de palabras (ignorando la puntuación)?

Del mismo modo, ¿cómo se puede obtener el número promedio de caracteres en una palabra? La respuesta obvia es:

word_average_length =(len(string_of_text)/len(text))

Sin embargo, esto estaría fuera porque:

  1. len (string_of_text) es un recuento de caracteres, incluidos espacios
  2. len (texto) es un conteo de tokens, excluyendo espacios pero incluyendo signos de puntuación, que no son palabras.

¿Me estoy perdiendo de algo? Esta debe ser una tarea de PNL muy común ...


Tokenización con nltk

from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer(r''/w+'') text = "This is my text. It icludes commas, question marks? and other stuff. Also U.S.." tokens = tokenizer.tokenize(text)

Devoluciones

[''This'', ''is'', ''my'', ''text'', ''It'', ''icludes'', ''commas'', ''question'', ''marks'', ''and'', ''other'', ''stuff'', ''Also'', ''U'', ''S'']