I am trying to find a set of N common adjectives that are the least-used with each other in English.


Basically if you were creating a new language that was only going to have N adjectives and you wanted them to each be equally useful (by occurrence count), how would you decide which N adjectives those should be?

Here is my attempt at a more rigorous description of what I am thinking:

  1. Define some notion of "semantic distance". Words with generally the same meaning or that apply often to the same nouns may have small distance. Synonyms would have small distance with each other. Articles ("the" "it" etc) have small distance with almost everything.

  2. Probably it is possible to cluster words into loose or tight clusters depending on mutual semantic distance, and probably some of these clusters all represent some concept or idea ("stinkiness" or "luminious" or "tall"). Possibly this stage would involve culling words that are too close to each other ("bright" and "shiny") and merging them into one word (probably choosing the most common), and words that are too close to many words (i.e. phatic words).

  3. Determine semantic distance between clusters (possibly by finding the cluster centroid and using that as a proxy)

  4. Find the N clusters with largest total distance between them (this is NP-complete, so we might settle for an approximation that is in the 99 percentile instead of the global max)

What is the fastest way to do something like this? If anyone has experience in anything like this, will this produce interesting results or garbage?

  • 1
    How are you measuring this distance? It seems like you'd get a lot of noise from adjectives that are just rare (and thus unlikely to appear close to each other, or appear at all) – Orion Oct 2 '19 at 22:01
  • 2
    I think you're basically asking about the opposite of collocations, i.e. terms, specifically adjectives, that very rarely co-occur... in case this helps you clarify the question for those people who voted for closing it on grounds of lack of clarity. – LjL Oct 2 '19 at 23:43
  • 1
    If this is the case, I don't have an answer anyway, because collocation databases usually discard rare collocations, but I think the ultimate goal may benefit from going further, i.e. not just finding adjectives that are seldom used together, but finding adjectives that are seldom used to describe the same noun, because strings of adjectives are not exceptionally common in the first place, and so the latter thing may better evaluate "semantic distance" (although I suspect this is a misnomer and likely to make people think it's something else). – LjL Oct 2 '19 at 23:43
  • What do you mean by 'with each other'? A pair of words can have a low frequency of occurrence together, like 'bright stinky'. For -5- adjectives, do you mean for each pair within that 5 (for ten pairs altogether) they are all very low frequency pairs? Or do you mean the 5 adjectives as a sequence are a low frequency out of all 5-adjective-frequency pairs? Hopefully you're also taking into account that the individual adjectives are -high-frequency- because a single low freq word will obviously imply a lower frequency when paired.. – Mitch Oct 4 '19 at 15:14
  • 1
    Why not just something like word2vec? – WavesWashSands Oct 5 '19 at 19:28

Here's one way you could do this:

  1. Find a suitable corpus; there are plenty out there, but which one is best depends on your specific application. This'll be easier for English than for most other languages, and the larger the corpus, the better the results will be.
  2. Use a word2vec model on the corpus. This is a simple neural network that transforms words into vectors based on their context; words that show up in similar contexts get similar vectors (since they probably have similar meanings).
  3. Purge all non-adjectives using a POS tagger; there are plenty available, so try a few until you find one that gives the results you want.
  4. Use k-means clustering or another clustering algorithm to find cluster centers (mostly just to make the next step computationally cheaper).
  5. Choose the N centers with the largest sum of pairwise distances, using whatever distance metric you like; cosine similarity is an easy one. Beware the curse of dimensionality!
  6. Pick the adjective closest to each selected cluster center.

The key to the whole thing is the word2vec model; for anything involving semantic "distance" between words, it's the go-to tool.

As far as terms to google, vector embedding of words is the general practice of turning words into vectors that can be analyzed mathematically. Semantic embedding is doing this in a way that encodes as much of the meaning as possible.

| improve this answer | |

Your Answer

