Line 49:
Line 49:
=== Steps for ingredients lists ===
=== Steps for ingredients lists ===
+
+
Sample product for examples: https://fr.openfoodfacts.org/produit/5000112558265/coca-cola-zero
==== Picture taking ====
==== Picture taking ====
Line 54:
Line 56:
* Taken with mobile app, uploaded to OFF server
* Taken with mobile app, uploaded to OFF server
−
Result:
+
[[File:21.jpg|200px|none|Ingredients photo]]
−
* https://fr.openfoodfacts.org/images/products/500/011/255/8265/21.jpg
−
−
[[File:21.jpg|200px|thumb]]
==== Ingredients list cropping ====
==== Ingredients list cropping ====
Line 65:
Line 64:
* Or done on web site at a later time, possibly by another user
* Or done on web site at a later time, possibly by another user
** Cropping slightly easier than on mobile
** Cropping slightly easier than on mobile
+
+
[[File:Ingredients fr.115.full.jpg|200px|none|Cropped ingredients]]
==== OCR ====
==== OCR ====
−
* Launched after cropping, done by the server which calls Google Cloud Vision
+
* Launched after cropping, done through the server
−
* Cloud Vision returns a JSON object which is stored on the server
+
* Current solution:
+
** Google Cloud Vision
+
** Cloud Vision returns a JSON object which is stored on the server
+
+
Result:
+
* https://static.openfoodfacts.org/images/products/500/011/255/8265/ingredients.22.full.json
+
* "rédients:eaugazeitiee colorant:caramelE15M difiants: acide phosphorique et Citrate de sodium: édulcorants: aspartame etacésulfame-K;extraitsvegétaux Contientunesourcedephénylalanine."
+
* Your mileage will vary a lot
==== Ingredients list cutting ====
==== Ingredients list cutting ====
Line 116:
Line 124:
*** Run spellcheckers on actual ingredients lists from OFF, review corrections
*** Run spellcheckers on actual ingredients lists from OFF, review corrections
+
Desired result:
+
* "Eau gazéifiée ; colorant : E150d ; acidifiants : acide phosphorique, citrate de sodium ; édulcorants : aspartame, acésulfame-K ; arômes naturels (extraits végétaux), dont caféine."
== Ingredients analysis ==
== Ingredients analysis ==
Line 154:
Line 164:
** Perl code and regular expressions + multilingual ingredients taxonomy
** Perl code and regular expressions + multilingual ingredients taxonomy
*** lib/ProductOpener/Ingredients.pm - extract_ingredients_from_text()
*** lib/ProductOpener/Ingredients.pm - extract_ingredients_from_text()
+
+
Result:
+
* Add /api/v0 to get JSON results through API: https://fr.openfoodfacts.org/api/v0/produit/5000112558265/coca-cola-zero
+
* ingredients:
+
+
<pre>
+
ingredients: [
+
{
+
vegetarian: "yes",
+
text: "Eau gazéifiée",
+
id: "en:carbonated-water",
+
rank: 1,
+
vegan: "yes"
+
},
+
{
+
rank: 2,
+
id: "en:colour",
+
text: "colorant"
+
},
+
{
+
vegetarian: "yes",
+
id: "en:e150d",
+
rank: 3,
+
text: "e150d",
+
vegan: "yes"
+
},
+
{
+
text: "acidifiants",
+
rank: 4,
+
id: "en:acid"
+
},
+
{
+
vegan: "yes",
+
vegetarian: "yes",
+
rank: 5,
+
id: "en:e338",
+
text: "acide phosphorique"
+
},
+
{
+
text: "citrate de sodium",
+
rank: 6,
+
id: "en:sodium-citrate"
+
},
+
{
+
id: "en:sweetener",
+
rank: 7,
+
text: "édulcorants"
+
},
+
{
+
vegan: "yes",
+
id: "en:e951",
+
rank: 8,
+
text: "aspartame",
+
vegetarian: "yes"
+
},
+
{
+
vegetarian: "yes",
+
text: "acésulfame-K",
+
id: "en:e950",
+
rank: 9,
+
vegan: "yes"
+
},
+
{
+
vegetarian: "maybe",
+
rank: 10,
+
id: "en:natural-flavouring",
+
text: "arômes naturels",
+
vegan: "maybe"
+
},
+
{
+
id: "en:vegetable-extract",
+
rank: 11,
+
text: "extraits végétaux"
+
},
+
{
+
text: "dont caféine",
+
id: "en:caffeine",
+
rank: 12,
+
vegetarian: "yes",
+
vegan: "yes"
+
}
+
],
+
</pre>
== End to end metrics ==
== End to end metrics ==