Tengo el texto almacenado en una cadena de python.Identificación de palabras y frases importantes en el texto
lo que quiero
- para identificar las palabras clave en el texto.
- para identificar N-grams en ese texto (idealmente más que solo bi y tri gramos).
Tenga en cuenta ...
- El texto puede ser pequeña (por ejemplo Tweet calibrado)
- El texto podría ser media (por ejemplo, el artículo de noticias de tamaño)
- El texto podría ser grande (por ejemplo, el libro o capítulo de tamaño)
What I Have
ya estoy usando nltk para romper el corpus en tokens y quitar palabras vacías:
# split across any non-word character
tokenizer = nltk.tokenize.RegexpTokenizer('[^\w\']+', gaps=True)
# tokenize
tokens = tokenizer.tokenize(text)
# remove stopwords
tokens = [w for w in tokens if not w in nltk.corpus.stopwords.words('english')]
Soy consciente de la BigramCollocationFinder y TrigramCollectionFinder cual hace exaclty lo que estoy buscando para esos dos casos.
La pregunta
necesito consejos de n-gramas de orden superior, la mejora de los tipos de resultados que provienen de FBC y TCF, y asesoramiento sobre la mejor manera de identificar las más singulares palabras clave individuales.
¡Muchas gracias!
Espero no reinventar las ruedas cuando sea posible (tf-idf I solo puedo suponer que se hace en algún lugar de nltk pero estoy teniendo algunos problemas para descifrar los enganches). Similar para N-grams, aunque me estoy dando cuenta rápidamente de que si quiero más de tres gramos, la rueda no se ha implementado necesariamente (y, sinceramente, más de tres gramos probablemente no sean útiles) – slifty
Creo que es fundamental . A medida que procesa su corpus, el cálculo de tf, df se puede hacer rápidamente y un DB puede ayudar a almacenar el índice invertido. Aún mejor, implemente un índice posicional invertido. N-grams están en desuso :). – hymloth