Slovní vektory

Building Chatbots in Python

Alan Nichol

Co-founder and CTO, Rasa

Strojové učení

  • Programy, které se zlepšují s přibývajícími daty
  • Rozpoznávání záměru uživatelské zprávy
Building Chatbots in Python

Vektorová reprezentace

"can you help me please?"

Jednotky Příklady Vektory
znaky "c", "a", "n",... v_c, v_a, v_n, ...
slova "can", "you", ... v_{can}, v_{you}, ...
věty "can you help..." v_{can you help ...}
Building Chatbots in Python

Slovní vektory

Kontext Kandidáti
let's meet at the ___ tomorrow office, gym, park, beach, party
I love going to the ___ to play with the dogs beach, park
  • Slovní vektory reprezentují význam slov
  • Slova ve stejném kontextu mají podobné vektory
Building Chatbots in Python

Slovní vektory jsou výpočetně náročné

  • Trénování slovních vektorů vyžaduje velké množství dat
  • Kvalitní slovní vektory jsou veřejně dostupné
  • Algoritmus GloVe
    • Příbuzný algoritmu word2vec
  • spaCy
Building Chatbots in Python
import spacy

nlp = spacy.load('en')
nlp.vocab.vectors_length
300
doc = nlp('hello can you help me?')

for token in doc: print("{} : {}".format(token, token.vector[:3]))
hello : [ 0.25233001  0.10176    -0.67484999]
can : [-0.23857     0.35457    -0.30219001]
you : [-0.11076     0.30785999 -0.51980001]
help : [-0.29370001  0.32253    -0.44779   ]
me : [-0.15396     0.31894001 -0.54887998]
? : [-0.086864    0.19160999  0.10915   ]
Building Chatbots in Python

Podobnost

  • Záleží na směru vektorů
  • „Vzdálenost" mezi slovy = úhel mezi vektory
  • Kosinová podobnost
    • 1: Vektory míří stejným směrem
    • 0: Jsou kolmé
    • -1: Míří opačnými směry
Building Chatbots in Python

.similarity()

  • „can" a „cat" jsou pravopisně podobné, ale mají nízkou podobnost
  • „cat" a „dog" mají naopak vysokou podobnost
import spacy
nlp = spacy.load('en')

doc = nlp("cat")
doc.similarity(nlp("can"))
0.30165292161215396
doc.similarity(nlp("dog"))
0.80168555173294953
Building Chatbots in Python

Pojďme si procvičit!

Building Chatbots in Python

Preparing Video For Download...