У меня есть текст, хранящийся в строке Python.
Что я хочу
- Чтобы определить ключевые слова в этом тексте.
- для определения 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, и совет о том, как лучше всего определить наиболее уникальные отдельные ключевые слова.
Большое спасибо!