Ho testo memorizzato in una stringa python.Identificazione di parole e frasi importanti nel testo
What I Want
- Per identificare le parole chiave in quel testo.
- per identificare N-gram in quel testo (idealmente più di solo bi e tri grammi).
Tenete a mente ...
- Il testo potrebbe essere di piccole dimensioni (ad esempio Tweet dimensioni)
- Il testo potrebbe essere di mezzo (ad esempio articolo giornalistico dimensioni)
- Il testo potrebbe essere grande (ad esempio libro o capitolo di dimensioni)
Cosa I have
sto già utilizzando nltk per rompere il corpus in token e rimuovere parole non significative:
# 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')]
Sono consapevole del BigramCollocationFinder e TrigramCollectionFinder che fa exaclty quello che sto cercando per quei due casi.
La questione
ho bisogno di consigli per n-grammi di ordine superiore, migliorando il tipo di risultati che provengono da BCF e TCF, e consigli sul modo migliore per identificare le parole chiave individuali più uniche.
Grazie mille!
Spero di non re-inventare le ruote dove possibile (tf-idf I posso solo supporre che sia fatto da qualche parte in nltk ma sto avendo qualche problema a capire i ganci). Simile per N-grammi, anche se mi sto rapidamente rendendo conto che se voglio più di trilogrammi, la ruota non è stata necessariamente implementata (e, onestamente, più di tre grammi probabilmente non sono utili) – slifty
Credo sia fondamentale . Durante l'elaborazione del corpus, il calcolo di tf, df può essere eseguito rapidamente e un DB può aiutare a memorizzare l'indice invertito. Ancora meglio, implementa un indice invertito posizionale. N-grammi sono deprecati :). – hymloth