2008-10-15 6 views
20

Necesito analizar los ingredientes de la receta en cantidad, medida, artículo y descripción según corresponda a la línea, como 1 taza de harina, la cáscara de 2 limones y 1 taza de azúcar moreno envasado, etc. ¿Cuál sería la mejor manera de hacerlo? ¿esta? Estoy interesado en usar python para el proyecto, por lo que supongo que usar el nltk es la mejor opción, pero estoy abierto a otros idiomas.¿Cómo puedo usar NLP para analizar los ingredientes de la receta?

+6

Hey si usted todavía está interesado en el análisis de la receta, he [código abierto] (https://github.com/KitchenPC/core/) mi aplicación. ¡Tal vez lo encuentres útil! –

+4

¡Nunca hubiera esperado encontrar esta pregunta aquí y alguien respondiéndola con una solución lista para usar! –

Respuesta

0

¿Puede ser más específico cuál es su opinión? Si sólo tiene entrada de la siguiente manera:

1 cup flour 
2 lemon peels 
1 cup packed brown sugar 

No será demasiado difícil de analizar sin necesidad de utilizar ningún PNL en absoluto.

+0

Hay algunos ejemplos arriba, específicamente la cáscara de 2 limones. Va a ser texto escrito a máquina, por lo que podría tratarse de cualquier cosa que sea una cantidad y un artículo válidos. – Greg

+2

si realmente desea ser capaz de manejar "cualquier cosa", entonces necesita un humano para realizar el análisis, o es un problema de nivel AI. Esa es la naturaleza de la bestia cuando se trata de análisis de texto. Haga suposiciones para casos normales y suponga que los casos extremos fallarán. –

3

Ésta es una respuesta incompleta, pero usted está buscando en la redacción de un programa de análisis de texto libre, que, como saben, no es trivial :)

Algunas maneras de hacer trampa, utilizando conocimientos específicos para cocinar:

  1. Construir listas de palabras para los "adjetivos" y "verbos", y el filtro contra ellos
    1. unidades de medida forman un conjunto cerrado, el uso de palabras y abreviaturas como {L., c, taza, t , tablero}
    2. instrucciones - cortar, cortar, cocinar, pelar. Es casi seguro que las cosas que vienen después de esto son ingredientes
  2. Recuerde que en su mayoría está buscando sustantivos, y puede tomar una lista etiquetada de non-sustantivos (de WordNet, por ejemplo) y filtrar en contra de ellos.

Si es más ambicioso, puede consultar el NLTK Book en el capítulo sobre analizadores.

¡Buena suerte! ¡Esto suena como un proyecto principalmente factible!

4

supongo que esto es un par de años fuera, pero yo estaba pensando en hacer algo similar a mí mismo y me encontré con esto, así que pensé que podría tener una puñalada en ella en caso de que sea útil para cualquier persona en f

Aunque diga que quiere analizar la prueba gratuita, la mayoría de las recetas tienen un formato bastante estándar para sus listas de recetas: cada ingrediente está en una línea separada, la estructura exacta de las oraciones rara vez es tan importante. El rango de vocabulario es relativamente pequeño también.

Una forma podría ser comprobar cada línea para ver las palabras que pueden ser sustantivos y palabras/símbolos que expresan cantidades. Creo que WordNet puede ayudar a ver si una palabra es un nombre o no, pero no la he usado antes. Alternativamente, podría usar http://en.wikibooks.org/wiki/Cookbook:Ingredients como una lista de palabras, aunque una vez más, no sabría exactamente qué tan completo es.

La otra parte es para reconocer cantidades. Estos vienen en diferentes formas, pero son lo suficientemente pocos como para que puedas crear una lista de palabras clave. En particular, asegúrese de tener buenos informes de errores. Si el programa no puede analizar por completo una línea, haga que le informe cuál es esa línea, junto con lo que tiene/no ha reconocido para que pueda ajustar sus listas de palabras clave en consecuencia.

Aaanyway, no estoy garantizando nada de esto va a funcionar (y es casi seguro que no es fiable al 100%), pero así es como me gustaría empezar a abordar el problema

Cuestiones relacionadas