Aggiungi sinonimi di ricerca

Ultimamente ho letto molto qui e ho notato che ‘post’ e ‘risposta’ sembrano essere usati in modo piuttosto intercambiabile.

Se venisse fatto, si avrebbero meno domande fastidiose quando qualcuno usa quella sbagliata delle due per la propria ricerca prima di porre una domanda con un nuovo argomento (LOL, è appena successo a me: ‘elimina post dopo’ non ha prodotto gli stessi risultati di ‘elimina risposta dopo’…)

Da qui la mia domanda sull’argomento…

1 Mi Piace

Rispondi e post non sono intercambiabili al 100%. Nella maggior parte dei casi che vediamo qui su Meta lo sono, ma non sempre.

Consiglio di consultare Understanding Discourse for new users, che descrive cos’è un post. Una risposta è qualsiasi post che non sia l’OP.

5 Mi Piace

Ma preferirei trovare ciò che cerco, anche se non conosco la terminologia corretta.

Per chi è più “informed”, non avrebbero comunque la possibilità di eseguire ricerche esplicite mettendo tra virgolette il termine specifico di interesse, ad esempio “reply” :question:

Grazie, lo leggerò, ma quanti altri lo leggono prima di creare nuovi argomenti qui?

Quindi, ho letto la ‘Guida per i nuovi utenti di Discourse’ e non sono riuscito a trovare alcuna definizione esplicita di ‘risposta’.

Ma dato che ti ho citato sopra, una ‘risposta’ è necessariamente un ‘post’, quindi quando qualcuno cerca ‘post’ dovrebbero essere mostrati anche tutti i risultati corrispondenti a ‘risposta’…

Non è chiaro, nemmeno dopo aver letto quella guida, se una ricerca per ‘risposta’ debba mostrare tutte le voci di ‘post’.

Quindi, vorrei comunque che la richiesta contenuta nel titolo di questo argomento venisse presa in considerazione. (ma, di nuovo, questa è solo la mia opinione)

Una risposta è necessariamente un post, ma alcuni post non sono risposte, quindi cercare “post” non dovrebbe aggiungere automaticamente il termine di ricerca “risposta”.

Se la tua preferenza viene soddisfatta, darà fastidio ad altri utenti come me che cercano solo “post” e non “risposta”.

3 Mi Piace

Ma tu sei ovviamente ‘informed’ e probabilmente useresti semplicemente un termine di ricerca esplicito, senza disturbare le persone qui con un nuovo argomento sul motivo per cui così tanti risultati di ricerca per ‘post’ appaiono nelle tue ricerche di ‘risposta’.

Indipendentemente dal significato di post/risposta, l’aggiunta di sinonimi alla ricerca non è attualmente configurabile in Discourse.

9 Mi Piace

Ok, questo mi fa tacere :wink: ma forse ci dovrebbe essere un modo per aggiungerli: prevedo che potrebbe alleggerire il carico sulle brave persone che rispondono ai nuovi arrivati in questo fantastico forum :slight_smile:

In realtà, effettuo ricerche generali e poi seguo i link pertinenti che presentano qualche sovrapposizione con ciò che sto cercando.

I motori di ricerca hanno un’idea di quali link vengono seguiti. Discourse ha qualcosa di simile. I “Messaggi suggeriti” alla fine dell’argomento sono una fonte fruttuosa di argomenti pertinenti non direttamente correlati ai termini di ricerca specifici.

1 Mi Piace

Lo ricategorizzo come #feature: la richiesta di funzionalità è piuttosto chiara. Chiede un punto nell’UX per definire sinonimi personalizzati.

Postgres supporta tecnicamente i sinonimi, come da:

Quindi, se volessi metterti al lavoro e diventare estremamente tecnico, potresti implementare qualcosa già oggi, ma concordo sul fatto che in futuro potrebbe essere interessante aggiungere un’interfaccia che permetta ai moderatori di definire questi sinonimi.

Non aggiungo pr-welcome perché si tratta di una cosa complessa che richiederebbe molto tempo per essere realizzata correttamente, con un beneficio potenzialmente limitato.

Per quanto riguarda la tempistica, direi che mi aspetto di non occuparmene entro il prossimo anno e probabilmente di affrontarla entro i prossimi 5 anni.

9 Mi Piace

Complimenti, Dale :partying_face:

image

1 Mi Piace

Abbiamo aggiornato la nostra terminologia (Utente ora è “Membro”) e abbiamo aggiornato la nostra documentazione di conseguenza, ma vorrei poter fare in modo che chiunque cerchi Utente veda automaticamente i risultati che menzionano “Membro”. Avete qualche idea su un metodo semplice per raggiungere questo obiettivo?

CC: @michellefs

È una cosa abbastanza difficile, potremmo potenzialmente creare un plugin che inietta sinonimi nei dati indicizzati, ma si tratterebbe di un lavoro compreso tra 1 e 5 giorni.

Immagino che la grande domanda qui sia quanto sia importante per te? È fattibile ma richiederebbe una consulenza personalizzata da parte nostra.

1 Mi Piace

Non so niente, ma non è solo una questione di cambiare i testi dal lato della personalizzazione? O sto capendo di nuovo tutto completamente sbagliato?

Penso che la speranza sia di avere la capacità di influenzare indirettamente l’algoritmo di ricerca attraverso uno strumento come sinonimi di tag. Ma per qualsiasi parola chiave all’interno di un post (o almeno del post originale).

Un esempio di caso d’uso sarebbe per i membri della community/visitatori del sito che cercano le loro frasi colloquiali piuttosto che un gergo di marca simile. L’algoritmo di ricerca ha dato priorità ad argomenti molto diversi. Un esempio sul nostro sito sarebbe la ricerca di argomenti “app desktop” rispetto a “client nativo”.

Sono curioso di sapere se i punti di vista sugli errori di battitura sono cambiati nel corso degli anni:

In Discourse-AI abbiamo iniziato a sperimentare la ricerca semantica. Siamo ancora agli inizi e stiamo ancora esplorando questi sistemi.

L’utilizzo degli LLM per migliorare il prompt di ricerca è anche un approccio possibile (sebbene oggi lento):

Questa tecnica è menzionata qui: GitHub - texttron/hyde: HyDE: Precise Zero-Shot Dense Retrieval without Relevance Labels


Oltre agli approcci automatizzati al 100%

La nostra strategia generale qui è di iterare. Abbiamo già le “parole monitorate” nel prodotto, non mi dispiacerebbe una funzionalità che aggiunga “Sinonimi di ricerca” dove si specificano errori di battitura comuni e frasi comuni che si desidera “inserire”. Non è un lavoro programmato ma certamente qualcosa che si potrebbe prendere in considerazione per sponsorizzare.

Esiste un precedente per questa esatta funzionalità in Postgres secondo: https://www.postgresql.org/docs/current/textsearch-dictionaries.html#TEXTSEARCH-SYNONYM-DICTIONARY

L’altra area che sono aperto a esplorare (sono solo tiepido su questo) è consentire un posto “metadati” nascosto nei post, dove gli amministratori possono inserire termini di ricerca. È molto, molto invisibile e generalmente consiglio di “inserire” correttamente le parole in modo che non vengano nascoste, ad esempio:

SEO

semantico, correlato, miglioramento

2 Mi Piace

Shocked Cosmo Kramer GIF

È un’idea di puro genio, risolve il problema principale della ricerca basata su embedding: l’input utente errato.

E richiede modifiche minime alla nostra configurazione esistente, poiché è sufficiente aggiungere un piccolo passaggio di “arricchimento” della query di ricerca :exploding_head:


Su questo argomento, qualcosa che possiamo anche fare è una ricerca ibrida:

  • Ricerca utilizzando la ricerca full-text PG esistente
  • Ricerca utilizzando embedding
  • Raccogliere entrambi i migliori 50 risultati
  • Passare a un servizio di riordino della ricerca
  • Mostrare i risultati riordinati

Abbiamo già un riordinatore super capace nella nostra API di embedding esistente sotto un endpoint separato, questo ha tutti i pezzi necessari pronti per accadere.

Esempio qui:

https://github.com/pgvector/pgvector-python/blob/master/examples/hybrid_search.py#L67-L70

6 Mi Piace