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?
risposta
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.
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
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. –
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:
- costruire elenchi di parole per le "aggettivi" e "verbi", e filtri contro le
- unità di misura formano un insieme chiuso, usando le parole e le abbreviazioni come {L., c, tazza, t , trattino}
- istruzioni - tagliare, tagliare a dadi, cuocere, sbucciare. Le cose che vengono dopo questo sono quasi certo di essere ingredienti
- 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!
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
Io in realtà fare questo per il mio sito web , che ora fa parte di un open source project che altri possono usare.
Ho scritto un post sul blog sulle mie tecniche, divertiti!
- 1. Progettazione database per la memorizzazione di ricette alimentari
- 2. Come utilizzare la PNL per separare un contenuto di testo non strutturato in paragrafi distinti?
- 3. come ottenere un albero delle dipendenze con parser PNL Stanford
- 4. Programmazione del compilatore: quali sono gli ingredienti più fondamentali?
- 5. chef include le ricette sovrascrive gli attributi
- 6. Chunking un testo con la Stanford-PNL
- 7. Chef fa esecuzione delle ricette non sequenziale
- 8. Come utilizzare correttamente le regole, restrict_xpaths per eseguire la scansione e analizzare gli URL con scrapy?
- 9. Come ottenere un elenco delle ricette applicate al nodo Chef?
- 10. Come posso analizzare gli URL HTTP in C#?
- 11. Come posso analizzare gli argomenti di lunga durata nella shell?
- 12. Firebase: Posso utilizzare il nuovo kit account di Facebook per autenticare gli utenti delle app?
- 13. WordNet ha "livelli"? (PNL)
- 14. Come posso utilizzare Travis per la sottodirectory?
- 15. Come posso utilizzare gli UUID in SQLAlchemy?
- 16. di ricerca semantica con la PNL e elasticsearch
- 17. PNL di testi legali?
- 18. PNL Parser in Haskell
- 19. Come utilizzare NSXMLParser per analizzare gli elementi padre-figlio con lo stesso nome
- 20. Come utilizzare ScrapySharp per analizzare gli elementi in un documento html?
- 21. Come posso utilizzare gli array MATLAB come chiavi per gli oggetti Java HashMap?
- 22. Come posso analizzare XML Android?
- 23. Come posso analizzare gli indirizzi IP e gli intervalli di indirizzi con Perl?
- 24. Opsworks Chef 12 ricette
- 25. Quante ricette puoi fare con solo latte, uova, burro, farina, zucchero e sale?
- 26. Come posso ottenere Chef per eseguire apt-get update prima di eseguire altre ricette
- 27. come utilizzare gli sprite delle immagini in GWT?
- 28. Come utilizzare Json.NET per analizzare JSON in PowerShell?
- 29. Come utilizzare TinyXml per analizzare un elemento specifico
- 30. Come posso utilizzare il pyparsing per analizzare espressioni nidificate che hanno più tipi di apertura/chiusura?
Hey, se siete ancora interessati a ricetta analisi, ho [open source] (https://github.com/KitchenPC/core/) mia implementazione. Forse lo troverai utile! –
Non mi sarei mai aspettato di trovare questa domanda qui e qualcuno effettivamente rispondendo con una soluzione pronta per l'uso! –