🚀 sgarbi/bert-fda-nutrition-ner
このモデルは栄養表示分野の固有表現抽出(NER)に特化したBERTモデルです。主な目的は、テキストデータから様々な栄養成分を検出し、分類することです。これにより、栄養表示やその他の栄養関連資料に含まれる情報を体系的に理解する手助けをします。このモデルは、拡張データを用いたモデルのトレーニングにおけるベンチマークおよび学習ツールとして作成されました。
🚀 クイックスタート
このモデルは栄養表示に関する固有表現抽出(NER)タスクに特化しており、テキストデータから栄養成分を検出・分類することができます。
✨ 主な機能
- 栄養表示やレビューなどのテキストから栄養成分を抽出・分類
- 多様なデータセットを用いてトレーニングされ、実世界のデータに対応
📦 インストール
このREADMEには具体的なインストール手順が記載されていないため、このセクションをスキップします。
💻 使用例
基本的な使用法
INPUT = 'Here are the ingredients to use: Tomato Paste, Sesame Oil, Cheese Cultures, Ground Corn, Vegetable Oil, Brown rice, sea salt, Tomatoes, Milk, Onions, Egg Yolks, Lime Juice Concentrate, Corn Starch, Condensed Milk, Spices, Artificial Flavor, red 5, roasted coffee'
Output = ['CLS', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-CARBOHYDRATES', 'I-CARBOHYDRATES', 'O', 'B-LIPIDS', 'I-LIPIDS', 'O', 'B-PROBIOTICS', 'I-PROBIOTICS', 'O', 'B-CARBOHYDRATES', 'I-CARBOHYDRATES', 'O', 'B-LIPIDS', 'I-LIPIDS', 'O', 'B-CARBOHYDRATES', 'I-CARBOHYDRATES', 'O', 'B-MINERALS', 'I-MINERALS', 'O', 'B-CARBOHYDRATES', 'O', 'B-PROXIMATES', 'O', 'B-CARBOHYDRATES', 'O', 'B-LIPIDS', 'I-LIPIDS', 'I-LIPIDS', 'I-LIPIDS', 'O', 'B-CARBOHYDRATES', 'I-CARBOHYDRATES', 'I-CARBOHYDRATES', 'O', 'B-CARBOHYDRATES', 'I-CARBOHYDRATES', 'I-CARBOHYDRATES', 'O', 'B-PROXIMATES', 'I-PROXIMATES', 'O', 'B-FLAVORING', 'O', 'B-FLAVORING', 'I-FLAVORING', 'O', 'B-COLORANTS', 'I-COLORANTS', 'O', 'B-STIMULANTS', 'I-STIMULANTS', 'O', 'I-STIMULANTS']
print(Output)
📚 ドキュメント
トレーニングデータの説明
sgarbi/bert-fda-nutrition-ner
モデルのトレーニングデータは、米国食品医薬品局(FDA)の公開データセットから慎重に選り抜かれました。このデータは主にFoodData Centralウェブサイトに由来し、様々な食品の詳細な栄養情報と表示を含んでいます。
データソース
- 表示ソース:米国食品医薬品局(FDA)、FoodData Central。FDA FoodData Central。このデータセットには、成分リスト、栄養価、提供量、その他の重要な表示情報などの詳細な栄養データが含まれています。
- Yelpレストランレビュー:Hugging FaceのYelp Review Fullデータセットを利用し、Mistral 7Bで一般的なタグ付けを行って拡張し、レストラン関連の栄養に関する言及の理解を深めました。
- Amazon食品レビュー:Yelpデータセットと同様に、このモデルはHugging FaceのAmazon Food Reviewsデータセットも組み込み、Mistral 7Bで拡張して、FDAデータと関連する様々な食品レビューから幅広い栄養情報を認識・分類する能力を強化しています。
前処理と拡張ステップ
- 抽出:FDAデータセットから栄養事実や成分リストを含む重要なテキストデータを抽出しました。
- 正規化:すべてのテキストを一貫性を持たせるために正規化し、小文字に変換し、余分な書式を削除しました。
- エンティティタグ付け:主要な栄養要素を手動でタグ付けし、トレーニング用のラベル付きデータセットを作成しました。これには、主要栄養素、ビタミン、ミネラル、および様々な特定の食事成分が含まれます。
- トークン化とフォーマット:データをトークン化し、BERTモデルの入力要件に合わせてフォーマットを整えました。
- ノイズの導入:実世界の不完全なデータを扱うモデルの能力を強化するために、トレーニングセットに意図的にノイズを導入しました。これには以下が含まれます。
- 文の入れ替え:文中の文をランダムに入れ替え、様々な文構造を理解するようにモデルを訓練しました。
- スペルミスの導入:実世界のシナリオで頻繁に遭遇する誤ったスペルを認識し、正しく処理するようにモデルを訓練するために、意図的に一般的なスペルミスを挿入しました。
考慮事項
- このモデルは食品表示の公開データのみを使用してトレーニングされており、個人情報や機密データは使用されていません。
- ラベリングタスクはmistral.aiが提供するMistral 7B-Instructによって行われました(https://docs.mistral.ai/)。ラベリングデータの際にモデルが幻覚を起こし、不正確な分類が行われる可能性があります。
- このツールはテキストから栄養エンティティを抽出するだけであり、栄養や健康に関する推奨事項には使用しないでください。栄養アドバイスは専門家から受けるべきです。
- 特定の種類の食品表示の言語や表現がモデルにバイアスをもたらす可能性があります。
- このモデルはBERTアーキテクチャとNERタスクの探索のために作成されました。
ラベルマップ
label_map = {
0: 'O',
1: 'I-VITAMINS',
2: 'I-STIMULANTS',
3: 'I-PROXIMATES',
4: 'I-PROTEIN',
5: 'I-PROBIOTICS',
6: 'I-MINERALS',
7: 'I-LIPIDS',
8: 'I-FLAVORING',
9: 'I-ENZYMES',
10: 'I-EMULSIFIERS',
11: 'I-DIETARYFIBER',
12: 'I-COLORANTS',
13: 'I-CARBOHYDRATES',
14: 'I-ANTIOXIDANTS',
15: 'I-ALCOHOLS',
16: 'I-ADDITIVES',
17: 'I-ACIDS',
18: 'B-VITAMINS',
19: 'B-STIMULANTS',
20: 'B-PROXIMATES',
21: 'B-PROTEIN',
22: 'B-PROBIOTICS',
23: 'B-MINERALS',
24: 'B-LIPIDS',
25: 'B-FLAVORING',
26: 'B-ENZYMES',
27: 'B-EMULSIFIERS',
28: 'B-DIETARYFIBER',
29: 'B-COLORANTS',
30: 'B-CARBOHYDRATES',
31: 'B-ANTIOXIDANTS',
32: 'B-ALCOHOLS',
33: 'B-ADDITIVES',
34: 'B-ACIDS'
}
🔧 技術詳細
このセクションには具体的な技術的な説明が50文字以上含まれていないため、このセクションをスキップします。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
GitHub
https://github.com/ESgarbi/bert-fda-nutrition-ner