Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
10
rozdział1Pakietymyśli(przeglądNLP)
podsumowującewelektronicznychRolodexlubCRM(systemiezarządzaniarelacjami
zklientami),wchodzączinnymiwinterakcjęprzezemailwimieniuswojegoszefa.Firmy
powierzająswojemarkiitwarzesystemomNLP,pozwalającbotom,abyprowadziłykam-
paniemarketingoweiwysyłałykomunikaty.Aniektórzyniedoświadczeniśmiałkowie
piszącypodręcznikiNLPpozwalają,abybotypisałykilkazdańwichksiążce.Więcejna
tentematpiszemydalej.
1.4.Językwidziany„oczyma”komputera
Gdypiszecie„GoodmorningRosa”(„DzieńdobryRóżo”),komputerwidzitylko
„010001110110111101101111…”.Jakmożeciezaprogramowaćchatbota,abyinteligen-
tnieodpowiedziałnatenciągbinarny?Czyzagnieżdżonedrzewowarunków(instrukcji
if…else…)możesprawdzićwszystkietebityidziałaćnanichindywidualnie?Byłoby
toodpowiednikiemnapisaniaspecjalnegorodzajuprogramunazywanegoautomatem
skończonym(finitestatemachine,FSM).Takiautomat,którydziałającwypuszczaciąg
nowychsymboli,jakfunkcja
str.translate
wPythonie,jestnazywanytransduktorem
skończonym(finitestatetransducer,FST).ZapewnezbudowaliściejużFSM,nawetotym
niewiedząc.Czypisaliściekiedyśwyrażeniaregularne?JesttorodzajFSMużywanych
przeznaswkolejnympunkcie,abypokazaćjednozmożliwychpodejśćdoNLP:podej-
ścieopartenawzorcach.
Cobędzie,jeślizdecydujeciesięprzeszukiwaćpamięć(bazędanych)wposzukiwa-
niutakiegosamegociągubitów,znakówlubsłówiwykorzystaćjednązodpowiedzi,
którejinniludzieiautorzyużylidlategozdaniawprzeszłości?Alewyobraźciesobie,że
znajdziesiętamliterówkalubjakaśodmianazdania.Naszbotzaczniewariować.Abity
nieciągłeinieprzebaczająalbopasują,albonie.Niemaoczywistegosposobuna
znalezieniapodobieństwamiędzydwomapotokamibitów,którybierzepoduwagęich
znaczenie.Tebitydla„dobry”będątaksamopodobnejaktedla„zły!”lubdla„okey”.
Zobaczmyjednak,jaktopodejściebędziedziałać,zanimpokażemywamlepszespo-
soby.Zbudujmymałewyrażenieregularnerozpoznającepowitaniajak„Goodmorning
Rosa”iodpowiednionanieodpowiadającenaszpierwszymalutkichatbot!
1.4.1.Językzamków
Odziwoprostyzamekkombinatorycznystanowiprostymechanizmprzetwarzania
języka.Jeśliwięcmaciezacięciedomechaniki,tenpunktbędziepouczający.Alejeśli
niemusiciestosowaćanalogiimechanicznych,abyzrozumiećalgorytmyisposób
działaniawyrażeńregularnych,tomożecietenpunktpominąć.
Poprzeczytaniutegopunktunigdyniepomyślicieozamkucyfrowymdoroweru
wtakisamsposób.Zamekcyfrowyzpewnościąniepotraficzytaćanirozumiećpodręcz-
nikówzamkniętychwszkolnejszafce,alepotrafizrozumiećjęzykzamków.Możezrozu-
mieć,gdy„mówimy”mu„hasło”kombinacjęcyfr.Kombinacjadokłódkitodowolny
ciągsymboli,któryjestzgodnyz„gramatyką”(wzorcem)językazamka.Coważniej-
sze,kłódkamożestwierdzić,czy„zdanie”zamkapasujedoistotnegozdania,którejest
jedynąpoprawną„odpowiedzią”:abyzwolnićblokadętrzymającąwygiętązawleczkę,
abyściemoglidostaćsiędoswojejszafki.