Pytanie Jak używać NLP do analizowania składników receptury?


Muszę przetworzyć składniki receptury na ilość, pomiar, przedmiot i opis, jak to ma zastosowanie do linii, takich jak 1 szklanka mąki, skórka 2 cytryn i 1 filiżanka zapakowanego brązowego cukru itp. Jaki byłby najlepszy sposób na zrobienie tego? Jestem zainteresowany wykorzystaniem Pythona dla projektu, więc zakładam, że używanie nltk jest najlepszym rozwiązaniem, ale jestem otwarty na inne języki.


21
2017-10-15 03:57


pochodzenie


Hej, jeśli nadal interesuje cię parsowanie receptury, mam otwarte źródło moje wdrożenie. Może okaże się to przydatne! - Mike Christensen
Nigdy bym się nie spodziewał, że znajdę tutaj to pytanie i ktoś, kto odpowie na to pytanie z gotowym rozwiązaniem! - Andrey Chaschev


Odpowiedzi:


W rzeczywistości robię to dla mojej witryny, która jest teraz częścią projekt open source dla innych do wykorzystania.

Napisałem post na blogu na temat moich technik, baw się dobrze!

http://blog.kitchenpc.com/2011/07/06/chef-watson/


21
2017-08-12 01:43





Wydaje mi się, że jest to kilka lat, ale myślałem o zrobieniu czegoś podobnego samemu i natknąłem się na to, więc pomyślałem, że mogę go zabić, na wypadek, gdyby było użyteczne dla kogokolwiek innego w

Nawet jeśli powiesz, że chcesz przetestować darmowy test, większość receptur ma dość standardowy format dla listy receptur: każdy składnik znajduje się w oddzielnej linii, a dokładna struktura zdania rzadko jest tak ważna. Zasięg słownika jest również stosunkowo niewielki.

Jednym ze sposobów może być sprawdzenie każdej linii pod kątem słów, które mogą być rzeczownikami i słowami / symbolami wyrażającymi ilości. Myślę, że WordNet może pomóc w sprawdzeniu, czy słowo może być rzeczownikiem, czy nie, ale nie użyłem go wcześniej. Ewentualnie możesz użyć http://en.wikibooks.org/wiki/Cookbook:Ingredients jako lista słów, choć znowu, nie wiedziałbym dokładnie, jak jest wszechstronny.

Druga część to rozpoznawanie ilości. Są one dostępne w kilku różnych formach, ale na tyle mało, że prawdopodobnie można utworzyć listę słów kluczowych. W szczególności upewnij się, że masz dobre raporty o błędach. Jeśli program nie może w pełni przeanalizować wiersza, poproś go, aby poinformował cię o tym, czym jest ta linia, a także o tym, co ma / nie rozpoznał, aby odpowiednio dostosować listy słów kluczowych.

Aaanyway, nie gwarantuję, że coś z tego będzie działać (i prawie pewne, że nie jest w 100% wiarygodne), ale w ten sposób zacznę podejść do problemu


4
2018-03-03 15:15





To jest niekompletna odpowiedź, ale patrzysz na spisanie parsera dowolnego tekstu, który jak wiesz, jest nietrywialny :)

Niektóre sposoby na oszukiwanie, wykorzystujące wiedzę charakterystyczną dla gotowania:

  1. Twórz listy słów dla "przymiotników" i "czasowników" i filtruj je
    1. jednostki miary tworzą zamknięty zbiór, używając słów i skrótów, takich jak {L., c, puchar, t, kreska}
    2. instrukcje - pokroić, pokroić w kostkę, gotować, obierać. Rzeczy, które nadejdą później, z pewnością będą składnikami
  2. Pamiętaj, że najczęściej szukasz rzeczowników i możesz wziąć listę nie oznaczonych etykietami (na przykład z WordNet) i filtrować przeciwko nim.

Jeśli jesteś bardziej ambitny, możesz zajrzeć do NLTK Book w rozdziale o parserach.

Powodzenia! To brzmi jak najbardziej wykonalny projekt!


3
2017-10-20 14:40





Czy możesz dokładniej określić swoje dane wejściowe? Jeśli masz takie dane wejściowe:

1 cup flour
2 lemon peels
1 cup packed brown sugar

Nie będzie to zbyt trudne do przeanalizowania bez użycia NLP.


0
2017-10-15 08:22



Istnieje kilka przykładów powyżej, w szczególności skórka z 2 cytryn. Będzie to darmowy tekst maszynowy, więc może to być wszystko, co jest ważną kwotą i przedmiotem. - Greg
jeśli naprawdę chcesz być w stanie obsłużyć "coś", to potrzebujesz człowieka do wykonania analizy lub jest to problem na poziomie sztucznej inteligencji. Taka jest natura bestii, jeśli chodzi o parsowanie tekstu. Wykonaj założenia dla zwykłych przypadków i zakładaj, że przypadki brzegowe się nie powiodą. - Gregg Lind