func NumSyllables(text string) (int, error) { text = whitespaceRe.ReplaceAllLiteralString(text, " ") text = strings.TrimSpace(text) words := strings.Split(text, " ") var syllables int corpus, err := cmu.CMUCorpus() if err != nil { return 0, err } for _, word := range words { // TODO check for words in which the lookup failed s := corpus.Syllables(word) syllables += s } return syllables, nil }
func polysyllableCount(text string) (int, error) { text = whitespaceRe.ReplaceAllLiteralString(text, " ") text = strings.TrimSpace(text) words := strings.Split(text, " ") var polysyllablicWords int corpus, err := cmu.CMUCorpus() if err != nil { return 0, err } for _, word := range words { // TODO check for words in which the lookup failed if corpus.Syllables(word) > 2 { polysyllablicWords++ } } return polysyllablicWords, nil }
func NumComplexWords(text string) (int, error) { text = whitespaceRe.ReplaceAllLiteralString(text, " ") text = strings.TrimSpace(text) words := strings.Split(text, " ") var complexWords int corpus, err := cmu.CMUCorpus() if err != nil { return 0, err } for _, word := range words { // TODO check for words in which the lookup failed if isComplex(word, corpus) { complexWords++ } } return complexWords, nil }