Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Językwidziany„oczyma”komputera
19
Abatand
arat
Tokenizator
Rzadkie
A
bat
Rosa
WektorBoW
and
a
Any
Good
Stop
any
A
any
a
WektorBoW
Good
[3,1,4,8,9,0,..,]
Bat
bat
bat
Cat
Okazujesię,żemaszynymogąwten
sposóbdośćdobrzeobsłużyćwektor
BoWizebraćwiększośćzawartychtam
informacjinawetzumiarkowaniedłu-
gichdokumentów.Każdydokument
poposortowaniuizliczeniusegmen-
tówmożebyćprzedstawionyjakowek-
tor,ciągliczbcałkowitychdlakażdego
słowalubsegmentuwdokumencie.
Surowyprzykładmożeciezobaczyć
narysunku1.2,apotemwrozdziale2
pokażemywięcejużytecznychstruktur
danychdlawektorówBoW.
Tonaszpierwszymodelprzestrzeni
wektorowejjęzyka.Tepojemnikiiliczby
wnichzawartereprezentowanedla
każdegosłowajakodługiewektory
zawierającewielezerikilkajedyneklub
dwójekrozrzuconychtam,gdziewystą-
piłosłowodlategopojemnika.Zbiór
różnychsposobów,naktóremogą
zostaćpołączonesłowa,abystworzyć
tewektory,nosinazwęprzestrzeniwekto-
rowej.Związkimiędzywektoramiwtej
przestrzenitym,coskładasięnanasz
model,któryjestpróbąprzewidywa-
niakombinacjitychsłówwystępujących
wkolekcjiróżnychciągówsłów(zazwy-
czajzdańlubdokumentów).WPytho-
Rysunek1.2.Miejscesortowaniatokenów
niemożemyprzedstawiaćterzadkie
(wwiększościpuste)wektory(listyliczb)
jakosłowniki.CounterwPythonietospecjalnyrodzajsłownika,którywkładaobiekty
(wtymłańcuchy)dopojemnikówizliczajedokładnietak,jakchcemy:
>>>fromcollectionsimportCounter
>>>Counter("GutenMorgenRosa".split())
Counter({'Guten':1,'Rosa':1,'morgen':1})
>>>Counter("Goodmorning,Rosa!".split())
Counter({'Good':1,'Rosa!':1,'morning,':1})
Możeciezapewnewyobrazićsobiesposobyczyszczeniatychsłów.Robimytownastęp-
nymrozdziale.Alemożecieteżpomyślećsobie,żeterzadkie,wielowymiarowewektory
(wielepojemników,pojednymnakażdemożliwesłowo)niezbytużytecznewprze-
twarzaniujęzyka.Alewystarczającodobredlaniektórychnarzędzipowodujących
zmianęwcałychbranżach,jakfiltryspamu,któreomawiamywrozdziale3.