У меня есть набор требований, и я ищу лучшую стратегию на основе Java/algorthm/software. В принципе, я хочу взять набор ингредиентов рецептов, введенных реальными людьми на естественном английском языке, и проанализировать метаданные в структурированный формат (см. Требования ниже, чтобы увидеть, что я пытаюсь сделать).
Я огляделся здесь и в других местах, но ничего не нашел, что дает советы высокого уровня о том, в каком направлении следует. Итак, я поставлю его умным людям: -):
Какой лучший/самый простой способ решить эту проблему? Должен ли я использовать парсер для естественного языка, dsl, lucene/solr или какой-либо другой инструмент/технологию? НЛП кажется, что это может сработать, но выглядит очень сложно. Я бы предпочел не тратить много времени на глубокое погружение, чтобы узнать, что он не может делать то, что я ищу, или что есть более простое решение.
Требования
Учитывая эти описания ингредиентов рецепта....
- "8 чашек смешанной зелени (около 5 унций)"
- "Восемь кусатых куриных бедер (около 1¼ фунта)"
- "6.5 столовые ложки оливкового масла экстра-оливкового масла"
- "приблизительно 6 унций. тонко нарезанный копченый лосось, разрезанный на полоски"
- "2 целых цыплят (по 3 фунта каждый)"
- "20 унций каждого замороженного рубленого шпината, оттаявшего"
- ". 5 чашек сыра пармезан, тертого"
- "около 0,5 чашки орехов пекан, поджаренных и тонко измельченных".
- ". 5 чашек Dixie Diner Bread Crumb Mix, простой"
- "8 зубчиков чеснока, фарш (4 чайных ложки)"
- "8 зеленых луков, разрезанных на 2 части"
Я хочу превратить его в это....
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------| | | 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 | - | |-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|
Обратите внимание на разнообразие описаний. Некоторые вещи сокращены, некоторые - нет. Некоторые цифры - цифры, некоторые из них указаны.
Мне бы понравилось то, что делает идеальный анализ/перевод. Но, согласился бы на то, что разумно хорошо начать.
Бонусный вопрос: предложив стратегию/инструмент, как бы вы это сделали?
Спасибо!
Джо