• Onno (VK6FLAB)
    link
    English
    42 months ago

    Using the idea of six degrees of separation to get to any person on the planet, I came up with the idea to use a word cloud that would represent the top N words in all documents.

    When you click on a word, (say “alpha”) the resulting word cloud would represent the top N words for all the documents with “alpha” in it.

    As you click, bravo -> charlie, etc. the list of documents gets smaller and smaller, until just your required document remains.

    This has several advantages, you don’t need to distinguish between words and numbers or need to “understand” the meaning of a word or interpret the user intent.

    More importantly, the user doesn’t need to know the relevant words or vocabulary, since they’re all represented in the UI.

    Enhancements include allowing for negative words, as-in, exclude documents with this word.

    • @Dave@lemmy.nz
      link
      fedilink
      English
      12 months ago

      Ah that sounds really interesting! Does it scale OK? I guess you could index at a word level and filter quite quickly for quick searches, but it seems you’re going to have to store the full text of every website?

      • Onno (VK6FLAB)
        link
        English
        22 months ago

        You store just the word count for each word on each URL.

        The search is pretty trivial in database terms since you don’t need to do any wildcard or like matching.

        • @Dave@lemmy.nz
          link
          fedilink
          English
          12 months ago

          Ah of course!

          I guess one of the things the Google originally solved was that the internet if full of crap and not all sites should have equal weighing. With AI spam sites these days, you’d probably also need a method of weighting results?

          • Onno (VK6FLAB)
            link
            English
            22 months ago

            We never got that far to test that kind of issue and while I’ve been reimplementing it locally to search through employment advertising, I’m not at a point where I’d be able to test such a thing.

            The original implementation used a data store written by another team member and it made the original project much too complicated.

            Today I’d likely use duckdb to implement it. My local version uses text files for a proof of concept implementation.