Как найти текстовые функции и распечатать их?

Я только начал использовать Natural Language Toolkit (NLTK) как часть моего проекта инженерного колледжа. Кто-нибудь, пожалуйста, скажите мне, как мне прочитать текст входного абзаца и

1) разбить его на текстовые компоненты, т.е. на количество предложений, количество слов, количество символов и количество многосложных или сложных слов в данном абзаце

и

2) Также распечатайте указанные выше значения.


person ash    schedule 15.02.2011    source источник


Ответы (2)


Откуда исходный абзац? Файл? Консоль? Это больше проблема с питоном, чем с NLTK.

В остальном посмотрите на модуль nltk.tokenize и nltk.probability.FreqDist.

person Jacob    schedule 15.02.2011
comment
Входной абзац поступает как из консоли, так и из файла. Мне нужно использовать количество предложений, слов, символов и сложных слов, чтобы найти оценку удобочитаемости входного текста. - person ash; 16.02.2011
comment
Когда у вас есть текст, nltk.tokenize.sent_tokenize даст вам количество предложений, nltk.tokenize.word_tokenize количество слов и, конечно же, len(text) количество символов. Но я не знаю, как определить, сложное слово или нет - может быть, посчитать количество гласных? - person Jacob; 16.02.2011
comment
Если ввод может быть либо из консоли, либо из файла, вам потребуются отдельные методы для чтения файла. - person Adam_G; 20.05.2012

Из обсуждения в группе Google NLTK:

import curses 
from curses.ascii import isdigit 
import nltk 
from nltk.corpus import cmudict

d = cmudict.dict() 

def nsyl(word): 
  return [len(list(y for y in x if isdigit(y[-1]))) for x in d[word.lower()]] 

Это должно быть в состоянии дать вам количество слогов для каждого слова. Надеюсь это поможет.

person Adam_G    schedule 20.05.2012