Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Can someone briefly explain how google determines reading level? I'm assuming it's using something like the Flesch–Kincaid test:

http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readabil...

A brief search on wikipedia reveals a few readability tests, but they all seem to be based on sentence/syllable ratios, not content complexity.

http://en.wikipedia.org/wiki/Category:Readability_tests

And in general they all rank multi-syllable (longer) words higher. Which would mean a conversation between two Java API writers would be ranked higher than a ruby conversation :)

Java vs Ruby vs Lisp: http://i.imgur.com/tq3pA.png



I figured that, since Google must read every word of every page to spider it, they must thereby have, as a byproduct, the world's most accurate database of word usage frequencies. "Reading level" would then just be a measure of the average frequency of all the words on a page (thus making words learned in a first year ESL class simple, and technical jargon advanced—quite the same as the measure of difficulty used by language proficiency exams.) The fact that the average of Simple English Wikipedia articles seems to be more intermediate than basic, though (29/52/17), would argue against that—unless the calculations are being biased by all the very infrequent proper nouns.


I'd be lying if I said I don't doubt you are not incorrect ;)

What you are proposing is a statistically generated version of the Gunning Fog Index (http://en.wikipedia.org/wiki/Gunning_fog_index) or the Flesch–Kincaid test (http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readabil...).

If I were Google, I'd try that, but I'd also try something like working out percentage deviation from a Markov chain generated from their crawl. A method like that would show that my first sentence is pretty unreadable, while an algorithm based on word complexity would see it as pretty simple.


> I'd be lying if I said I don't doubt you are not incorrect

Holy Shnikes, that's a tough one to parse! I wasn't sure what you were saying here, so I'm gonna break it down, working from the end of the sentence:

1. I'd be lying if I said I don't doubt you are not incorrect

2. I'd be lying if I said I don't doubt you are CORRECT

3. I'd be lying if I said I don't think you are INCORRECT

4. I'd be lying if I said I think you are CORRECT

5. I think you are INCORRECT

The idea is that each of the previous statements are saying basically the same thing; I'm just cancelling negatives each time. Anyway, am I correct to assume that you think that the GP is incorrect?


Your transition 2 -> 3 is not justifiable, "doubt" is not the opposite of "think". A better parsing leaves "doubt" alone and would end with: "I doubt you are correct."


My dear, you just lost the "don't".


I'd be lying if I said I don't doubt you are not incorrect

I'd be lying if I said I don't doubt you are correct

I'd be lying if I said I think you are correct


I had to triple check to make sure I got it right, and I wrote it.

Yes, I think the GP is incorrect.


> If I were Google, I'd try that, but I'd also try something like working out percentage deviation from a Markov chain generated from their crawl.

Indeed, that was my second thought, but I wonder if the gains are really all that large over a raw statistical analysis of the word bag, and whether they're worth the extra analysis space/time. It really depends on what Google is planning on doing with this metadata, internally; if an order-of-ten precision is fine (to pick out decisive categorizations), the raw analysis may be all that's needed.


Well we could always try it out. Here's 24GB (compressed) of ngram data from Google: http://googleresearch.blogspot.com/2006/08/all-our-n-gram-ar...


> I'm assuming it's using something like the Flesch–Kincaid test

Yes, It seems to be since it is only available for content in english.

Although, as far as I know they have not said anything regarding the algorithm used yet.

You can see (what it seems to be) the official announcement here: http://www.google.com/support/forum/p/Web%20Search/thread?ti...


Pitty us old C programmers. Every for loop was indexed by i, j for inner loops. Every string was indexed by sp, or cp if you were a purist and considered strings a figment of the imagination. You never used names longer than 8 characters, because even if the compiler allowed it , the linker surely wouldnt.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: