stratégia para analisar descrições de linguagem natural em dados estruturad

Tenho um conjunto de requisitos e estou procurando o melhor Baseado em Java estratégia / algorthm / software a ser usado. Basicamente, quero pegar um conjunto de ingredientes da receita digitados por pessoas reais em inglês natural e analisar os metadados em um formato estruturado (consulte os requisitos abaixo para ver o que estou tentando fazer).

Procurei aqui e em outros lugares, mas não encontrei nada que dê conselhos de alto nível sobre qual direção seguir. Então, eu vou colocar para as pessoas inteligentes: -):

Qual é a melhor / mais simples maneira de resolver esse problema? Devo usar um analisador de idioma natural, dsl, lucene / solr ou alguma outra ferramenta / tecnologia? A PNL parece que pode funcionar, mas parece realmente complexa. Prefiro não gastar muito tempo fazendo um mergulho profundo apenas para descobrir que não pode fazer o que estou procurando ou que existe uma solução mais simple

Requisitos

Dada essas descrições dos ingredientes da receita ....

"8 xícaras de verduras mistas (cerca de 5 onças)" "Oito coxas de frango sem pele (cerca de 1,5 kg)" "6,5 colheres de sopa de azeite extra-virgem" "aproximadamente 6 onças de salmão defumado em fatias finas, cortado em tiras" "2 galinhas inteiras (1,5 kg cada)" "20 onças de espinafre picado congelado, descongelado" ". 5 xícaras de queijo parmesão ralado" "cerca de 0,5 xícara de nozes-pecã, tostadas e finamente moídas" ". 5 xícaras Dixie Diner Bread Crumb Mix, comum" "8 dentes de alho picados (4 colheres de chá)" "8 cebolas verdes, cortadas em 2 pedaços"

Eu quero transformá-lo nisso ....

|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
|     | Measure |             |                         | weight | weight    |                                |             |
| #   | value   | Measure     | ingredient              | value  | measure   | preparation                    | Brand Name  |
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
| 1.  | 8       | cups        | mixed greens            | 5      | ounces    | -                              | -           |
| 2.  | 8       | -           | skinless chicken thigh  | 1.5    | pounds    | -                              | -           |
| 3.  | 6.5     | tablespoons | extra-virgin olive oil  | -      | -         | -                              | -           |
| 4.  | 6       | ounces      | smoked salmon           | -      | -         | thinly sliced, cut into strips | -           |
| 5.  | 2       | -           | whole chicken           | 3.5    | pounds    | -                              | -           |
| 6.  | 20      | ounces      | forzen chopped spinach  | -      |           | thawed                         | -           |
| 7.  | .5      | cup         | parmesean cheese        | -      | -         | grated                         | -           |
| 8.  | .5      | cup         | pecans                  | -      | -         | toasted, finely ground         | -           |
| 9.  | .5      | cup         | Bread Crumb Mix, plain  | -      | -         | -                              | Dixie Diner |
| 10. | 8       | -           | garlic clove            | 4      | teaspoons | minced                         | -           |
| 11. | 8       | -           | green onions            | -      | -         | cut into 2 pieces              | -           |
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|

Observe a diversidade das descrições. Algumas coisas são abreviadas, outras não. Alguns números são números, outros são explicitado

Eu adoraria algo que faça uma análise / tradução perfeita. Mas, se contentaria com algo que faz razoavelmente bem para começar.

Pergunta bônus: depois de sugerir uma estratégia / ferramenta, como você faria isso?

Obrigado

Joe

questionAnswers(5)

yourAnswerToTheQuestion