20 comments

[ 2.3 ms ] story [ 27.8 ms ] thread
The article maybe just hints at another issue that’s at least as important. Dictionaries are mostly descriptivist rather than prescriptivist.

Adding “deplatform” or whatever to the dictionary isn’t a statement about how proper it is as a word. It’s a statement that it’s a word in use, and so if you come across it, here’s what it means.

Yes, which leads to the other end of the cycle. They are removing obsolete words for the same reason.
That seems a bit silly, people read stuff that was written long ago.
Standard dictionaries are for modern/living versions of the language. They make topic dictionaries for everything under the sun too including obsolete words.

Without removing things you end up with the Oxford dictionary which is currently 20 volumes long. And I'm pretty sure they still remove things once it's considered obsolete.

I've always wanted a program or set of tools that I can use to generate my own dictionaries - not just a glossary, but real dictionaries with multiple definitions for words, derivations, example sentences, and so on.

And, one other very important feature I'd need, would be to be able to run the dictionary on itself, to find words that are used in the descriptions for which there isn't yet a definition.

This would be amazing, for example, to run on a large corpus, generate the dictionary, and then run it again to find words that are used but not defined - not just in the original corpus but in the definitions too.

I've yet to find anything like this and have managed, over the years, to do this with some cobbled-together sed and awk hacks .. but I still think this is something that would be quite a viable commercial product - especially useful for international translations and creating properly-defined glossaries for documentation, etc.

Anyone know of such tools? I'd love to have my own Dictionary builder, proper, and stop fantasizing about turning sed and awk scripts into a proper app ..

There are a couple starting points you could take. I spent a weekend hacking out a program that generates fake word/definition pairs with a transformer model set against a dictionary: https://youtu.be/XnJ2TKAn-Vk?t=1547. If you substitute fake words for real words and have a sufficiently accurate model you could quickly generate reasonable and novel definitions.

There are more complete versions of this kind of thing publicly available: https://github.com/turtlesoupy/this-word-does-not-exist

> This would be amazing, for example, to run on a large corpus, generate the dictionary, and then run it again to find words that are used but not defined - not just in the original corpus but in the definitions too.

I think this would be how you would gauge success of the model. That is to say, you would evaluate model accuracy on a set of held-out words with definitions that never appeared in your dictionary training set but appeared in context in your corpus. You would have to manually annotate whether or not the generated definition of these held out words was acceptable.

Thanks - that is indeed very interesting, and I will spend my weekend checking it out.

>I think this would be how you would gauge success of the model.

Yes, exactly. I think there would definitely be edge-cases, but the general rule is that there should not be any undefined terms/words in the final dictionary. The degree to which this can be achieved is of course related to the cyclomatic complexity of the original materials. But this is why I want this tool - to see how effective it is for creating training materials that prepare students for obtuse subjects.

The closest thing linguists have come up with, to my knowledge, are wordnets.

They build definitions by the words, directly and indirectly, associated with them. You could then use those clusters to create individual definitions in some way.

Have you looked at them?

I think the biggest problem is that definitions are semantic which computers are terrible at. We’re at the infancy of being able to with transformers and large language models nowadays. So is start looking around for the proto-tools that will lead to what you're thinking about.

I have skirted around wordnets, because I'm not really a linguist - more of a technical documentation writer - but I will check it out now that I have a clue what to search for. Do you have any pointers to functional software tools for the creation of wordnets that you'd recommend?
https://alar.ink (Kannada-English dictionary) was built using https://github.com/knadh/dictmaker

It addresses some of the things you’ve mentioned.

Thanks very much for the link to dictmaker, I will spend my weekend playing with it and see how I get along. Much appreciated!

EDIT: after visiting your site, somehow my browser language has been switched to Kannada and I'm now finding myself highly amused at seeing Twitter threads in this script. Would love to know how you did that!

That's strange. Apart from the fact that the dictionary website renders utf8 Kannada text, there's nothing else to it. Can't imagine how the browser managed to switch its language based on text found on a webpage!
I run a popular dictionary website (mostly for translation dictionaries). I have no shortage of terms that need definition or translation, but I would be happy to work with you on something like what you suggest.
Cool! This is only a hobby for me, as a technical documentation writer I find that a properly formed glossary/dictionary is key to the effort - but I'm very interested in the technology around this subject, so I'd be quite happy to see your website and get familiar with what you've done. Can you post a link here publically?
Please see my profile or type my username into Google.
How dictionaries work is this:

- words are created, or existing words bent, mainly by non-users of dictionaries.

- dictionaries cautiously track this process the benefit of dictionary users.

If you wish to be conservative in the area of words, the easiest thing to do is to keep a dictionary that is some 30-40 years old, and use nothing that isn't in it, unless it's a genuinely new concept for which the old dictionary offers no word.

The nice thing about dictionaries is that nobody is forcing you to throw out your old ones.

Well, these days it is slightly different. We observe the terms that people search for. If there are many searches for a term that isn't in the dictionary, we add it. Pretty simple. (I make dictionaries.)
So if people were searching for your brother Al, whereby no such person exists, would you have your parents adopt someone by that name, so you could make it a valid search result?
The official dictionary is only a reference: most groups, places, etc will develop their own unofficial one, and most of the times unconsciously. There's also a lot of misconceptions both from the dictionary-makers and general citizens.