Подтвердить что ты не робот

Как я могу использовать NLP для анализа ингредиентов рецептов?

Мне нужно разобрать ингредиенты рецепта на количество, измерение, предмет и описание, применимые к линии, такие как 1 чашка муки, кожура из 2 лимонов и 1 чашка упакованного коричневого сахара и т.д. Какой был бы лучший способ делая это? Я заинтересован в использовании python для проекта, поэтому я предполагаю, что использование nltk - лучшая ставка, но я открыт для других языков.

4b9b3361

Ответ 2

Я думаю, это уже несколько лет, но я думал о том, чтобы сделать что-то подобное себе и наткнулся на это, поэтому подумал, что у меня может быть удар в нем, если он будет полезен кому-либо еще в f

Даже если вы говорите, что хотите разобрать бесплатный тест, большинство рецептов имеют довольно стандартный формат для своих списков рецептов: каждый ингредиент находится на отдельной строке, точная структура предложений редко бывает очень важна. Диапазон vocab также относительно невелик.

Одним из способов может быть проверка каждой строки для слов, которые могут быть существительными и словами/символами, которые выражают величины. Я думаю, что WordNet может помочь увидеть, что слово может быть существительным или нет, но я не использовал его раньше себя. В качестве альтернативы вы можете использовать http://en.wikibooks.org/wiki/Cookbook:Ingredients в качестве списка слов, хотя, опять же, я не знаю точно, насколько он всеобъемлющий.

Другая часть - признать величины. Они представлены в нескольких разных формах, но недостаточно, чтобы создать список ключевых слов. В частности, убедитесь, что у вас хорошая отчетность об ошибках. Если программа не может полностью проанализировать строку, попросите ее сообщить вам, что это за строка, а также то, что она/не распознала, поэтому вы можете соответствующим образом скорректировать списки ключевых слов.

Aaanyway, я не гарантирую, что это будет работать (и это почти наверняка не будет на 100% надежным), но как я начну подходить к проблеме

Ответ 3

Это неполный ответ, но вы смотрите на создание парсера свободного текста, который, как вы знаете, нетривиальен:)

Некоторые способы обмануть, используя знания, специфичные для приготовления пищи:

  • Создавать списки слов для "прилагательных" и "глаголов" и фильтровать их
    • единицы измерения образуют замкнутый набор, используя слова и сокращения, такие как {L., c, cup, t, dash}
    • инструкции - вырезать, кости, варить, очистить. Вещи, которые приходят после этого, почти наверняка будут ингредиентами.
  • Помните, что вы в основном ищете существительные, и вы можете взять помеченный список не-существительных (например, из WordNet) и фильтровать их.

Если вы более амбициозны, вы можете посмотреть в NLTK Book в главе о парсерах.

Удачи! Это звучит как в основном выполнимый проект!

Ответ 4

Нью-Йорк Таймс столкнулась с этой проблемой, когда они анализировали свой архив рецептов. Они использовали технику НЛП, называемую случайным полем с линейно-цепочечным условием (CRF). Это сообщение в блоге дает хороший обзор:

Они открыли свой код, но быстро отказались от него. Я поддерживаю самую последнюю версию этого и я написал немного о том, как я модернизировал это.

Если вы ищете готовое решение, несколько компаний предлагают разбор ингредиентов в качестве услуги:

Ответ 5

Можете ли вы уточнить, что такое ваш вклад? Если у вас есть только такой ввод:

1 cup flour
2 lemon peels
1 cup packed brown sugar

Слишком сложно разобрать его, не используя никакой НЛП вообще.