6 votes

Identifier les mots et les phrases importants dans un texte

J'ai du texte stocké dans une chaîne python.

Ce que je veux

  1. Identifier les mots clés de ce texte.
  2. pour identifier les N-grammes dans ce texte (idéalement plus que les bi et tri grammes).

Gardez à l'esprit...

  • Le texte peut être petit (par exemple, de la taille d'un tweet).
  • Le texte peut être de taille moyenne (par exemple, la taille d'un article de presse).
  • Le texte peut être volumineux (de la taille d'un livre ou d'un chapitre, par exemple).

Ce que j'ai

J'utilise déjà nltk pour décomposer le corpus en tokens et supprimer les mots d'arrêt :

    # 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')]

Je connais le BigramCollocationFinder et le TrigramCollectionFinder qui font exactement ce que je recherche pour ces deux cas.

La question

J'ai besoin de conseils pour les n-grams d'ordre supérieur, pour améliorer les types de résultats qui proviennent de BCF et TCF, et de conseils sur la meilleure façon d'identifier les mots clés individuels les plus uniques.

Merci beaucoup !

1voto

hymloth Points 2832

Quant à la meilleure façon d'identifier les mots clés individuels les plus uniques, le tfidf est la mesure totale. Vous devez donc intégrer un moteur de recherche (ou créer un simple index inversé personnalisé, dynamique et contenant les fréquences des termes et des documents) afin de calculer le tfidf efficacement et à la volée.

En ce qui concerne vos N-grammes, pourquoi ne pas créer un analyseur personnalisé utilisant une approche "fenêtre" (la fenêtre est de longueur N) qui identifie, disons, le plus fréquent d'entre eux ? ( gardez simplement chaque N-gramme comme une clé dans un dictionnaire avec une valeur soit la fréquence soit un score (basé sur le tfidf des termes individuels))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X