Tags

,

Well I got a few results (not very good) of attempting to score how “similar” two words are by comparing their synonym lists and assigning a score. My first attempt revealed a clear problem in the weights I used in generating the score so I changed that and here are some results.

My list of words with synonyms goes to the most degrees of separation starting from the word ‘denounce’ so that was my test.

denounce has these five words as its most similar: excoriate, vituperate, censure, reprehend and reprove. These words can also be ranked by my scoring via expanding the synonym tree and so the ranking is: excoriate (20th), vituperate (18th), censure (1st), reprehend (16th) and reprove (9th).

OTOH, via scoring with the synonym tree yields these as the top five matches (rank by synonym list included in () ): censure (3rd), reproach (15th), rebuke (18th), upbraid (8th), and castigate (22nd).

IOW, only one word is in common, in the top five best results, between the two algorithms so the obvious question is which top5 is best and/or what really are the best synonyms (or, actually, what I really want, “most similar”).

Also it’s interesting to consider whether my algorithm and in fact human commonsense would make synonyms commutative, that is if X is the best synonym of Y is Y X’s best synonym. It’s hard to say, the commonsense, but I’d say no. So what does my synonym list scoring say: denounce’s #1 synonym is excoriate but excoriate’s #1 is castigate and denounce is its 6th best. denounce’s #2 synonym is vituperate but vituperate’s #1 is vilify and denounce is #2. denounce’s #3 synonym is censure but censure’s #1 is animadvert and denounce is its 9th ranked. denounce’s #4 synonym is reprehend but reprehend’s top is censure and denounce is its 11th. And finally denounce’s 5th best scored is reprove, but reprove’s first is upbraid and denounce is 16th. Now, based on this extremely limited data there does, however, look like a bit of a pattern, the lower ranked synonyms of denounce also, increasingly (by their rank under denounce) have denounce even lower ranked, so there is some relationship.

If I average the ranks in the two algorithms, my top5 is censure, vilify, upbraid, reproach and reprove, so interestingly vilify which is 6th in one list, 7th in the other makes it into the top five due to the big discrepancy in their rankings.

So let’s look at the definitions of all these:

denounce publicly declare to be wrong or evil

<special usage> inform against

excoriate 1. {formal} censure or criticize severely

2. [chiefly medicine] damage or remove part of the surface of (the skin)

vituperate blame or insult (someone) in strong or violent language
censure express severe disapproval of (someone or something), typically in a formal statement
reprehend reprimand
reprove reprimand or censure someone
reproach address (someone) in such a way as to express disapproval or disappointment

<special usage>

. (reproach someone with) accuse someone of

. {archaic} censure or rebuke (an offense)

rebuke express sharp disapproval or criticism of (someone) because of their behavior or actions
upbraid find fault with (someone); scold
castigate {formal} reprimand (someone) severely
vilify speak or write about in an abusively disparaging manner
reprimand rebuke (someone), especially officially
rebuke express sharp disapproval or criticism of (someone) because of their behavior or actions

 

Boy, is this a bunch of circular definitions, no wonder it’s hard to decide which is which, reprimand is really just rebuke and since rebuke is already ‘sharp’ boy castigate is severe sharp and censure is already severe so excoriate is severely severe (does that mean I’d rather be censured than excoriated? or rebuked instead of castigated?) The key part seems to be the “public” part of this which denounce has and so does censure, reprimand (and thus reprehend or reprove), but rebuke, upbraid, reproach are missing the public aspect. So I’d say it’s a bit of tossup between rebuke and censure but neither of those go past mere “disapproval” and not as far as declaring evil. vituperate and vilify seem the most remote.

But this would be really rough (maybe some English profs or etymologists could chime in) to really decide which is best. For my purposes I can say these words are all “similar” but in terms of my programming issue (avoid a multiple choice quiz where more than one answer could be construed as “correct”) I’m not sure this help. It actually would be a challenging quiz to have these five possible answers:

publicly declare to be wrong or evil

blame or insult (someone) in strong or violent language

express severe disapproval of (someone or something), typically in a formal statement

find fault with (someone); scold

express sharp disapproval or criticism of (someone) because of their behavior or actions

in order to sharpen one’s precise (assuming Oxford is precise) sense of meanings of denounce, vituperate, censure, upbraid and rebuke.