1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Building Chatbots in Python

Connected

Cvičení

Základní negace

Uživatelé ti velmi často řeknou, co nechtějí — a to je důležité pochopit! Negace je obecně v NLP složitý problém. Tady si ukážeme velmi jednoduchý přístup, který funguje v mnoha případech.

K dispozici máš seznam testů tests. Prozkoumej ho v Shellu — každý test je n-tice obsahující:

  • Řetězec se zprávou, která obsahuje entity.
  • Slovník, kde jsou entity klíče a hodnota je boolean říkající, zda jsou negovány.

Tvým úkolem je definovat funkci negated_ents(), která ve zprávě hledá negované entity.

Pokyny

100 XP
  • Pomocí list comprehension zkontroluj, jestli se ve zprávě vyskytují slova "south" nebo "north", a extrahuj tyto entity.
  • Rozděl větu na části, které končí každou entitou. Postupuj takto:
    • Pomocí metody .index() na phrase najdi počáteční index každé entity e a přičti k němu délku entity, čímž získáš index jejího konce.
    • Začínaje hodnotou start=0 vytvárej řezy řetězce od start do end pro každé end v ends. Každý řez přidej do seznamu chunks. Nezapomeň při každé iteraci aktualizovat počáteční pozici.
  • Pro každou entitu: pokud se v daném řezu vyskytuje "not" nebo "n't", považuj tuto entitu za negovanou.