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
RequisitosDada 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