Определение важных слов и фраз в тексте

У меня есть текст, сохраненный в строке на языке python.

Что я хочу

  1. Определить ключевые слова в этом тексте.
  2. Определить N-граммы в этом тексте (в идеале больше, чем просто би- и триграммы).

Имейте в виду...

  • Текст может быть маленьким (например, размером с твит)
  • Текст может быть средним (например, размером с новостную статью)
  • Текст может быть большим (например. книга или глава)

Что у меня есть

Я уже использую nltk для разбиения корпуса на лексемы и удаления стоп-слов:

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

Я знаю о BigramCollocationFinder и TrigramCollectionFinder, которые делают именно то, что я ищу для этих двух случаев.

Вопрос

Мне нужен совет по n-граммам более высокого порядка, улучшению видов результатов, получаемых от BCF и TCF, и совет по лучшему способу определения наиболее уникальных отдельных ключевых слов.

Большое спасибо!

6
задан slifty 6 October 2011 в 16:36
поделиться