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_12345678
  • 20261019_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:

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.

  • zener_diode@feddit.org
    link
    fedilink
    arrow-up
    1
    ·
    44 minutes ago

    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.

  • calcopiritus@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    2 hours ago

    This is basically the same problem as project names.

    You can find a lot of made up words that don’t mean anything in mythology for example. Take names from gods (Greek+roman+norse will probably already get to 100.

    Animals or desserts (like android) may appear in pictures. You can add mythical creatures to your list of gods though. Probably won’t encounter a minotaur in your photos

  • trem@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    2
    ·
    4 hours ago
    • 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:

    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…

  • Sibbo@sopuli.xyz
    link
    fedilink
    arrow-up
    10
    ·
    8 hours ago

    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.

  • ViatorOmnium@piefed.social
    link
    fedilink
    English
    arrow-up
    12
    ·
    9 hours ago

    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.

  • ludrol@programming.dev
    link
    fedilink
    arrow-up
    6
    arrow-down
    7
    ·
    8 hours ago

    I would consider using LLM for language processing as they ware made for that purpose. You could try generating or filtering out unwanted words.

    • theherk@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      5 hours ago

      Using complex, power-hungry matrix algebra to get words that could come from an indexed array in constant time is just about the worst solution of which I can think.


      Worth noting, it may be that you meant to generate a list as a one-time operation. That is maybe sensible. I originally interpreted you to mean on the fly generation.

      • Sandbar_Trekker@piefed.zip
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        2 hours ago

        A small locally run model would work and it would use less electricity than what’s needed for spending time researching different lists from different websites.

      • hendrik@palaver.p3x.de
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 hours ago

        And it won’t have a clue if you consider “asbestos” an unwanted word. I mean that’s all highly subjective and an AI will (most likely) just do whatever.

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 hours ago

      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.