(Был мәҡәләлә беҙ Arc телен һынап ҡарау өсөн төҙөгән спамдан һаҡланған веб-почта программаһында ҡулланылған спам-фильтрлау алымдары тасуирлана. Яҡшыртылған алгоритм «Яҡшыраҡ Байес фильтрлауы» (Better Bayesian Filtering) мәҡәләһендә бәйән ителә.)
Минең уйымса, спамды туҡтатыу мөмкин, һәм бының юлы — йөкмәткегә нигеҙләнгән фильтрҙар. Спам ебәреүселәрҙең иң көсһөҙ ере — уларҙың белдереүе үҙе. Һеҙ ҡуйған башҡа теләһә ниндәй кәртәне улар урап үтә ала. Һәр хәлдә, ошоғаса шулай булды. Ләкин улар, нисек кенә булмаһын, үҙ хәбәрен еткерергә тейеш. Әгәр беҙ уларҙың хәбәрҙәрен таный торған программа тәьминәте яҙа алһаҡ, быны урап үтеүҙең бер ниндәй ҙә юлы ҡалмаясаҡ.
_ _ _
Алыусы өсөн спам бик еңел таныла. Әгәр һеҙ хаттарығыҙҙы уҡып, спамды сүпкә ташлап тороу өсөн берәй кешене яллаһағыҙ, был уның өсөн бер ниндәй ҙә ауырлыҡ тыуҙырмаҫ ине. Был процесты яһалма интеллект кимәленә еткермәйенсә автоматлаштырыу өсөн беҙгә күпме эшләргә кәрәк?
Минеңсә, беҙ был мәсьәләне ярайһы уҡ ябай алгоритмдар менән хәл итә аласаҡбыҙ. Ысынында иһә, айырым һүҙҙәрҙең спам булыу ихтималлығының Байес комбинацияһынан башҡа бер нәмә лә ҡулланмайынса, бөгөнгө спамды ҡәнәғәтләнерлек кимәлдә фильтрлап булыуын асыҡланым. Саҡ ҡына көйләнгән (түбәндә тасуирланғанса) Байес фильтрын ҡулланып, беҙ хәҙер 1000 спамдан 5-тән кәмерәген генә үткәреп ебәрәбеҙ, ә ялған ыңғай һөҙөмтәләр (яңылыш спам тип табыу) — 0.
Статистик алым — ғәҙәттә кешеләр спам-фильтр яҙғанда иң тәүҙә ҡулланып ҡараған ысул түгел. Хакерҙарҙың күпселегенең тәүге инстинкты — спамдың айырым үҙенсәлектәрен таныусы программа яҙырға тырышыу. Һеҙ спамдарға ҡарайһығыҙ ҙа: «Был кешеләрҙең "Dear Friend" тип башланған йәки бөтә хәрефтәре лә ҙур булып, һигеҙ өндәү билдәһе менән бөткән тема яҙылған хаттар ебәрергә нисек ояты етә икән? Мин бындай сүп-сарҙы бер юл код менән фильтрлай алам», — тип уйлайһығыҙ.
Һәм һеҙ шулай эшләйһегеҙ ҙә, башта был ысул ярҙам итә. Бер нисә ябай ҡағиҙә килгән спамдың ҙур ғына өлөшөн ҡырҡып ташлай. Тик «click» һүҙен генә эҙләү ҙә минең спам корпусындағы хаттарҙың 79.7%-ын тота, өҫтәүенә ялған ыңғай һөҙөмтәләр ни бары 1.2% тәшкил итә.
Статистик алымды һынап ҡарағанға тиклем мин спамдың айырым билдәләрен эҙләй торған программа тәьминәте яҙыуға яҡынса алты ай ваҡытымды сарыф иттем. Һөҙөмтәлә спамдың шул һуңғы бер нисә процентын таныу бик ауырлашыуын һәм фильтрҙарҙы ҡатыраҡ иткән һайын, ялған ыңғай һөҙөмтәләр күберәк килеп сығыуын күрҙем.
Ялған ыңғай һөҙөмтәләр — ул яңылыш спам тип билдәләнгән ғәйепһеҙ хаттар. Ҡулланыусыларҙың күбеһе өсөн кәрәкле хатты юғалтыу спам алыуға ҡарағанда бер тәртипкә насарыраҡ, шуға күрә ялған ыңғай һөҙөмтәләр биргән фильтр — пациент өсөн үлем хәүефе булған һытҡы дарыуы кеүек.
Ҡулланыусы ни ҡәҙәр күберәк спам алһа, спам папкаһында ятҡан берәй ғәйепһеҙ хатты күрмәй ҡалыу ихтималлығы шул ҡәҙәр ҙурыраҡ була. Һәм ни тиклем сәйер булмаһын, спам-фильтрҙарығыҙ яҡшыраҡ эшләгән һайын, ялған ыңғай һөҙөмтәләр тағы ла хәүефлерәк була бара, сөнки фильтрҙар ысынлап та яҡшы эшләгәндә, ҡулланыусылар улар тотҡан барлыҡ нәмәгә лә иғтибар итмәй башлаясаҡ.
Ни өсөн статистик алымды оҙаҡ ваҡыт һынап ҡарамай йөрөгәнемде үҙем дә белмәйем. Минеңсә, бының сәбәбе — спам билдәләрен үҙем табырға тырышыуға әүәҫләнеп китеүемдә ине, мин спам ебәреүселәр менән ниндәйҙер ярыш уйнағандай булдым. (Хакер булмағандар быны һирәк аңлай, ләкин хакерҙарҙың күбеһе бик ярышыусан.) Статистик анализды һынап ҡарағас, уның минән күпкә аҡыллыраҡ булыуын шунда уҡ аңланым. Ул, әлбиттә, «virtumundo» һәм «teens» кеүек һүҙҙәрҙең спамдың яҡшы күрһәткесе булыуын асыҡланы. Ләкин ул шулай уҡ «per», «FL» һәм «ff0000» кеүек элементтарҙың да спамдың яҡшы күрһәткестәре булыуын фашланы. Ысынында иһә, «ff0000» (асыҡ ҡыҙыл төҫ өсөн html коды) теләһә ниндәй порнографик һүҙ кеүек үк яҡшы спам күрһәткесе булып сыҡты.
_ _ _
Бына мин статистик фильтрлауҙы нисек башҡарыуымдың ҡыҫҡаса схемаһы. Мин спамдан һәм спам булмаған хаттарҙан торған ике корпус менән башлайым. Әлеге ваҡытта уларҙың һәр береһендә яҡынса 4000-әр хат бар. Мин һәр корпустағы һәр хаттың барлыҡ тексын, шул иҫәптән башлыҡтарын (headers) һәм эстәге html менән javascript-ты сканерлайым. Хәҙерге ваҡытта хәреф-һан билдәләрен, дефистарҙы, апострофтарҙы һәм доллар билдәләрен токендарҙың өлөшө тип һанайым, ә ҡалған бөтә нәмәне — токен айырыусы (разделитель) тип ҡарайым. (Был урында камиллаштырыу мөмкинлеге барҙыр, моғайын.) Бөтөнләй һандарҙан торған токендарҙы иғтибарға алмайым, шулай уҡ html аңлатмаларын (комментарийҙарын) да иҫәпкә алмайым, хатта уларҙы токен айырыусы тип тә ҡарамайым.
Мин һәр токендың (әлегә ҙур-бәләкәй хәрефтәрҙе айырмайынса) һәр корпуста нисә тапҡыр осрауын һанайым. Был этапта мин һәр корпус өсөн берәү булған ике ҙур хэш-таблица аламын; улар токендарҙы осрашыу һанына бәйләй.
Артабан мин өсөнсө хэш-таблица төҙөйөм, был юлы һәр токенды уны үҙ эсенә алған хаттың спам булыу ихтималлығына бәйләйем; уны ошолай иҫәпләйем [1]: (let ((g (* 2 (or (gethash word good) 0))) (b (or (gethash word bad) 0))) (unless (< (+ g b) 5) (max .01 (min .99 (float (/ (min 1 (/ b nbad)) (+ (min 1 (/ g ngood)) (min 1 (/ b nbad))))))))) бында word — ихтималлығын иҫәпләгән токен, good һәм bad — беренсе аҙымда төҙөгән хэш-таблицаларым, ә ngood менән nbad — ярашлы рәүештә спам булмаған һәм спам хаттарҙың һаны.
Бер нисә мөһим деталде күрһәтеү өсөн мин быны код рәүешендә аңлаттым. Мин ялған ыңғай һөҙөмтәләрҙән ҡасыу өсөн ихтималлыҡтарҙы саҡ ҡына ҡаймыҡтырырға (тайпылдырырға) теләйем, һәм һынау-хаталар аша быны эшләүҙең яҡшы юлын таптым — good таблицаһындағы бөтә һандарҙы икеләтә арттырырға. Был ябай, таҙа хаттарҙа һирәк-һаяҡ осрай торған һүҙҙәр менән уларҙа бер ҡасан да осрамаған тиерлек һүҙҙәрҙе айырырға ярҙам итә. Мин дөйөм алғанда биштән артыҡ тапҡыр осраған һүҙҙәрҙе генә ҡарайым (ысынында, икеләтә арттырыу сәбәпле, спам булмаған хаттарҙа өс тапҡыр осрау ҙа етә). Артабан бер корпуста осрап, икенсеһендә осрамаған һүҙҙәргә ниндәй ихтималлыҡ бирергә тигән һорау тыуа. Тағы ла һынау-хаталар юлы менән мин .01 һәм .99 һандарын һайланым. Был урында аныҡлау мөмкинлеге барҙыр, ләкин корпус үҫкән һайын бындай көйләү барыбер үҙенән-үҙе барасаҡ.
Айырыуса иғтибарлылар шуны күрер: осрашыуҙарҙы һанау өсөн мин һәр корпусты бер бөтөн оҙон текст ағымы тип ҡараһам да, спам ихтималлығын иҫәпләгәндә бүлеүсе итеп уларҙың дөйөм оҙонлоғон түгел, ә һәр береһендәге хаттар һанын ҡулланам. Был ялған ыңғай һөҙөмтәләрҙән һаҡланыу өсөн тағы бер еңелсә тайпылыш өҫтәй.
Яңы хат килгәс, ул токендарға бүлеп сығыла, һәм иң ҡыҙыҡлы ун биш токен (бында ҡыҙыҡһыныу кимәле уларҙың спам ихтималлығы нейтраль .5 дәүмәленән күпмегә алыҫ булыуы менән үлсәнә) хаттың спам булыу ихтималлығын иҫәпләү өсөн ҡулланыла. Әгәр probs ошо ун биш айырым ихтималлыҡтың исемлеге булһа, һеҙ берләштерелгән ихтималлыҡты ошолай иҫәпләйһегеҙ: (let ((prod (apply #'* probs))) (/ prod (+ prod (apply #'* (mapcar #'(lambda (x) (- 1 x)) probs))))) Ғәмәлдә тыуа торған бер һорау: бығаса бер ҡасан да күрмәгән, йәғни һүҙ ихтималлыҡтарының хэш-таблицаһында булмаған һүҙгә ниндәй ихтималлыҡ бирергә? Мин, тағы ла һынау һәм хаталар юлы менән, бының өсөн яҡшы күрһәткес булып .4 тора икәнен таптым. Әгәр һүҙҙе бығаса бер ҡасан да күрмәгән булһағыҙ, ул, моғайын, шаҡтай ғәйепһеҙҙер; спам һүҙҙәре иһә үтә таныш булырға тартыла.
Был алгоритмдың ғәмәлдәге хаттарға ҡулланылыу миҫалдары аҙаҡта ҡушымтала килтерелә.
Әгәр юғарылағы алгоритм хатҡа спам булыу ихтималлығын .9-ҙан юғары бирһә, мин уны спам тип иҫәпләйем. Ләкин ғәмәлдә был сикте ҡайҙа ҡуйыуым артыҡ мөһим булмаҫ ине, сөнки урта тирәлә ҡала торған ихтималлыҡтар бик аҙ.
_ _ _
Статистик алымдың бер ҙур өҫтөнлөгө — һеҙгә шул тиклем күп спам уҡырға кәрәкмәй. Һуңғы алты ай эсендә мин һүҙҙең тура мәғәнәһендә меңдәрсә спам уҡып сыҡтым, һәм был ысынлап та кешене рухи яҡтан баҫа. Норберт Винер әйткәнсә, әгәр ҡолдар менән ярышһаң, үҙең дә ҡолға әйләнәһең; спам ебәреүселәр менән ярышыуҙа ла шуға оҡшаш кәмһетеүле бер нәмә бар. Спамдың айырым үҙенсәлектәрен таныр өсөн һеҙгә спамсының уй-фекеренә инергә тура килә, ә мин, дөрөҫөн әйткәндә, уларҙың баш эсендә мөмкин тиклем аҙыраҡ ваҡыт үткәрергә теләр инем.
Ләкин Байес алымының төп өҫтөнлөгө, әлбиттә, нимәне үлсәүегеҙҙе теүәл белеүегеҙҙә. SpamAssassin кеүек билдәләрҙе таныусы фильтрҙар хатҡа спам «балын» бирә. Байес алымы иһә реаль ихтималлыҡты билдәләй. «Балл» менән бәйле проблема шул — уның нимә аңлатҡанын бер кем дә белмәй. Ҡулланыусы белмәй, ә унан да яманырағы — фильтрҙы эшләүсе үҙе лә белмәй. Үҙ эсенә «sex» һүҙен алған хат нисә балл алырға тейеш? Ихтималлыҡ та, әлбиттә, яңылыш булырға мөмкин, ләкин уның нимә аңлатҡанында йәки уны иҫәпләү өсөн дәлилдәрҙе нисек берләштерергә кәрәклегендә бер ниндәй ҙә аңлайышһыҙлыҡ юҡ. Минең корпусҡа нигеҙләнгәндә, «sex» һүҙе хаттың спам булыуына .97 ихтималлыҡ бирә, ә «sexy» — .99 ихтималлыҡ күрһәтә. Һәм шулай уҡ бер мәғәнәле булған Байес ҡағиҙәһе буйынса, ике һүҙҙе лә үҙ эсенә алған хат, башҡа дәлилдәр булмағанда (был икеле), 99.97% осраҡта спам буласаҡ.
Ихтималлыҡтарҙы үлсәгәнлектән, Байес алымы хаттағы бөтә дәлилдәрҙе лә — яҡшыһын да, яманын да иҫәпкә ала. Спамда сағыштырмаса һирәк осрай торған һүҙҙәр («though», «tonight» йәки «apparently» кеүек) ихтималлыҡты төшөрөүгә, «unsubscribe» һәм «opt-in» кеүек насар һүҙҙәрҙең уны күтәреүгә индергән өлөшө кеүек үк ҙур өлөш индерә. Шуға күрә ябай, таҙа хатҡа осраҡлы рәүештә «sex» һүҙе инеп китһә лә, ул спам тип тамғаланмаясаҡ.
Иң яҡшы вариантта, әлбиттә, ихтималлыҡтар һәр ҡулланыусы өсөн айырым иҫәпләнергә тейеш. Мин «Lisp» һүҙе булған бик күп хаттар алам, һәм (хәҙергәсә) был һүҙ булған бер спам да алғаным юҡ. Шуға күрә бындай һүҙ миңә хат ебәреү өсөн үҙенә күрә бер пароль булып тора. Элекке спам-фильтрлау программамда ҡулланыусы бындай һүҙҙәрҙең исемлеген төҙөй ала ине һәм улар булған хаттар фильтрҙарҙы автоматик рәүештә үтә ине. Исемлегемә мин «Lisp» кеүек һүҙҙәрҙе, шулай уҡ үҙемдең почта индексымды индерҙем, һөҙөмтәлә онлайн-заказдарҙан килгән (башҡаса спамға оҡшап торған) квитанциялар үтә алды. Мин үҙемде бик отҡор тип уйлағайным, ләкин Байес фильтрының минең өсөн шул уҡ нәмәне эшләгәнен, өҫтәүенә үҙемдең башыма ла килмәгән бик күп һүҙҙәрҙе тапҡанын күрҙем.
Башта беҙҙең фильтрҙар 1000 спамдан 5-тән кәмерәген генә үткәрә һәм ялған ыңғай һөҙөмтәләре 0 тигәндә, мин үҙ хаттарымдың корпусына нигеҙләнеп үҙемдең почтамды фильтрлау тураһында әйткәйнем. Ләкин был һандар ялған түгел, сөнки мин тап ошо юлды яҡлайым: һәр ҡулланыусының почтаһын ул алған спам һәм таҙа хаттарға нигеҙләнеп фильтрларға кәрәк.сынында, һәр ҡулланыусының ике юйыу төймәһе булырға тейеш: ябай юйыу һәм спам тип юйыу. Спам тип юйылған барлыҡ нәмә спам корпусына бара, ә ҡалған бөтәһе спам булмаған корпусҡа инә.
Һеҙ ҡулланыусыларға башланғыс фильтр биреп башлай алаһығыҙ, ләкин ахыр сиктә һәр ҡулланыусы үҙе алған реаль хаттарға нигеҙләнгән үҙенең һүҙмә-һүҙ ихтималлыҡтарына эйә булырға тейеш. Был (а) фильтрҙарҙы нәтижәлерәк итә, (б) һәр ҡулланыусыға спамдың аныҡ билдәләмәһен үҙенсә бирергә мөмкинлек бирә, һәм (в) бәлки, иң яҡшыһы — спам ебәреүселәргә хаттарын фильтрҙар аша үтерлек итеп көйләүҙе ауырлаштыра. Әгәр фильтрҙың төп «мейеһе» шәхси мәғлүмәттәр базаһында булһа, спамдарҙы башланғыс фильтрҙар аша үтерлек итеп көйләү генә уларҙың айырым ҡулланыусыларҙың төрлө һәм күпкә яҡшыраҡ өйрәтелгән фильтрҙары аша үтә алырына бер ниндәй ҙә гарантия бирмәйәсәк.
Йөкмәткегә нигеҙләнгән спам-фильтрлау йыш ҡына аҡ исемлек (whitelist) — хаттары бер ниндәй фильтрлауһыҙ ҡабул ителә торған ебәреүселәр исемлеге менән берләштерелә. Бындай аҡ исемлекте төҙөүҙең бер еңел юлы — ҡулланыусы ҡасан да булһа хат ебәргән һәр адрес исемлеген һаҡлау. Әгәр хат уҡыу программаһында «спам тип юйыу» төймәһе булһа, ҡулланыусы ябай сүп кеүек юйған һәр хаттың ебәреүсе адресын да өҫтәргә мөмкин.
Мин аҡ исемлектәрҙе яҡлайым, ләкин фильтрлауҙы яҡшыртыу юлы булараҡ түгел, ә иҫәпләү ресурстарын һаҡлау ысулы булараҡ күберәк күрәм. Элек мин аҡ исемлектәр фильтрлауҙы еңеләйтер тип уйлай торғайным, сөнки һеҙгә тик үҙегеҙгә бер ҡасан да яҙмаған кешеләрҙең хаттарын ғына фильтрларға тура килер ине, ә һеҙгә тәүге тапҡыр яҙған кеше нимә әйтә алыуы яғынан ғәҙәт ҡағиҙәләре менән сикләнгән. Һеҙ белгән берәйһе һеҙгә енси мөнәсәбәттәр тураһында хат яҙыуы ихтимал, ләкин тәүге тапҡыр яҙыусы кеше быны эшләмәҫ ине. Мәсьәлә шунда: кешеләрҙең бер нисә электрон почта адресы булыуы мөмкин, шуға күрә яңы «ебәреүсе» адресы кешенең һеҙгә тәүге тапҡыр яҙыуын гарантияламай. Иҫке дуҫығыҙҙың (бигерәк тә ул хакер булһа) ҡапыл яңы адрестан хат ебәреүе ғәҙәти хәл, шуға күрә билдәһеҙ адрестарҙан килгән хаттарҙы үтә ҡаты фильтрлап, ялған ыңғай һөҙөмтәләр ҡурҡынысын арттырырға ярамай.
Ниндәйҙер мәғәнәлә, минең фильтрҙарым үҙҙәре үк бер төрлө аҡ исемлекте (һәм ҡара исемлекте) кәүҙәләндерә, сөнки улар тотош хәбәрҙәргә, шул иҫәптән башлыҡтарға нигеҙләнә. Шуға күрә улар ышаныслы ебәреүселәрҙең хат адрестарын һәм хатта хаттарҙың уларҙан миңә килеп еткән маршруттарын да «белә». Һәм улар спам тураһында ла шуны уҡ белә, шул иҫәптән сервер исемдәрен, почта программаларының версияларын һәм протоколдарҙы ла.
_ _ _
Спам-фильтрлауҙың әлеге кимәлен һаҡлап ҡала алырмын тип уйлаһам, был мәсьәлә хәл ителде тип иҫәпләр инем. Ләкин бөгөнгө спамдың күпселеген фильтрлай алыу әле күп нәмәне аңлатмай, сөнки спам үҫешә, үҙгәрә. Ысынында, ошоғаса булған спамға ҡаршы сараларҙың күбеһе ҡоротҡос бөжәктәрҙең яңы, бирешмәй торған төрөн генә барлыҡҡа килтергән пестицидтар кеүек булды.
Мин Байес фильтрҙарына ҙурыраҡ өмөт бағлайым, сөнки улар спам менән бергә үҫешә. Спам ебәреүселәр айырым һүҙҙәргә нигеҙләнгән ябай фильтрҙарҙы алдау өсөн «cock» урынына «c0ck» ҡуллана башлаһа, Байес фильтрҙары быны автоматик рәүештә һиҙеп ҡала. Ысынында иһә, «c0ck» һүҙе «cock»ҡа ҡарағанда күпкә хөкөм итерлек дәлил булып тора, һәм Байес фильтрҙары уның нисә тапҡыр көслөрәк икәнен теүәл белә.
Шулай ҙа, спам-фильтрлау планын тәҡдим иткән һәр кем ошо һорауға яуап бирә алырға тейеш: әгәр спамсылар һеҙҙең нимә эшләгәнегеҙҙе теүәл белһә, улар һеҙҙе ни тиклем уңышлы урап үтә аласаҡ? Мәҫәлән, контрол суммаһына нигеҙләнгән спам-фильтрлау етди кәртәгә әйләнһә, спам ебәреүселәр хәбәр тексын төҙөү өсөн mad-lib (һүҙ уйыны) алымдарына күсәсәк, тип уйлайым.
Байес фильтрҙарын еңеү өсөн спам ебәреүселәргә үҙ хаттарын уникаль итеү йәки айырым әҙәпһеҙ һүҙҙәрҙе ҡулланыуҙан туҡтау ғына етмәйәсәк. Уларға үҙ хаттарын һеҙҙең ғәҙәти хаттарығыҙҙан айырылғыһыҙ итергә тура киләсәк. Был иһә уларҙы ҡаты сикләр, тип уйлайым. Спам — башлыса һатыу тәҡдимдәре ул; әгәр һеҙҙең даими хаттарығыҙ гел һатыу тәҡдимдәренән генә тормаһа, спамдың характеры барыбер башҡаса буласаҡ. Бынан тыш, спам ебәреүселәргә үҙҙәренең бөтә инфраструктураһын үҙгәртергә (һәм гел үҙгәртеп торорға) тура киләсәк, сөнки юғиһә, хәбәр тексы менән ни генә эшләһәләр ҙә, башлыҡтар Байес фильтрҙары өсөн элеккесә насар күренәсәк. Башлыҡтарҙы ғәйепһеҙ күрһәтеү ни тиклем ауыр буласағын белерлек кимәлдә мин спамсылар ҡулланған инфраструктураны ентекләп белмәйем, ләкин минең фаразымса, был хат тексын таҙа күрһәтеүгә ҡарағанда ла ауырыраҡ буласаҡ.
Улар башлыҡтар мәсьәләһен хәл итә алған тип фаразлаһаҡ, киләсәктең спамы яҡынса ошондай буласаҡ: «Сәләм. Бына ошоға күҙ һалырға кәрәк тип уйланым: http://www.27meg.com/foo», сөнки йөкмәткегә нигеҙләнгән фильтрлау спамсыға яһарға мөмкинлек биргән һатыу тәҡдиме күләме шуның менән генә сикләнәсәк. (Ысынында иһә, хатта ошоно ла фильтрҙар аша үткәреү ауыр буласаҡ, сөнки хаттағы ҡалған бөтә нәмә нейтраль булһа, спам ихтималлығы url адресына бәйле буласаҡ, ә уны нейтраль күрһәтеү өсөн байтаҡ тырышлыҡ кәрәк буласаҡ.)
Спам ебәреүселәр төрлө була: үҙ шәхесен йәшерергә лә тырышмаған, «яҙылыу исемлеге» (opt-in) тип аталғанды алып барған бизнестарҙан алып, порно сайттарҙы рекламалаған спам ебәреү өсөн почта серверҙарын баҫып алған кешеләргә тиклем. Әгәр беҙ фильтрлау ярҙамында уларҙың мөмкинлектәрен өҫтә күрһәтелгән кеүек хаттарға тиклем тарайтһаҡ, был спектрҙың «легаль» яғында булған спамсыларҙың эшен бөтөрөргә тейеш; сөнки улар төрлө штат ҡанундары буйынса үҙ спамдарының ни өсөн спам түгеллеген һәм «яҙылыуҙы» нисек ғәмәлдән сығарырға кәрәклеген аңлатҡан стандарт текстарҙы өҫтәргә мәжбүр, ә бындай тексты таныу бик еңел.
(Элек мин ҡатыраҡ ҡанундар спамды кәметер тип ышаныуҙы бер ҡатлылыҡ тип һанай торғайным. Хәҙер иһә мин ҡатыраҡ ҡанундар спамсылар ебәргән спам күләмен кәметмәһә лә, улар һис шикһеҙ фильтрҙарға алыусылар ысынында күрә торған спам күләмен кәметергә ярҙам итә ала, тип уйлайым.)
Был спектрҙың ҡайһы ғына яғында булмаһын, әгәр спамсылар яһай алған һатыу тәҡдимдәрен сикләһәгеҙ, һеҙ һис шикһеҙ уларҙың бизнесын ябылыуға илтерһегеҙ. Бизнес тигән һүҙҙе иҫтә тотоу мөһим. Спам ебәреүселәр — бизнесмендар. Улар спамды файҙа килтергәнгә ебәрә. Ә файҙа килә, сөнки яуап биреү кимәле үтә түбән булһа ла (иң яҡшы осраҡта миллионға 15 кеше, сағыштырыу өсөн — каталог таратҡанда миллионға 3000), был улар өсөн ғәмәлдә бер тингә лә төшмәй. Хат алыусылар өсөн иһә сығымдар сикһеҙ ҙур — спамды юйыр өсөн бер секунд сарыф иткән һәр миллион кешегә яҡынса 5 кеше-аҙна тура килә, ләкин спам ебәреүсе бының өсөн түләргә тейеш түгел.
Шулай ҙа спам ебәреү спамсыға ниҙер тора. [2] Шуға күрә яуап биреү кимәлен ни тиклем нығыраҡ төшөрә алһаҡ — фильтрлау ашамы, әллә спамсыларҙы үҙ тәҡдимдәрен шыйыҡландырырға мәжбүр итеү ашамы — спам ебәреүҙе үҙҙәренә яраҡлы тип тапҡан бизнестар һаны шул тиклем аҙыраҡ буласаҡ.
Спам ебәреүселәрҙең ошондай һатыу тәҡдимдәрен ҡулланыуының сәбәбе — яуап биреү күрһәткесен арттырыу. Был, бәлки, спамсының уй-хистәренә инеүгә ҡарағанда ла ерәнгесерәктер, ләкин спамға яуап биргән кешенең күңеленә күҙ һалайыҡ. Был кеше йә ғәжәп кимәлдә ышаныусан, йә үҙенең енси ҡыҙыҡһыныуҙарын үҙенән дә ныҡ йәшерә. Ҡайһыһы ғына булмаһын, беҙгә спам ни тиклем ерәнгес йәки аҡылһыҙ күренмәһен, улар өсөн ул тулҡынландырғыс булып тора. Ҡыҙыҡлы ишетелмәһә, спамсылар бындай һүҙҙәрҙе әйтмәҫ ине. Ә «бына ошоға күҙ һалырға кәрәк тип уйланым» тигән фраза спам алыусыны спамсылар әле әйткән һүҙҙәр кеүек үҙенә тарта алмаясаҡ. Һөҙөмтә: үҙ эсенә ҡыҙыҡлы һатыу тәҡдимдәрен ала алмаһа, спам маркетинг сараһы булараҡ нәтижәһеҙерәк булып бара, һәм уны ҡулланырға теләгән бизнестар һаны кәмей бара.
Бына ошо — ахыр сиктә ҙур еңеү. Мин спам-фильтрлау программаһын был сүп-сарға башҡаса ҡарамаҫ өсөн яҙа башлағайным. Ләкин беҙ спамды фильтрлауҙы етерлек дәрәжәлә яҡшы эшләй башлаһаҡ, ул файҙа килтереүҙән туҡтаясаҡ, һәм спам ебәреүселәр уны ебәреүҙән ысынлап та туҡтаясаҡ.
_ _ _
Спам менән көрәшеүҙең программаларҙан алып закондарға тиклемге бөтә алымдары араһында Байес фильтрлауы иң һөҙөмтәлеһе булыр тип ышанам. Ләкин спамға ҡаршы төрлө сараларҙы ни тиклем күберәк күрһәк, шул тиклем яҡшыраҡ тип тә иҫәпләйем, сөнки спам ебәреүселәрҙе сикләгән теләһә ниндәй сара фильтрлауҙы еңеләйтәсәк. Йөкмәткегә нигеҙләнгән фильтрлау донъяһы эсендә лә бер үк ваҡытта программаларҙың төрлө төрҙәре ҡулланылһа, яҡшы буласаҡ, тип уйлайым. Төрлө фильтрҙар ни тиклем күберәк булһа, спамдарҙы улар аша үтерлек итеп көйләү спамсылар өсөн шул тиклем ауырыраҡ буласаҡ.
Ҡушымта: Фильтрлау миҫалдары
Мин был мәҡәләне яҙған ваҡытта килеп төшкән спамдың миҫалы бына бында. Был спамда иң ҡыҙыҡлы ун биш һүҙ: qvp0045 indira mx-05 intimail $7500 freeyankeedom cdo bluefoxmedia jpg unsecured platinum 3d0 qves 7c5 7c266675 Был һүҙҙәр — башлыҡтарҙан һәм хаттың төп өлөшөнән алынған ҡатнашма, был иһә спам өсөн бик хас күренеш. Шулай уҡ спам өсөн хас булғанса, был һүҙҙәрҙең һәр береһенең минең базала спам ихтималлығы .99 тәшкил итә. Ысынында иһә, .99 ихтималлыҡҡа эйә һүҙҙәр ун биштән күберәк, ә былар — осраған тәүге ун бишәүһе генә.
Ҡыҙғанысҡа ҡаршы, был хатты Байес ҡағиҙәһен ҡулланыуҙың күңелһеҙ генә бер миҫалы итә. Ихтималлыҡтарҙың ҡыҙыҡлы төрлөлөгөн күрер өсөн, беҙгә ысынында шаҡтай ғәҙәти булмаған ошо спамға ҡарарға кәрәк.
Был спамда иң ҡыҙыҡлы ун биш һүҙ, уларҙың ихтималлыҡтары менән бергә: madam 0.99 promotion 0.99 republic 0.99 shortest 0.047225013 mandatory 0.047225013 standardization 0.07347802 sorry 0.08221981 supported 0.09019077 people's 0.09019077 enter 0.9075001 quality 0.8921298 organization 0.12454646 investment 0.8568143 very 0.14758544 valuable 0.82347786 Был юлы дәлилдәр яҡшы һәм насарҙың ҡатнашмаһынан тора. «Shortest» кеүек һүҙ «madam» йәки «promotion» ғәйеп билдәһе булған кеүек үк ғәйепһеҙлек дәлиле булып тора. Ләкин барыбер ғәйеп яғы көслөрәк. Был һандарҙы Байес ҡағиҙәһе буйынса берләштерһәгеҙ, килеп сыҡҡан ихтималлыҡ .9027 була.
«Madam» — аңлашылыуынса, «Dear Sir or Madam» тип башланған спамдарҙан алынған. Улар артыҡ киң таралмаған, ләкин «madam» һүҙе минең таҙа хаттарымда бер ҡасан да осрамай, һәм бөтә мәсьәлә — нисбәттә.
«Republic» юғары балл ала, сөнки ул Нигерия мутлашыу хаттарында йыш осрай, шулай уҡ Корея һәм Көньяҡ Африкаға һылтанған спамдарҙа бер-ике тапҡыр күренә. Һеҙ бының спамды билдәләргә ярҙам итеүен осраҡлыҡ тип әйтерһегеҙ. Ләкин спам ихтималлыҡтарын тикшергәндә мин бындай осраҡлыҡтарҙың бик күп булыуын һәм уларҙың эште яңылыш түгел, ә дөрөҫ яҡҡа этәреүгә ғәжәп бер һәләте барлығын асыҡланым. Был осраҡта «Republic» һүҙенең Нигерия мутлашыу хаттарында һәм ошо спамда осрауы бөтөнләй осраҡлыҡ түгел. Аҙ үҫешкән илдәр менән бәйле шикле бизнес тәҡдимдәренең тотош бер синыфы бар, һәм үҙ сиратында улар үҙҙәренең республика булыуын асыҡтан-асыҡ күрһәткән (сөнки ысынында улай түгелдәр) исемдәргә эйә булыуға нығыраҡ тартыла.[3]
Икенсе яҡтан, «enter» — ысын яңылышыу. Ул башлыса яҙылыуҙан баш тартыу инструкцияларында осрай, ләкин бында ул тулыһынса ғәйепһеҙ мәғәнәлә ҡулланылған. Бәхеткә күрә, статистик алым шаҡтай тотороҡло, һәм һөҙөмтәләр тайпыла башлағансы байтаҡ хаталарға түҙә ала.
Сағыштырыу өсөн, фильтрҙар аша үткән шул һирәк осрай торған «ҡоштоң», йәғни спамдың миҫалы бына бында. Ни өсөн? Сөнки бары тик осраҡлылыҡ арҡаһында уға минең ысын хаттарымда осрай торған һүҙҙәр тулған: perl 0.01 python 0.01 tcl 0.01 scripting 0.01 morris 0.01 graham 0.01491078 guarantee 0.9762507 cgi 0.9734398 paul 0.027040077 quite 0.030676773 pop3 0.042199217 various 0.06080265 prices 0.9359873 managed 0.06451222 difficult 0.071706355 Бында бер нисә яҡшы яңылыҡ бар. Беренсенән, был хат программалау телдәре буйынса белгес булмаған һәм Morris исемле яҡшы дуҫы булмаған кешенең фильтрҙары аша үтә алмаҫ ине, моғайын. Төп ҡулланыусы өсөн бындағы тәүге биш һүҙҙең барыһы ла нейтраль булыр ине һәм спам ихтималлығына өлөш индермәҫ ине.
Икенсенән, һүҙ парҙарына нигеҙләнгән фильтрлау (түбәндә ҡарағыҙ) быны бик еңел тотор ине тип уйлайым: «cost effective», «setup fee», «money back» — шаҡтай фашлаусы нәмәләр. Һәм, әлбиттә, улар миңә (йәки мин өлөшө булған селтәргә) спам ебәреүҙе дауам итһә, «Hostex» үҙе үк спам термины тип танылыр ине.
Ниһайәт, бына бында ғәйепһеҙ, таҙа хат. Уның иң ҡыҙыҡлы ун биш һүҙе түбәндәгесә: continuation 0.01 describe 0.01 continuations 0.01 example 0.033600237 programming 0.05214485 i'm 0.055427782 examples 0.07972858 color 0.9189189 localhost 0.09883721 hi 0.116539136 california 0.84421706 same 0.15981844 spot 0.1654587 us-ascii 0.16804294 what 0.19212411 Бындағы һүҙҙәрҙең күбеһе хаттың ғәйепһеҙ булыуын күрһәтә. Ике насар еҫле һүҙ бар: «color» (спам ебәреүселәр төҫлө шрифттарҙы ярата) һәм «California» (ул баһаламаларҙа һәм формаларҙағы менюларҙа осрай), ләкин улар «continuation» һәм «example» кеүек асыҡтан-асыҡ ғәйепһеҙ һүҙҙәрҙе баҫырлыҡ түгел.
«Describe» һүҙенең шул тиклем ғәйепһеҙ тип баһаланыуы ҡыҙыҡ. Ул минең 4000 спамдың береһендә лә осрамаған. Мәғлүмәттәрҙең бындай көтөлмәгән хәлдәр менән тулы булыуы асыҡлана. Спам текстарын анализлағанда өйрәнә торған нәмәләрҙең береһе — спамсыларҙың телдең ни тиклем тар өлөшөндә эш итеүе. Бына ошо факт, теләһә ниндәй айырым ҡулланыусы хаттарының үҙенсәлекле һүҙлек составы менән бергә, Байес фильтрлауын өмөтлө алым итә лә инде.
Ҡушымта: Башҡа идеялар
Мин әлегә һынап ҡарамаған бер идея — айырым һүҙҙәргә түгел, ә һүҙ парлаарына, хатта өсәүлеләренә нигеҙләнеп фильтрлау. Был ихтималлыҡты күпкә теүәлерәк билдәләргә мөмкинлек бирер ине. Мәҫәлән, минең хәҙерге мәғлүмәттәр базаһында «offers» һүҙенең ихтималлығы 0,96 тәшкил итә. Әгәр һеҙ ихтималлыҡты һүҙ парҙарына нигеҙләһәгеҙ, «special offers» һәм «valuable offers» 0,99 ихтималлыҡҡа эйә булыр ине, ә, әйтәйек, «approach offers» («this approach offers» кеүек ҡулланылғанда) 0,1 йәки унан да кәмерәк ихтималлыҡ алыр ине.
Быны әлегә эшләмәүемдең сәбәбе — айырым һүҙҙәргә нигеҙләнгән фильтрлауҙың былай ҙа бик яҡшы эшләүендә. Ләкин был, әгәр спамды таныу ҡатмарлашһа, фильтрҙарҙы ҡатыртыу өсөн мөмкинлек барлығын аңлата. (Ҡыҙығы шунда: һүҙ парҙарына нигеҙләнгән фильтр, асылда, кире йүнәлештә эшләүсе Марков сылбырлы текст генераторы булып торасаҡ.)
Спамдың үҙенсәлекле билдәләре (мәҫәлән, to: яланында алыусының адресы булмауы), әлбиттә, спамды таныуҙа әһәмиәткә эйә. Уларҙы был алгоритмда виртуаль һүҙҙәр булараҡ ҡарап иҫәпкә алырға мөмкин. Киләсәк версияларҙа мин, моғайын, кәм тигәндә иң асыҡ спам күрһәткестәренең бер нисәүһе өсөн шулай эшләрмен. Билдәләрҙе таныусы спам-фильтрҙар күп кенә нескәлектәрҙә дөрөҫ эш итә; уларға бары тик дәлилдәрҙе берләштереү өсөн дөйөм бер тәртип (дисциплина) етмәй.
Спам булмаған билдәләрҙе таныу спам билдәләрен таныуға ҡарағанда мөһимерәк тә булырға мөмкин. Ялған ыңғай һөҙөмтәләр (false positives) шул тиклем ҙур борсолоу тыуҙыра, хатта улар ғәҙәттән тыш саралар талап итә. Киләсәк версияларҙа мин, бәлки, махсус рәүештә ялған ыңғай һөҙөмтәләрҙән ҡасыу өсөн тәғәйенләнгән икенсе кимәл тикшереү өҫтәрмен. Әгәр хат ошо икенсе кимәл фильтрҙарын тоҡандырһа, уның спам булыу ихтималлығы сик кимәленән юғарыраҡ булһа ла, ул ҡабул ителәсәк.
Мин был икенсе кимәл фильтрлауҙың Байес ысулына нигеҙләнеүен көтмәйем. Ул ҡотолғоһоҙ рәүештә махсус хәлгә яраҡлаштырылған (ad hoc) ғына түгел, ә фаразлауҙарға нигеҙләнгән буласаҡ, сөнки ялған ыңғай һөҙөмтәләр һаны ҡалыптарҙы (паттерндарҙы) шәйләрлек кимәлдә ҙур булмаясаҡ. (Нисек кенә булмаһын, резерв системаның төп система ҡулланған технологияға таянмауы хатта яҡшыраҡ та.)
Киләсәктә мин һынап ҡарай алырлыҡ тағы бер нәмә — электрон хаттың билдәле бер өлөштәренә айырыуса ныҡ иғтибар бүлеү. Мәҫәлән, хәҙерге спамдың яҡынса 95%-ында һеҙҙең инеүегеҙҙе теләгән берәй сайттың url-ы була. (Ҡалған 5%-ы телефон номерына шылтыратыуҙы, электрон почта йәки АҠШ почта адресы аша яуап биреүҙе йә, һирәк кенә осраҡтарҙа, билдәле бер акцияларҙы һатып алыуҙы һорай.) Бындай осраҡтарҙа хаттың спам булыу-булмауын асыҡлау өсөн тик шул url үҙе генә лә тулыһынса етә.
Домен исемдәре хаттағы ҡалған текстан (немец телендә булмаған осраҡта) шуның менән айырыла: улар йыш ҡына бергә ҡушылған бер нисә һүҙҙән тора. Дөйөм осраҡта иҫәпләү йәһәтенән ауыр булһа ла, уларҙы өлөштәргә тарҡатып ҡарарға төшөр ине. Әгәр фильтр элек бер ҡасан да «xxxporn» токенын күрмәгән булһа, уның шәхси спам ихтималлығы 0,4 булыр ине, шул уҡ ваҡытта «xxx» һәм «porn» айырым-айырым (минең корпуста) ярашлы рәүештә 0,9889 һәм 0,99 ихтималлыҡҡа эйә, ә берләшкән ихтималлығы 0,9998 тәшкил итә.
Спам ебәреүселәр үҙ хәбәрҙәренең тексында шикле һүҙҙәрҙе ҡулланыуҙан яйлап баш тартырға мәжбүр булған һайын, домен исемдәрен өлөштәргә тарҡатыу тағы ла мөһимерәк булыр тип көтәм. (Әлбиттә, ip-адреслы url — үтә ныҡ фашлай торған билдә, бер нисә система администраторының хаттарынан башҡа.)
Спамсылар таратҡан url-дарҙың берлектә тулыландырылып торған исемлеген булдырыу яҡшы идея булыр ине. Яуыз ниәтле йәки хаталы мәғлүмәттәр индермәһендәр өсөн, беҙгә Raph Levien өйрәнгән төрҙәге ышаныс метрикаһы кәрәк булыр ине, әммә бындай нәмә булһа, ул теләһә ниндәй фильтрлау программаһына яҡшы этәргес бирер ине. Был шулай уҡ бойкоттар өсөн дә уңайлы нигеҙ булыр ине.
Шикле url-дарҙы тикшереүҙең тағы бер юлы — ҡулланыусы шул турала әйтелгән хатты уҡығанға тиклем үк сайтты ҡарап сығыу өсөн краулер (эҙләү роботы) ебәреү булыр ине. Һеҙ сайтты хатты баһалаған кеүек үк Байес фильтры менән баһалай алыр инегеҙ, һәм сайтта табылған теләһә ниндәй мәғлүмәт хаттың спам булыу ихтималлығын иҫәпләгәндә ҡулланылыр ине. Әлбиттә, башҡа адресҡа йүнәлтеүсе (redirect) url айырыуса шикле булыр ине.
Ысынлап та яҡшы идея булыр тип уйлаған тағы бер уртаҡ проект — спамдың ғәйәт ҙур корпусын йыйыу. Дөрөҫ һәм таҙа ҙур корпус — Байес фильтрлауының һәйбәт эшләүенең төп нигеҙе. Байес фильтрҙары был корпусты башланғыс мәғлүмәт булараҡ ҡуллана алыр ине. Ләкин бындай корпус башҡа төрлө фильтрҙар өсөн дә файҙалы булыр ине, сөнки уны уларҙы һынау өсөн ҡулланырға мөмкин булыр ине.
Бындай корпусты булдырыу ҡайһы бер техник проблемалар тыуҙыра. Әлбиттә, яуыз ниәтле йәки белекһеҙ яҙмаларҙы булдырмау өсөн беҙгә ышаныс метрикалары кәрәк булыр ине. Шулай уҡ беҙгә корпустағы хаттарҙан шәхси мәғлүмәттәрҙе (яҙылыусының һәм күсермә алыусыларҙың адрестарын ғына түгел, мәҫәлән, йыш ҡына алыусының адресын кодлаған яҙылыуҙан баш тартыу url-дарының аргументтарын да) таҙартыу юлдары кәрәк булыр ине. Әгәр кемдер был проектты үҙ өҫтөнә алырға теләһә, был донъя өсөн яҡшы бер эш булыр ине.
Ҡушымта: Спам төшөнсәһенә билдәләмә
Минеңсә, спамдың нимә булыуы тураһында яҡынса уртаҡ фекер бар, әммә асыҡ һәм теүәл билдәләмәгә эйә булыу файҙалы булыр ине. Әгәр спамдың үҙәк корпусын булдырырға йәки спамды фильтрлау сифатын мәғәнәле сағыштырырға теләһәк, беҙгә быны эшләргә тура киләсәк.
Иң элек шуны әйтергә кәрәк: спам — һорап алынмаған коммерция хаты ғына түгел. Әгәр минең тирә-яҡтағы берәй кеше минең яҡшы тороштағы иҫке Raleigh өс тиҙлекле велосипедын эҙләгәнемде ишетеп, миңә уны һатырға тәҡдим итеп хат яҙһа, мин бик шат булыр инем, шуға ҡарамаҫтан, был хат коммерциялы ла, һорап алынмаған да булыр ине. Спамдың төп билдәһе (ысынында, уның йәшәү сәбәбе) — уның һорап алынмауында түгел, ә автоматлаштырылған булыуында.
Спамдың ғәҙәттә коммерция маҡсатында булыуы ла бары тик осраҡлы ғына бер хәл. Әгәр кемдер, мәҫәлән, ниндәйҙер сәйәси маҡсатты хуплау өсөн күпләп хат ебәрә башлаһа, был порно сайтты рекламалаған хат кеүек үк спам булыр ине.
Мин спамды һорап алынмаған автоматлаштырылған электрон почта хаты тип билдәләргә тәҡдим итәм. Шулай итеп, был билдәләмәгә спамдың күп кенә юридик билдәләмәләренә инмәгән ҡайһы бер хаттар ҙа инә. Лобистар йоғонтоһо аҫтында төҙөлгән булһа кәрәк, спамдың юридик билдәләмәләре алыусы менән «элекке мөнәсәбәттәре булған» компаниялар ебәргән хаттарҙы ғәҙәттә ситтә ҡалдыра. Ләкин, мәҫәлән, берәй компаниянан нимәлер һатып алыу һеҙҙең уларҙан даими хаттар алырға теләгәнегеҙҙе аңлатмай. Әгәр мин онлайн-кибеттән берәй нәмәгә заказ бирһәм, һәм улар шунан һуң миңә спам ағымы ебәрә башлаһа, был барыбер спам булып ҡала.
Спам ебәреүсе компаниялар йыш ҡына «яҙылыуҙан баш тартыу» мөмкинлеген бирә, йәки спам алыуҙы туҡтатырға теләһәгеҙ, уларҙың сайтына инеп «иҫәп яҙмаһы көйләүҙәрен» үҙгәртеүегеҙҙе һорай. Был хаттың спам булыуҙан туҡтауы өсөн етәрлек түгел. Баш тартмау — ризалыҡ биреү менән бер түгел. Әгәр алыусы электрон хаттар алыуҙы һорап, асыҡ тамғаланған шаҡмаҡҡа (тәүге көйләү буйынса билдәһеҙ торған) үҙе асыҡтан-асыҡ билдә ҡуймаған икән, был — спам.
Ҡайһы бер эшлекле мөнәсәбәттәрҙә һеҙ билдәле бер төр хаттарҙы өндәшмәйсә һорайһығыҙ. Интернетта заказ биргәндә, һеҙ квитанцияны һәм заказ ебәрелгәне тураһында белдереүҙе өндәшмәйсә һорайһығыҙ тип уйлайым. Verisign миңә домен исеменең ғәмәлдә булыу ваҡыты бөтөүгә бара тип иҫкәртеп хат ебәргәндә, мин быға ҡаршы түгелмен (кәм тигәндә, улар уның ысын теркәүсеһе булһа). Ләкин Verisign миңә электрон коммерция веб-сайтын төҙөү буйынса ТҮЛӘҮҺЕҘ ҡулланма тәҡдим итеп хат ебәргәндә — был инде спам.
Иҫкәрмәләр:
[1] Был мәҡәләләге миҫалдар, ышанһағыҙ ҙа, ышанмаһағыҙ ҙа, күберәк аңлайышлы булһын өсөн Common Lisp теленә тәржемә ителгән. Бында тасуирланған ҡушымта — беҙ әлегә сығарылмаған Arc исемле яңы Lisp диалектын һынау өсөн яҙған программа.
[2] Хәҙерге ваҡытта бер миллион спам ебәреү өсөн иң түбән хаҡ яҡынса $200 тәшкил итә шикелле. Был бик арзан, һәр спам өсөн центтың 1/50 өлөшө. Ләкин спамдың 95%-ын фильтрлап сығарыу, мәҫәлән, спам ебәреүселәрҙең билдәле бер аудиторияға барып етеү хаҡын 20 тапҡырға арттырыр ине. Быны күтәрә алырлыҡ табыш маржаһына бик аҙҙар эйә.
[3] Ғәмәли ҡағиҙә булараҡ: ил исеме алдында ни тиклем күберәк аныҡлаусы һүҙҙәр булһа, уның идарасылары шул тиклем ришүәтсерәк була. Исеме «X Социалистик Халыҡ Демократик Республикаһы» тип аталған ил, моғайын, донъяла һеҙ йәшәргә теләгән иң һуңғы урын булыр ине.
Был яҙманың ҡараламаларын уҡып сыҡҡаны өсөн Сара Харлинға (Sarah Harlin); фильтрлау буйынса бер нисә яҡшы идея өсөн һәм почта инфраструктурабыҙҙы булдырған өсөн Дэниел Гиффинға (Daniel Giffin, ул шулай уҡ Arc-тың эшлекле интерпретаторын яҙа); спам тураһында күп һанлы фекер алышыуҙар өсөн Роберт Моррисҡа (Robert Morris), Тревор Блэквеллға (Trevor Blackwell) һәм Эранн Гатҡа (Erann Gat); ышаныс метрикалары буйынса кәңәштәре өсөн Раф Левиенға (Raph Levien); статистика буйынса кәңәштәре өсөн Чип Колдвелл (Chip Coldwell) менән Сэм Стейнголдҡа (Sam Steingold) рәхмәт белдерәм.
Өҫтәмә мәғлүмәт: