I am trying to solve a specific problem that has some other applications.
My specific problem is I want to add an English word to every file from my camera. The files come in like [date]_time.jpg. Although I think the best workflow involves using a photo management app like DarkTable, sometimes you just want to quickly browse your filesystem and grab the original image. Browsing just by datetime creates problems when you take two very similar images seconds apart. It takes a lot of effort determining which is which. And if you pick out your best picture from a shoot, you then have to mentally note you want timestamp _12345678 and find it in your folder.
I think it would be smoother to have files like:
20261019_cape_1234567820261019_echo_12346678
In my specific case, 100 unique words is the absolute minimum, with 500-2000 words being more comfortable.
This is trivial if you have a “wordlist”, a list of words you find suitable for the task. And there’s the rub. What’s a good wordlist? I can hack one together myself but I’m hoping some top minds have thought about this.
Some prior art that I’ve found is:
- Diceware and the EFF diceware lists
- Some bitcoin folks created 2048 words that are uniquely identified by the first 4 letters of the word
- a lot of default usernames take the form
adjective-noun, but I don’t know where they get their wordlist - router default passwords
This task is nontrivial in my use case. Words can:
- evoke computers - copy, original, resize, error, fail, process, base, cat, category, data, base, idle, arm
- evoke other common file formats - album, music, song, camera, photo, video
- evoke the contents of an image or file - cool, neat, tree, car, sky, beautiful, best, trip
- evoke common filenames and extensions - wave
- be full on offensive
- be offensive in some contexts, as well as have a negative connotation in the most literal sense: bad, corrupt, awful, awkward, bomb
This is partly an “I know it when I see it” problem, but I’m kind of looking for the 500 blandest, most non-ideological English words there are.
I think very few if any words on https://en.wiktionary.org/wiki/Appendix:Basic_English_word_list are offensive, and it has the size you want.
If you need only 100 or even 2000, it’s not that hard to take random words from the diceware list and vet them one by one until you have enough.
How about using the radio alphabet, and then picking two words each time? Then you’d have some 26^2 combinations, which is hopefully enough.
The good part is that this would take meaning out of the words, because when thinking about it, also words like echo and cape will evoke some emotional connotation inside you. But when treating the words as just another form of cold and objective identifier, like they are used in radio communications, that may take the emotional connotation out of them.
I would consider using LLM for language processing as they ware made for that purpose. You could try generating or filtering out unwanted words.
This seems like a problem that can be approached entirely in embedding space. Find embeddings for words that you want to avoid, then filter your dictionary to remove anything too close to those.
No need to go through full text gen or anything, though if you want to go that route, a classifier like Jev (or OpenJev/etc) would be best.
Yes, the two approaches I was thinking (because it’s so subjective to my use) was manual review or using something like Jev.
https://www.eff.org/deeplinks/2016/07/new-wordlists-random-passphrases
The EFF has a wordlist alike diceware as well. Mind you have a computer at your disposal. You could write a short program to cross-check wordlists against some list of vulgar words. And in case 500 words is all you need, why not just go through them? Shouldn’t take more than 10 minutes and you’re done.
- a lot of default usernames take the form
adjective-noun, but I don’t know where they get their wordlist
I collected such a word list a while ago, by using my brain to think of words, well, and occasionally removing ones I don’t like: https://codeberg.org/trem/fantastic_snail/
The nouns are animal names. They are not the blandest word combinations possible, because I found those difficult to memorize. Instead I went for evoking funny images, sort of anthropomorphizing the animals.
I cannot guarantee that there’s not some word combination that could be interpreted offensively, because humans are very creative in offensive language, especially with racism, but I’ve been regularly generating word combinations for a few years now and remove offensive combinations when I come across them.
It’s a Rust library, but the specific word lists are here:
- https://codeberg.org/trem/fantastic_snail/src/branch/main/src/adjectives.rs
- https://codeberg.org/trem/fantastic_snail/src/branch/main/src/nouns.rs
I could also place these lists into the repo as just newline-separated words, if that helps you. Probably makes sense to offer in general…
- a lot of default usernames take the form
This reminded me of heroku,which named it’s instances (or whatever their called) with random adjective noun this project replicates that: https://github.com/polleverywhere/random_username. Looks like theres other versions out there in other programming languages.
Why not just use metadata headers for the file and throw in actual descriptions?
You spend a lot of time writing metadata descriptions for your photo sets?
They’re already proposing processing photos in DarkTable, which takes it’s own degree of care and enables this inherently. Then any search can find the necessary data.
I spend a lot of time wrangling disparate datasets.
Fair point. Glazed over because I didn’t recognise the name. If you don’t mind me asking, work or pleasure?
Masochism?
You’re question made me think of rainbow codes, the naming scheme for British secret military projects during part of the cold war.
I couldn’t find the wordlist they used (if there ever was an official one), but if you used a system like that (with two words instead of one), then you might even get away with making your own wordlist by hand.




