Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Językwidziany„oczyma”komputera
11
Językzamka(wyrażeniaregularne)jestszczególnieprosty.Aleniejestnatyle
prosty,abyśmyniemogliużyćgowchatbocie.Możemygoużyć,abyrozpoznać
kluczowąfrazęlubpolecenieumożliwieniawykonaniaokreślonegodziałanialub
zachowania.
Naprzykładchcielibyśmy,abynaszchatbotrozpoznawałpozdrowieniajak„Hello
Rosa”iodpowiednionaniereagował.Tenrodzajjęzyka,jakjęzykzamków,jestjęzy-
kiemformalnym,gdyżmaścisłeregułydotyczącesposobu,wjakiakceptowalnezdanie
musizostaćzłożoneizinterpretowane.Jeślikiedykolwiekpisaliścierównaniematema-
tycznelubzakodowaliściewyrażeniewjęzykuprogramowania,pisaliściezdaniewsfor-
malizowanymjęzyku.
Językisformalizowanesąpodzbioremjęzykównaturalnych.Wielezdańwjęzyku
naturalnymmożnadopasowaćlubwygenerowaćzapomocąformalnejgrama-
tykijęzyka,takiejjakwyrażeniaregularne.Dlategozboczyliśmydomechanicznego,
„przekręcanego”12językazamków.
1.4.2.Wyrażeniaregularne
Wyrażeniaregularnetospecjalnyrodzaj(klasa)formalnejgramatykijęzykaokreślanej
jakogramatykaregularna.Gramatykiregularnesąprzewidywalne,możnaudowodnić
ichzachowanie,alesąnatyleelastyczne,żemogązasilićnajbardziejwyrafinowanesil-
nikidialogoweichatbotyznajdującesięnarynku.AlexaAmazonaiNowGoogle’asą
przedewszystkimopartenawzorcach,któreopierająsięnagramatykachregularnych.
Głębokie,złożoneregułygramatykiregularnejmożnaczęstowyrazićzapomocąjed-
negowierszakoduokreślanegojakowyrażenieregularne.Istniejąskutecznesche-
matychatbotówwPythonie,jakWill,któreopierająsięwyłącznienategorodzaju
językuwceluwytworzeniaużytecznegoiciekawegozachowania.EchoAmazona,Home
Google’aipodobnidonichzłożeniiużyteczniasystenciużywajątegorodzajujęzyka
dozakodowaniazasadwiększościichinterakcjizużytkownikiem.
UWAGAWyrażeniaregularnezaimplementowanewaplikacjachPythona
iPOSIX-a(Uniksa),jakgrep,niesąprawdziwymigramatykamiregularnymi.Mają
funkcjejęzykailogiki,jakpodglądwprzódiwstecz,któreumożliwiająwykonanie
skokówirekurencji,któreniesądozwolonewgramatyceregularnej.Wwyniku
tegowyrażeniaregularneniemająudowodnionegostopu.Mogączasami„paść”
lubdziałaćwnieskończoność13.
Byćmożemówiciesobie:„Słyszeliśmyowyrażeniaregularnych.Korzystamyzgrep.Ale
todotyczytylkowyszukiwania!”.Imacierację.Wyrażeniaregularne,którepotrafiązna-
leźćdopasowaniewobrębietekstu,sąteżświetneprzyprowadzeniudialogów.Niektóre
chatboty,jakWill,używająpolecenia„search”doznajdowaniawzdaniuużytkownika
12JednazsześciuzasadpsychologiiCialdiniegozawartychwjegoznanejksiążceInfluence(http://
changingminds.org/techniques/general/cialdini/click-whirr.htm).
13Giełdaprzestaładziałaćna30minut20lipca2016r.,gdy„padł”regex(http://stackstatus.net/
post/147710624694/outage-postmortem-july-20-2016).