-
Notifications
You must be signed in to change notification settings - Fork 8
Home
Project pages: https://horizoncrafts.github.io/dw-cracow-project/
Jak wyciągać składniki z kuchennych przepisów i je agregować? Jak z listy posiłków zrobić liste zakupów?
"Wyciąganie" składników i ich ilości z przepisów w języku angielskim:
-
New York Time miał małe podejście: Extracting Structured Data From Recipes Using Conditional Random Fields
-
Czytałem o startupie: Grouping products and naming groups
As far as I am aware there is not really much written about this kind of work. The main advice I can give you is to look at as many recipes as possible to get an idea for what you will encounter, and cut corners wherever possible -- it's a big job to do it perfectly, and you can get very far by using simple methods.
-
Problem wydaje się dosyć popularny, rozwiązania mniej ;-)
- Przepisy: jadlonomia.com, kuchnialidla.pl, kwestiasmaku.com
- Produkty: frisco.pl (dump udostępniany przez firmę)
- Custom entity extraction: liczby, jednostki, produkty i reszta w jakiś sposób muszą być wyciągnięte.
- Entity linking: Skąd wiemy, że "pomidory" i "dojrzałe pomidory" są o tym samym produkcie? Albo jak łączymy składnik z encją produktu? W jaki sposób odróżniamy, ze pomidory i puszka pomidorów odnoszą się do różnych produktów?
-
Niejednoznaczność:
- Jedna linijka może zawierać kilka składników: "4 szklanki mąki pszennej, tradycyjnej lub orkiszowej", "4 łyżki masła (ja użyłam roślinnej margaryny dobrej jakości)"
- Synonimy: kumin -> kmin rzymski
- Brak produktu w bazie produktów: 6 młodych, umytych gałązek sosny
- Kilka produktów pasujących do jednego składnika: "1 puszka pomidorów" to "Pomidory całe w puszce", "Pomidory krojone w puszce".
- Czasem partial match też może być dobry: dla "1/2 łyżeczki ekstraktu waniliowego" idealne dopasowanie to "https://www.frisco.pl/pid,43169/n,nielsen-massey-ekstrakt-waniliowy-madagascar-bourbon/stn,product", ale są też tańsze alternatywy: "https://www.frisco.pl/pid,89505/n,delecta-aromat-do-ciast-waniliowy/stn,product"
-
Ewaluacja:
- Ocena rozwiązań wymaga dużo pracy z ręcznym anotowaniem korpusów
-
Język polski
- Niektóre elementy NLP wymagają dobrego wsparcie do shallow parsing, np. CRF wymaga POS tagging, a nie znalazłem dobrych darmowych narzędzi w Pythonie, które to robią.
- Scrapery i parsery do przepisów i produktów.
- Stemmer do języka polskiego w Pythonie.
- Ewaluacja Ingredient-Product Matching w opaciu o TF/IDF
Po pobierznym zbadaniu tematu...
- Brak łatwodostępnych i czytelnych danych o pośle:
- Profil Analityczny - na co głosował, na co nie
- Profil Syntetyczny - z którą stroną sceny sympatyzuje; w jakie tematy się angażuje (ekonomia, społeczne, ekologia, itp)
Z tego, co na szybko zbadałem, temat był atakowany ostatnio w 2015 roku. W sumie, trzeba by sprawdzić czy inicjatorzy poprzednich przedsięwzięć nie mieli od tamtego czasu wypadków, lub nie siedzą w więzieniach za podatki itp... ;)
Inicjalne i potem regularne pobranie (scrape) danych ze stron sejmu np: https://www.sejm.gov.pl/Sejm8.nsf/agent.xsp?symbol=posglos&NrKadencji=8
Dane mogą być odkładane na git do csv, lub bazy danych, może BQ?
Extra: wystawić te dane przez API.
- Przede wszystkim, możliwość zobaczenia detalicznej informacji o głosowaniach posłów. W jakich tematach się udziela, itp. Wizualizacje.
- zmierzona przynależność posłów do ugrupowania
- ocena poglądów posła, np na podstawie tego kiedy głosował przeciwnie do swojego ugrupowania, lub dziwnie zniknął (oddał głos w poprzedzającym i następnym głosowaniu, ale w problematycznej sprawie nie) itp
- Wykrywanie tematów "trudnych", czyli kiedy posłowie nagle zniknęli na chwilę, lub wstrzymali się.
- NLP: klasyfikacja tematów głosowania. Prawo-lewo, konserwatywne-liberalne; ekonomia-ekologia-społeczne-systemowe-zdrowie-edukacja etc.
- którzy posłowie prawdopodobnie opuszczą szeregi swojej partii?
- do której partii dołączą?
- jak będą głosować - robimy to dla zabawy/nauki - porażka mile widziana (mam na myśli nasz projekt, przecież nie to co się dzieje w Parlamencie...)
http://smarterpoland.pl/index.php/2015/09/jak-oni-glosowali-mini-data-hackaton-26-09-2015/
trochę kodu, ale w R:
https://github.com/mi2-warsaw/sejmRP/tree/master/sejmRP
Analizy, wizualizacje:
https://marcinciura.wordpress.com/2015/07/01/the-vector-space-of-the-polish-parliament-in-pictures/
https://biokompost.wordpress.com/2011/10/01/statystyczna-mapa-sejmu/
Dyskusja o API (-7 lat):