5

I want to import a huge database of short English sentences into an educational software.
I need to categorize sentences into a few levels of "difficulty" (difficulty for a non-native to understand the sentence).

  • "My name is Joe and I like ponies, dogs, cats, rabbits and mushrooms." → 0.1
  • "I want to evaluate the complexity of this sentence." → 0.5
  • "Beware those whose voice supersedes this very edict." → 0.9

... or any similar system of scoring.

A good algorithm would take into account:

  • the difficulty of each term (Coelacanth is more difficult than goldfish because it is used less often in books, notably children/teen books. Will is more difficult than willingness because it has synonyms. etc)
    These would have to be retrieved from a pre-established database (this might help).
  • the difficulty of the grammar and conjunctions (that is more difficult than and).
  • ideally the complexity of in-sentence references (sentence where several expressions refer to each other, forming a complex graph with the former at first unclear but the latter later understood... or not)
  • Sentence length. This is for memorization, so a sentence twice as long might as well be considered twice as difficult.
  • other parameters might be useful too.

Requirements:

  • Able to process around 1,000,000 entries within a few weeks
  • Free.

Bonus:

  • Web service acceptable, but bonus if runnable on-premise.
  • Bonus for Open Source.
  • Bonus if supports other languages too.

OGTE asks me for a sentence and a school level, then tells me whether it fits or not. I would like a tool that asks me for a sentence, and tells me what school level it fits.

  • 2
    Are you evaluating the complexity of the sentences based on the "difficulty" of the words used, sentence length, structure, or a combination of these factors? – Qantas 94 Heavy Apr 9 '14 at 9:20
  • 1
    @Qantas94Heavy: Added in section "A good algorithm would take into account:". – Nicolas Raoul Apr 10 '14 at 1:36
7

You're actually asking two questions:

  • What is a good algorithm to determine what I think is the complexity of a sentence in the english language?
  • What is a program that applies this algorithm?

The first question is very hard to answer, the second one is quite easy as soon as the first one is answered.

A tool that applies various algorithms is the following. It is for free, can evaluate complete texts and you get the name of the algorithms. I suggest you read the Wikipedia pages I've linked and try to find out what suits your needs best.

readability-score.com

My name is Joe and I like ponies, dogs, cats, rabbits and mushrooms.

I want to evaluate the complexity of this sentence.

  • Flesch-Kincaid Reading Ease: 47.3
  • Flesch-Kincaid Grade Level: 8.9
  • Gunning-Fog Score: 12.5
  • Coleman-Liau Index: 11.7
  • SMOG Index: 8.3
  • Automated Readability Index: 5.1

Beware those whose voice supersedes this very edict.

  • Flesch-Kincaid Reading Ease: 61.2
  • Flesch-Kincaid Grade Level: 6.7
  • Gunning-Fog Score: 8.2
  • Coleman-Liau Index: 16.6
  • SMOG Index: 6
  • Automated Readability Index: 8.5
  • 1
    Flesch-Kincaid and Gunning-Fog are really too primitive. Coleman-Liau, SMOG and Automated Readability Index are designed to analyze a long text/book and lose all of their value when applied to an individual sentence. I think I really need a library that uses a pre-established database of English words difficulty. Nice find though, and it is open source: github.com/DaveChild/Text-Statistics – Nicolas Raoul Apr 10 '14 at 1:48
  • OGTE seems to be using ERF graded reader scale plus feedback from users. – VicAche Apr 27 '14 at 19:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.