larshei

larshei

Semantic Search Fields / Search Engine: Detect tags, location and time information in search input

Hello beloved forum members :slight_smile:

I am currently curious about good search experiences.
Most pages have some kind of search somewhere,
so I guess this is a pretty universal “problem”.

i was recently looking on a house marketplace website, where you have TONS of filter options, like the living space, room count, energy efficiency, age, renovation state, plot size, location, price, price per square-meter, heating energy source, …

I was wondering: While having tons of different input fields for all the different pieces of information is very explicit and probably makes a lot of sense for refining the search filter, I personally would like to just enter something like:

  • 5 room house around 120m^2 available this summer or
  • 200 sqm energy efficient flat roof house with gas heating and garden built after 2010 in London or
  • 100-120m2 house around Cologne, Leverkusen or Düsseldorf with less than 3 minutes driving to the highway

Basically, I’d like to write down what I would tell a realtor.

So here we have the description of some properties, dates/times or even timespans and locations.

I wonder:

  1. Most search fields except for in search engines do not offer this kind of search experience.
    Is that because its not feasible or just because adding 10+ different inputs is just plain simple to implement?
    An exception seems to be log analysers or written documentation, probably because those are very nice for full text searches and they have only text information.

  2. How would you go about and extract the different pieces of information?
    Have full-text search through tags and categories that your page knows?
    Or just match on those?
    Match on common date input formats and try to parse them or push the input into an AI language model?
    Maybe have some snippets like ‘next week’ or ‘this weekend’ and their respective translations for other languages that can be matched against?

  3. Have you ever worked with/on search inputs like described above?
    What worked well, what was a pain?

First 4 of 4 Posts Switch mode

LostKobrakai

LostKobrakai

Making sense of human language is a non trivial problem, which seems unneccessary complex for a search setup. Fantastical’s calendar entry is the only place where I know such a pattern to exist and work reasonably well. But I guess that’s mostly because the language for “Do x at y on z” and alternatives of that are ok to parse.

julienmarie

julienmarie

The easiest way I would see is to use the GPT api and the function calls to define the schema. But it would be costly.
A cheaper alternative could be Bumblebee with Llama and having it reply as a parse-able json.

codeanpeace

codeanpeace

That sounds like classic named-entity recognition:

Named-entity recognition (NER) (also known as (named) entity identification, entity chunking, and entity extraction) is a subtask of information extraction that seeks to locate and classify named entities mentioned in unstructured text into pre-defined categories such as person names, organizations, locations, medical codes, time expressions, quantities, monetary values, percentages, etc.

Most research on NER/NEE systems has been structured as taking an unannotated block of text, such as this one:

Jim bought 300 shares of Acme Corp. in 2006.

And producing an annotated block of text that highlights the names of entities:

[Jim]{Person} bought 300 shares of [Acme Corp.]{Organization} in [2006]{Time}.

Here are two libraries that turned up when searching for elixir entity recognition:

Agreed, it’s not perfect but overall their implementation is quite slick – especially how it incrementally populates the event form as you type. For example, entering Watch Lord of the Rings tomorrow afternoon will populate the date field upon typing w at the end of tomorrow and time field field upon typing n at the end of afternoon. LiveView could definitely help in creating similar real-time interactions much like it does with form validation.

larshei

larshei OP

Yup my example with the house was maybe a bit overkill, too many factors and no clear list of things to check for.

Maybe a used car search would be a better example: A lot of parameters like seat count, horse power, mileage, age etc, but every attribute is very specific and known.

Oh a new term to check for me, that is awesome! Ill dig into it.

— All posts loaded —

Where Next?

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 91561 914
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
AstonJ
Just a general thread to post chat/news/info relating to AI/ML stuff that may be relevant for Nx now or in the future. Got anything to sh...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
akoutmos
@hugobarauna and I (Alex Koutmos) have been hard at work on writing a book on Nerves that takes you from simply blinking LEDs to building...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement