Стратегия синтаксического анализа описаний естественного языка в структурированные данные

У меня есть набор требований, и я ищу лучшую Java-ориентированную стратегию / algorthm / программное обеспечение для использования. По сути, я хочу взять набор ингредиентов рецепта, введенных реальными людьми на естественном английском, и преобразовать метаданные в структурированный формат (см. Требования ниже, чтобы узнать, что я пытаюсь сделать).

Я осмотрелся здесь и в других местах, но не нашел ничего, что дало бы общий совет о том, в каком направлении двигаться. Итак, я передам это умным людям: -):

Какой лучший / самый простой способ решить эту проблему? Должен ли я использовать синтаксический анализатор естественного языка, dsl, lucene / solr или какой-либо другой инструмент / технологию? Кажется, что НЛП может сработать, но выглядит действительно сложным. Я бы предпочел не тратить много времени на глубокое погружение только для того, чтобы узнать, что он не может сделать то, что я ищу, или что есть более простое решение.

Требования

С учетом этих описаний ингредиентов рецепта ....

  1. «8 чашек зелени (около 5 унций)»
  2. «Восемь куриных бедер без кожи (около 1 about фунта)»
  3. «6.5 ложки оливкового масла первого холодного отжима "
  4. " примерно 6 унций тонко нарезанного копченого лосося, нарезанного полосками "
  5. " 2 целых цыпленка (3,5 фунта каждая) "
  6. " 20 унций каждого замороженного нарезанного шпината, размороженный "
  7. ". 5 стаканов тертого сыра пармезан "
  8. " около 0,5 стакана пеканов, поджаренных и мелко измельченных "
  9. ".5 чашек Dixie Diner Bread Crumb Mix, без примесей "
  10. " 8 измельченных зубчиков чеснока (4 чайные ложки) "
  11. " 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              | -           |
|-----|---------|-------------|-------------------------|--------|-----------|--------------------------------|-------------|

Обратите внимание на разнообразие описаний. Некоторые вещи сокращены, некоторые нет. Некоторые числа являются числами, некоторые записаны по буквам.

Я бы хотел что-то, что делает идеальный синтаксический анализ / перевод. Но я бы согласился на то, что достаточно хорошо для начала.

Дополнительный вопрос: после предложения стратегии / инструмента, как бы вы это сделали?

Спасибо!

Джо

12
задан Jizzoe 7 October 2011 в 22:30
поделиться