Natural Language to Search Criteria - Date Ranges

0

Considera un'applicazione che memorizza un set di record che contengono:

  • Descrizione
  • Costo
  • Data di acquisto

Mi piacerebbe poter consentire agli utenti di utilizzare il linguaggio naturale per cercare il set di dati.

Ad esempio, l'espressione di ricerca:

blue from last month less than $20

si tradurrebbe in (Linq solo come esempio - la correttezza della query non è in discussione):

_db.Widgets.Where(w => w.Description.Contains('blue') && w.PurchaseDate >= DateTime.Now.AddMonths(-1) && w.Cost < 20)

Sto lottando per trovare un punto di partenza. Qualsiasi risorsa per farmi nella giusta direzione sarebbe apprezzata (sto lavorando in .NET).

    
posta Brendan Green 22.04.2014 - 07:26
fonte

1 risposta

2

Quicksand "Natural Language" per quanto riguarda i computer. Ti verrà impantanato dettaglio ambiguo non appena si entra. Quale lingua? Suppongo tu intenda l'inglese tra le diverse migliaia disponibili. Quindi quale dialetto di "inglese" intendi probabilmente "East Coast University American" meno Jargon e Slang. Così si finisce con un vocabolario limitato di inglese "corretto" con una grammatica ristretta. Che non è naturale nel minimo.

"Date" d'altra parte sono un campo minato. Cosa sono "10/02/02" o "10/12/11"? Quale calendario? Ce ne sono molti tra cui scegliere tra i 2557 dove sono seduto, ma il tizio accanto a me pensa che sia il 1345.

Questo è il motivo per cui abbiamo moduli con pull down e selettori di date. Rimuovono queste ambiguità e con un piccolo sforzo possono essere adottate in molte lingue e convenzioni culturali.

    
risposta data 22.04.2014 - 12:36
fonte

Leggi altre domande sui tag