So my father and I were talking, and I commented that it is supremely satisfying that the words it's and 'tis are synonyms that have the exact same distribution of characters (they are anagrams). He responded with evil and vile, which got me wondering how many examples there are of words that are both synonyms and anagrams.

My two questions:

1) What other examples can you think of? Post them as comments!

2) How would you go about trying to find these examples in an intelligent way, i.e. without simply picking up a thesaurus and going line by line (or more specifically, making a computer do it for you)? Is that really the only way to do it?

  • 2
    As an answer to two, there is basically no other way to do such a large check through a database (thesaurus), although it might not be too hard to code. Jul 23, 2016 at 19:12
  • I was hoping that maybe there was structure in the language itself that I am unaware of that could trim the fat, so to speak. Too much to hope for?
    – Valborg
    Jul 23, 2016 at 19:14
  • Possibly :-) but you never know, someone might have done a degree in this or something crazy Jul 23, 2016 at 19:15
  • I smell a wonderful little paper in the works... any computer science undergraduates out there interested in big data may want to tackle this project for fun and send it into a journal as a note or something. Always looks good on a resume!
    – Valborg
    Jul 23, 2016 at 19:17
  • 1
    I'll do you one better and give a word that's its own synonym when spelled backwards: pat = tap, meaning to lightly hit something
    – user180089
    Jul 23, 2016 at 19:27

1 Answer 1

angered, enraged
bate, beat
blate, bleat
cleaners, cleanser
detail, dilate
evil, vile
lowest, lowset
name, mean
note, tone
parental, paternal
pat, tap
piles, spile
post, spot
punks, spunk
recourse, resource
stop, spot
veto, vote
vileness, evilness
wale, weal

Some of these might be debatable because the MyThes thesaurus I used as a source is rather inclusive.

I filtered a ton of false positives, here is a sampling of them:

  • technical terms with trivial differences (e.g. alexandrian senna vs senna alexandrina)

  • loan words with multiple acceptable spellings (e.g. harakiri vs harikari, schtik vs shtick)

  • minor spelling differences and errors (e.g. despoilation vs despoliation)

  • phrases pluralized inconsistently (e.g. herb roberts vs herbs robert)

  • AmE vs BE differences (e.g. theatre vs theater)

  • the same stems in the opposite order (e.g. lookout vs outlook)

For my source code and full results, including an annotated list of excluded words, see this git repository.

From a computer science perspective, this is not a particularly interesting problem. Finding anagrams is quick and easy, so the only limiting factoring is reading through the whole thesaurus, which is slow simply because of the number of words included. In general, no problem can be solved faster than the time it takes to read the input.

  • wow, nice going. Did you just write the code up in the last hour?
    – user180089
    Jul 23, 2016 at 21:47
  • 1
    Yeah, I did. Nothing too interesting happening in the code though. Most of the work was (manually and automatically) filtering out false positives of different types. Jul 23, 2016 at 22:02
  • The point of the problem, from a computer science perspective, isn't to be interesting, but to provide a natural sounding problem on which to test data management techniques. And while you are correct that the general principle of input bottle-necking would suggest that no significant speedups are available, there are many historical examples where that principle doesn't hold, like finding the maximum number of moves to solve a Rubik's cube, or the minimum number of givens in a fair Sudoku puzzle, where math went a long way in reducing the size of the search space.
    – Valborg
    Jul 24, 2016 at 5:51
  • Of course, language won't benefit from such techniques as readily, but I can imagine that say, words with too many characters won't need to be checked, since their synonyms will all be shorter, and technical words won't have appropriate synonyms, etc, and maybe all of those special cases together can speed up such a search. That way, instead of filtering out results after the work has been done, you don't have to do the work in the first place.
    – Valborg
    Jul 24, 2016 at 5:52
  • "no problem can be solved faster than the time it takes to read the input." Amen.
    – Kris
    Jan 29, 2019 at 9:34

Not the answer you're looking for? Browse other questions tagged or ask your own question.