1. A method, comprising: receiving, using one or more processors, a plurality of offensive words, wherein each respective offensive word in the plurality of offensive words is associated with a severity score identifying the offensiveness of the respective word; receiving a string of words, wherein a candidate word is selected from the string of words; calculating, for each respective offensive word in the plurality of offensive words, a distance between the candidate word and the respective offensive word ; calculating a plurality of offensiveness scores for the candidate word, each offensiveness score in the plurality of offensiveness scores based upon (i) the calculated distance between the candidate word and an offensive word in the plurality of offensive words and (ii) the severity score of the offensive word; and determining whether the candidate word is an offender word based on whether the highest offensiveness score in the plurality of offensiveness scores for the candidate word exceeds an offensiveness threshold value.