2008-10-15 5 views
20

Ho bisogno di analizzare gli ingredienti della ricetta in quantità, misura, articolo e descrizione come applicabile alla linea, come 1 tazza di farina, la buccia di 2 limoni e 1 tazza di zucchero di canna confezionato ecc. Quale sarebbe il modo migliore di fare Questo? Sono interessato all'utilizzo di python per il progetto, quindi presumo che l'uso di nltk sia la migliore, ma sono aperto ad altre lingue.Come posso utilizzare la PNL per analizzare gli ingredienti delle ricette?

+6

Hey, se siete ancora interessati a ricetta analisi, ho [open source] (https://github.com/KitchenPC/core/) mia implementazione. Forse lo troverai utile! –

+4

Non mi sarei mai aspettato di trovare questa domanda qui e qualcuno effettivamente rispondendo con una soluzione pronta per l'uso! –

risposta

0

Puoi essere più specifico di ciò che hai inserito? Se v'è solo ingresso in questo modo:

1 cup flour 
2 lemon peels 
1 cup packed brown sugar 

Non sarà troppo difficile analizzarlo senza utilizzare alcun NLP a tutti.

+0

Ci sono alcuni esempi sopra, in particolare la buccia di 2 limoni. Sarà un testo digitato liberamente, quindi potrebbe trattarsi di qualsiasi cosa che sia una quantità e un articolo validi. – Greg

+2

se vuoi veramente essere in grado di gestire "qualsiasi cosa", allora hai bisogno di un essere umano per fare l'analisi, o è un problema a livello di intelligenza artificiale. Questa è la natura della bestia quando si tratta di analizzare il testo. Fai delle ipotesi per i casi normali e supponi che i casi limite falliscano. –

3

Questa è una risposta incompleta, ma si sta guardando la scrittura di un parser testo libero, che, come sapete, non è banale :)

Alcuni modi per imbrogliare, utilizzando le conoscenze specifiche per la cottura:

  1. costruire elenchi di parole per le "aggettivi" e "verbi", e filtri contro le
    1. unità di misura formano un insieme chiuso, usando le parole e le abbreviazioni come {L., c, tazza, t , trattino}
    2. istruzioni - tagliare, tagliare a dadi, cuocere, sbucciare. Le cose che vengono dopo questo sono quasi certo di essere ingredienti
  2. ricordarsi che si tratta per lo più alla ricerca di nomi, e si può prendere un elenco etichetta dei non sostantivi (da WordNet, per esempio) e filtro contro di loro.

Se sei più ambizioso, puoi consultare il capitolo NLTK Book nel parser.

Buona fortuna! Sembra un progetto per lo più fattibile!

4

Credo che questo è un paio di anni fuori, ma stavo pensando di fare qualcosa di simile me stesso e sono imbattuto in questo, quindi ho pensato che potrei avere una pugnalata a esso nel caso in cui è utile a chiunque altro in f

Anche se dici di voler analizzare il test gratuito, la maggior parte delle ricette ha un formato abbastanza standard per le loro liste di ricette: ogni ingrediente è su una riga separata, la struttura esatta della frase raramente è così importante. Anche la gamma di vocab è relativamente piccola.

Un modo potrebbe essere controllare ogni riga per le parole che potrebbero essere nomi e parole/simboli che esprimono le quantità. Penso che WordNet possa aiutare a vedere se una parola è probabile che sia un sostantivo o no, ma non l'ho mai usata prima di me. In alternativa, è possibile utilizzare http://en.wikibooks.org/wiki/Cookbook:Ingredients come un elenco di parole, anche se, ancora una volta, non saprei esattamente di quanto sia completo.

L'altra parte è di riconoscere le quantità. Questi sono disponibili in alcune forme diverse, ma abbastanza pochi da poter creare un elenco di parole chiave. In particolare, assicurati di avere una buona segnalazione degli errori. Se il programma non è in grado di analizzare completamente una riga, chiedigli di riferire in merito a quale sia la linea, insieme a ciò che ha/non ha riconosciuto, in modo che tu possa modificare gli elenchi di parole chiave di conseguenza.

Aaanyway, non sto garantendo niente di tutto questo funzionerà (ed è quasi certo di non essere affidabile al 100%), ma è così che mi piacerebbe iniziare ad affrontare il problema

Problemi correlati