Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Potokjęzykanaturalnegochatbota
>>>s="""Findtextbookswithtitlescontaining'NLP',
...
or'natural'and'language',or
...
'computational'and'linguistics'."""
>>>len(set(s.split()))
12
>>>importnumpyasnp
>>>np.arange(1,12+1).prod()#factorial(12)=arange(1,13).prod()
479001600
23
Liczbapermutacjigwałtowniewzrosłazwartości
factorial(3)==6
wnaszymprostym
pozdrowieniudo
factorial(12)==479001600
wnaszymdłuższymzdaniu!Jestjasne,
żelogikawynikającazkolejnościsłówjestważnadlakażdejmaszyny,którachciałaby
poprawnieodpowiedzieć.Mimożepopularnepozdrowienianiezwykleprzekręcane
przyprzetwarzaniuzapomocąwektoraBoW,bardziejskomplikowanezdaniamogą
utracićwiększośćswegoznaczenia,gdyzostanąwrzuconedo„worka”.WektorBoW
niejestnajlepszymsposobem,abyrozpocząćprzetwarzaniezapytaniawbaziedanych,
jakzapytaniejęzykanaturalnegowpowyższymprzykładzie.
Niezależnieodtego,czyzdaniejestnapisanewformalnymjęzykuprogramowania
jakSQL,czywnieformalnymjęzykunaturalnymjakangielski,kolejnośćsłówigrama-
tykaważne,gdyzdaniemaprzekazywaćlogicznezwiązkimiędzyrzeczami.Dlatego
językikomputerowepolegająnarygorystycznejanaliziegramatykiiskładni.Naszczęś-
cieostatniepostępywanalizatorachdrzewskładniowychjęzykanaturalnegoumożliwiły
wyodrębnianiesyntaktycznychilogicznychzwiązkówjęzykanaturalnegozniezwykłą
dokładnością(przekraczającą90%)
18
.Wkolejnychrozdziałachpokazujemy,jakkorzy-
staćzpakietówSyntaxNet(ParseyMcParseface)iSpaCydoidentyfikacjitychzwiązków.
PodobniejakwprzykładziezpozdrowieniemzBenchleyPark,jeślinawetlogiczna
interpretacjazdanianieopierasięnakolejnościsłów,czasamizwrócenieuwagina
kolejnośćsłówmożedaćsubtelnewskazówkiznaczeniowe,któremogąułatwićgłębsze
odpowiedzi.Tegłębszewarstwyprzetwarzaniajęzykanaturalnegoomawianewkolej-
nympunkcie.Awrozdziale2pokażemysztuczkęzwłączeniemniektórychinforma-
cjiprzekazanychprzezkolejnośćsłówwnasząreprezentacjęwektorasłów.Opiszemy
też,jakulepszyćsurowytokenizatorużytywpoprzednichprzykładach
(str.split())
,
abydodokładniejumieszczaćsłowawpojemnikach,wbardziejodpowiednichprze-
gródkachwwektorzesłów,abyłańcuchyjak„good”i„Good”byłyprzypisanedotego
samegopojemnika,aoddzielnepojemnikibyłyprzypisanetokenomjak„rosa”,„Rosa”,
alenie„Rosa!”.
1.7.Potokjęzykanaturalnegochatbota
PotokNLPwymagany,abyzbudowaćagentadialogowego,czylichatbota,jestpodobny
dopotokupotrzebnegodozbudowaniasystemuodpowiadającegonapytania,opisa-
negowksiążceTamingtext(Ingersol,MortoniFarris,2013)
19
.Jednakniektórealgo-
18PorównaniedokładnościanalizyskładniowejSpaCy(93%),SyntaxNet(94%),Stanford’sCoreNLP
(90%)iinnychjestdostępnenawitryniehttps://spacy.io/docs/api/.
19G.S.Ingersoll,T.S.MortoniA.L.Farris(2013),Tamingtext(https://www.manning.com/books/
taming-text).