Wśród młodych użytkowników Internetu rozpowszechnił się szkodliwy mem pisania w NiEcZyTelNy sPosooP. Irytuje to praktycznie wszystkich – prócz tych, którzy tak piszą. Czy możemy coś na to poradzić? Oprócz ciągłego krytykowania? Ależ tak. Mem jest bardzo prymitywny, stąd da się zwalczyć równie prymitywnym algorytmem.
Zastanówmy się chwilę, czym różni się normalny tekst od PoKeMoNoWeGo? Ilością wielkich liter. W normalnych tekstach, Wielkich liter jest relatywnie mało. Pokemony zaś piszą wielką mniej więcej co drugą, co trzecią literę. Jakiż problem policzyć?
Istnieje też mutacja memu pokemonowego, zwana l33t. Różnice są dwie:
- Umysłowi opanowanemu przez mem l33t wydaje się, że fakt tej infekcji wiąże się z jego elitarnością
- Zamiast nadmiaru wielkich liter, mamy nadmiar cyfr i znaków niealfanumerycznych.
W swoim comprendo.info zastosowałem funkcję walidacyjną, która stara się wyłapać ofiary obu wersji memu. Webmasterze! Użyj jej (lub podobnej) dla dobra Internetu!
1 2 |
function killPokemon($input)<br/>{<br/> $all = strlen($input);<br/> $upper = 0;<br/> $nonchar = 0;<br/> for($i = 0; $i < $all; $i++)<br/> {<br/> //Spacje zignoruj.<br/> if($input{i} == ' ')<br/> {<br/> $all--;<br/> continue;<br/> }<br/> $u = strtoupper($input{$i});<br/> $l = strtolower($input{$i});<br/> //Znaki niebędące literami pozostaja niezmienione przez funkcje strupper i strlower.<br/> if($u == $l)<br/> {<br/> $nonchar++;<br/> }<br/> //Litery niezmienione przez strtoupper są wielkie.<br/> else if($input{$i} == $u)<br/> {<br/> $upper++;<br/> }<br/> }<br/> //Zwróć true, jeśli tekst zachowuje normy ilości wielkich liter i znaczków. <br/> //Progi dobrałem eksperymentalnie.<br/> return ($upper/$all < 0.12) && ($nonchar/$all < 0.22);<br/>} |
Kod przekazuję do domeny publicznej. Można go dowolnie używać, nawet bez podawania autora.
Przypuszczam, że kod nie jest optymalny. Ale grunt, że działa.
PS: Mówią, że nawet sztuczna inteligencja nie pokona naturalnej głupoty. To prawda – np. ta funkcja radzi sobie z głupim sposobem pisania, ale wobec głupiej treści jest już bezradna.