back
88 comments
I went to an interesting talk once at the Boston Python meetup, where a guy figured out how to order sentences so could learn them in an order where you already knew the "other" words in the sentence. Basically, making a directed graph of vocabulary.

He was doing it to learn Latin, but you could do it for any language.

There's a very good book for Latin that uses that trick.

Goes from zero to extremely complex Latin. Whole book is in Latin, no translations.

https://www.amazon.com/Lingua-Latina-Illustrata-Pars-Familia...

The only requirement is knowledge of orthographic alphabet and how each sound is produced. Latin, fortunately, has very simple sounds compared to English or Swedish.

It took me about 2 years to go through both parts and I was amazed at how easy the journey was. Could speak and write Latin fluently without issues.

How about this?

1. Get a frequency list. The most common word's rank is 1, the second is 2, etc. [0]

2. Then use your favorite Spaced Repetition Software (such as anki) to learn the words in that order.

3. Define a sentence's difficulty as the maximum rank over all its words. You could refine it by adding tie-breakers but I think it doesn't matter. Then sort the sentences in order of difficulty.

[0] See https://en.wiktionary.org/wiki/Wiktionary:Frequency_lists

I built something like this for Mandarin Chinese at a company I worked for in Shanghai, but the company was acquired and sort of put out to pasture, and it never launched. :-(

Essentially, we took already word-segmented dialog (splitting Chinese sentences into individual words is non-trivial, so having it already segmented was super useful), matched it to words that you knew, and suggested the next lesson you should learn by the percentage of vocabulary that would be new or challenging for you. It was pretty awesome, would love to have another shot at it someday.

I would be really interested in a German version of this.

I wanted to do more a less the same: a "translator" that translates a German text content into a german text but by replacing words you don't know (e.g. extracted from memrise) into words you know. That way you can start reading texts of your foreign language without looking at your dictionary every sentence.

Years ago I found a great example of this on the letter level for learning Cyrillic - takes only a couple minutes to run through and it's really satisfying:

http://www.alphadictionary.com/rusgrammar/alphabet.html

don't Assimil courses work like that? not word by word but definitely builds up on common words to reach ever complex sentences
How do you decide on which sentences to use?

I'm interested in generating example sentences myself, but in a way, that chooses sentences that are simple, easy to understand and support the word, they are supposed to exemplify.

For example "She got a car for her birthday, while she was traveling in Italy eating pizza" does not tell the reader anything about what a car is, or how the word should be used. However "He drives his car to work", is a much better example of what a car is, what is a common associated verb and how it fits in a sentence.

How do you optimise selection for sentence like the latter?

There's the linguistic principle of "You shall know a word by the company it keeps", so for any particular word you can identify which other words are most specifically related to that word, the simplest measure that can be used for that is freq(both words together)/freq(that other word in general).

That would allow you to prioritize sentences containing "getting a car" over "driving a car" - even if "getting a car" is more frequent, driving is more specific according to such a measure.

That's a great question. Optimizing for sentence selection is important for teaching. For now, I have a simple check that filters out sentences which are longer than 160 characters.

Also, I believe that this is one thing which humans can do better. I, therefore, plan to add upvote & downvote buttons to rate the quality of sentences.

I know!

You could check to see if there are some verbs that are used predominately with the word you're trying to generate sentences for. Example, I would expect "drive" appearing in a sentence to carry a higher than average probability for "car" also appearing in the sentence. Or "wind" for "watch", or "sit" for "chair" and "couch".

Then, I think sentences containing "car" that also contain the verb "drive" would probably give better clues for the meaning of "car" than verbs like "bought".

Just a thought.

That's the geek inside you talking. But the hard part was the word stats. Now that you get 1K words, writing a thousand sentences manually to illustrate them is not really hard. It's a one day manual work. Less than the work needing to figure out automation, with way better results.
I've always thought that the Simple English article versions of Wikipedia were always useful for non-native English speakers. https://simple.wikipedia.org/

Most people seem to be unaware of this Wikipedia aspect.

Furthermore Simple English tends to be the very high level TL;DR version of associated article.
Very cool! Although I feel that sometimes you really need a human touch to make it truly comprehended. For instance, I random clicked on "antediluvian":

https://buildmyvocab.in/antediluvian/

Everything here will get you a "good enough" understanding of what the word means, but this is the only one that really comes close to explaining the word's literal meaning, and it's too vague to be of much use:

any of the early patriarchs who lived prior to the Noachian deluge

A non-native speaker isn't going to have any idea what "Noachian" means (a native speaker probably isn't either unless they can explicitly identify "Noah" as the root), and "deluge" is part of the root of the word we're defining, so simply using the word "deluge" without explaining what it means doesn't really help.

In short, this is a good groundwork, but I think it needs a human editor to push the individual definitions from "acceptable" to "correct".

Thanks for your awesome feedback. And yes this is just the initial ground work and part of a larger experiment. We are also trying to teach English using Bollywood movies and GIFs[1]. I agree that human editing is very important and as such upvote/downvote button feature is in pipeline next.

[1] https://buildmyvocab.com/ddlj.html

In short, this is a good groundwork, but I think it needs a human editor to push the individual definitions from "acceptable" to "correct".

Good point. A StackOverflow-style upvoting system may provide exactly that.

I find there's a lot of material for studying isolated words, but as an engineer, analyzing the sentence patterns and grammar is more interesting.

I'm working on a project to do this for a database of Chinese grammar patterns. When there's enough sentence examples for each pattern as structured data, we can then make games and other learning tools. For example: yīnwèi / 因为 / because http://cgram.rikai-bots.com/grammar/yinwei

Now there's a magnets game to try to use that pattern: http://cgram.rikai-bots.com/magnets/?cnames=yinwei

I would be happy to share the repo with anyone who's interested, or using the data to make some other language learning games. PS I did a similar thing for japanese before: JGram.org and it really helped me learn japanese quickly.

In the same vein, for French translation, Linguee[1] uses many sources from websites of organisations that display official content in several languages (eg. the websites of the EU, of the Canadian Parliament...). The fact that it's official texts (eg. laws) makes it quite reliable.

[1] http://www.linguee.fr

This is pretty cool.

The second word I clicked was "cant"....and about half I saw were typos of "can't", so, there's some bad data in there if you're trying to learn standard english, but it's good data if you want to understand things people actually write.

Anyway, time to go through and add some apostrophes to a few articles. :-)

Nicely done. You could add in a mailing list to send users a digest of new or top vocabulary words every week.
There's a subscription link at the bottom of https://buildmyvocab.com/
Second that - would also be interesting for English speakers learning a language like Chinese, where the average literate speaker can recognize about 5000 of the most frequently used characters.
Is there a word list for TOEFL and/or IELTS?

I'm using a similar strategy (movies, music, Bible, articles) for studying Chinese. I'm using the TOCFL and HSK word lists. My friend uses a book with a list of 15000 vocabulary words by Morris Hill. I can't find a txt version though.

https://play.google.com/store/apps/details?id=com.buildmyvoc...

is this your app abhas ? Quite interesting

Yes, this app is also a part of an initiative to make learning simpler and fun.
This list is to help non-native English learners? Many native English speakers might have trouble with a few of these: abeyance, abscission, accretion, amalgamate, anodyne, antediluvian, apposite, arabesque, atavism, and avuncular.
As an Italian native with a classical studies background, this kind of words are easy for me. They're almost all Latin-derived and they usually sound very similar to the Italian equivalent. You wanna know what's hard for us? The street talk. You know like when you shoot the breeze before you really spill the beans about your shenanigans while riding shotgun on a friend's old jalopy.
The goal (afaict) is not precisely conversational fluency, but rather an ability to pass the exams such as GRE and GMAT - inferred from the fact that the lists are mostly from "Barron's" guides for those exams.
Very nice! Thanks for sharing!

Some words are not found: https://buildmyvocab.in/affinity

(Just a little correction there: does not exist*)

Thanks for pointing this out. Will fix this soon.
Completely OT, but is there a mathematical explanation for why, when scrolled the spaces between the words appear to form connect channels?
I think you're referring to word rivers (https://en.wikipedia.org/wiki/River_(typography)).
This is good stuff. I like the sentences part but I would put the definition before the sentences.

This would be a great foreign language tool too.

I created something similar using the Wordnik api. https://www.greedge.com/grewordlist/
Very cool. As others have said I think you should add definitions for the words (even a link off to an external one is fine) and pronunciation (with audio, perhaps link to forvo.com?) would be superb.
Mining canonical papers/text to generate standardized tests (SAT/GRE) might be a further step. My guess is that both tests and commercial prep-material are produced by committee.
Would be more intuitive if the meaning is presented first and then example sentences
While I think it needs a little polishing (a lot of wikipedia sentences are fairly hairy), I really like the core idea here. Keep up the good work.
Neat.

::clicks on a random word::

"We couldn't find any sentences for the word centripetal."

So... Why is it one of the chosen few?

What?! No "cromulent"?
Could something similar be done with other languages as well, say Simplified Chinese?
Simplified Chinese is a bit tricky, because the Chinese Wikipedia is mostly in Traditional Chinese, because it's blocked by the Great Firewall.

Otherwise, if you can find a large corpus, segment it into words and do some basic statistics, you could build something like this for any language.

The most similar implementation I am aware of (using the word 中文 (Chinese) as an example) is http://ce.linedict.com/#/cnen/example?query=%E4%B8%AD%E6%96%...

What about other languages?
I'm working on Chinese, and everything I do gets put into http://pingtype.github.io

This week I plan to finish making clips for words in movie subtitles.

1. I don't really understand what this is about. Having a description on the landing page would help.

> Barron's 800 Words list with example sentences

who is this Barron?

2. Please can you add pronunciation :D

3. words need a definition as well, not sure what some of these means even with the examples.

can you make a container that lets you crawl any other language?
mined with a mithril axe
i am one of learner's of English, but i can't.. tips me to get my English perfect.. http://www.mrstatus.in/himbhoomi-jamabandi-copy/