https://github.com/skytecat/recipener
https://github.com/skytecat/recipener
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/skytecat/recipener
- Owner: skytecat
- Created: 2025-02-12T09:55:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-12T13:23:57.000Z (over 1 year ago)
- Last Synced: 2025-02-12T14:31:15.825Z (over 1 year ago)
- Language: Jupyter Notebook
- Size: 3.41 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RecipeNER — Автоматическое распознавание именованных сущностей в рецептах блюд с использованием LSTM
## Цель проекта
Проект направлен на автоматизацию процесса анализа текстовых рецептов блюд путем выявления ключевых компонентов, таких как ингредиенты (`name`), их количество (`qty`), единицы измерения (`unit`) и дополнительные комментарии (`comment`).
## Описание проекта
### Данные
Использование датасета из **50,000** рецептов, представленных в формате **BIO** , где каждому слову соответствует тэг:
`B-`: Начало сущности типа ``.
`I-`: Продолжение сущности типа ``.
Данные разделены на обучающую выборку (**40,000** рецептов) и тестовую выборку (**10,000** рецептов).
### Архитектура модели
Модель состоит из нескольких компонентов:
- Эмбеддинговый слой (nn.Embedding) : Преобразует индексы слов в их векторные представления.
- LSTM-слой (nn.LSTM) : Обрабатывает последовательность эмбеддингов, учитывая контекст каждого слова.
- Полносвязный слой (nn.Linear) : Преобразует выход LSTM в пространство тегов.
- Выход модели проходит через функцию F.log_softmax, чтобы получить логарифмы вероятностей для каждого тега.
### Обучение
В качестве функции потерь используется **NLLLoss** (Negative Log-Likelihood Loss).
Для эффективного обновления параметров модели используется оптимизатор **Adam**.
### Оценка результатов
Для оценки качества модели были вычислены следующие метрики:
- Accuracy: 0.89
- Macro-Precision: 0.89
- Micro-Precision: 0.89
- Macro-Recall: 0.88
- Micro-Recall: 0.89
- Micro-F1: 0.88
А также была построена матрица ошибок (**Confusion Matrix**), показывающая, какие тэги чаще всего путаются.