1. A computer-implemented method comprising: automatically selecting, by a computer, from a keyword store a set of one or more target words stored in the keyword store, each respective target word having a word difficulty score based upon one or more skill scores of a learner-record stored in a learner database, wherein the keyword store is configured to store a plurality of target words extracted from one or more resources, and metadata associated with each respective target word, and wherein the metadata associated with each respective target word in the keyword word store indicates the word difficulty score of the respective target word; generating, by the computer, a set of one or more semantic distractors comprising one or more words having a definition that is related to a target word; identifying, by the computer, in a dictionary source a plurality of words having an edit distance based upon the target word, wherein the edit distance of a word is an amount of letter-insertions and letter-deletions required for the word to be the target word; generating, by the computer, a set of one or more orthographic distractors comprising one or more words of the plurality of words, wherein the edit distance of each respective word in the set of orthographic distractors satisfies an edit distance amount setting, and wherein the edit distance amount setting limits the edit distance of the respective word based upon the one or more skill scores of the learner-record; generating, by the computer, a set of phonetic distractors comprising one or more homophones of the target word, based upon the one or more skill scores of the learner-record; extracting, by the computer, a plurality of target words from one or more resources; for each respective target word: determining, by the computer, the word difficulty score based upon one or more characteristics of the target word; generating, by the computer, the metadata of the target word, the metadata indicating the word difficulty score and a resource containing the target word; and storing, by the computer, the target word and the metadata associated with the target word into the keyword store; receiving, by the computer, the resource of the one or more resources containing the respective target word of the set of one or more target words from a computing device; determining, by the computer, a resource difficulty score associated with the resource based upon one or more characteristics of the resource; and storing, by the computer, into a resource store configured to store the one or more resources, at least a portion of the resource and metadata indicating the resource difficulty score.