![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Napisałem do bota badwords. Ale zrobilem to troche niewydajnie bo bot sprawdza badwords przez in_array() co jest troche zle. Myślałem o preg_match ale nie wiem czy będzie wydajnie robić pętle całej tablicy z badwords i poruwnywać wiadomość od użytkownika czy tam gdzieś nie ma tego słowa. Napiszcie jak wy byście to zrobili (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś szukałem skryptów, które cenzurowałyby tekst lepiej niż badwordfiltry podmieniające uprzednio wpisane na sztywno słowa. Skleciłem cenzora opartego na wyrażeniach regularnych odpornego na wprowadzanie krzaków w stylu "n_i_e_c(e)n_zuralny" - po prostu usuwa wszystko co nie jest literą lub spacją. Wiąże się to z dwoma problemami - jeśli wprowadzi się "n i e c e n z u r a l n y" - to cenzor to łyknie. Można zdefiniować wyrażenie regularne, które wyszukiwałoby słów niecenzuralnych rozbitych spacjami, jednak znacznie zmniejszyłoby to wydajność. Drugim problemem są błędy interpunkcyjne. Poprawnie po znaku przestankowym powinna znaleźć się spacja, jeśli jednak ktoś o niej zapomni, dwa sąsiadujące ze sobą wyrazy po połączeniu mogą okazać się słowem niecenzuralnym (np. "wyrzuci;Pozdrowionka" (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) )
Co do wydajności - przy zagmatwaniu języka polskiego czasem wyrażenia regularne mogą być wydajniejsze od wpisywania pełnej tablicy słów do podmiany. Na przykład chcąc usunąć wszystkie słowa zawierające "bomb", mamy możliwość zdefiniowania prostego wyrażenia regularnego, lub tablicy słów zawierającej między innymi: bomba, bomby, bombom, bombami, bombowy, bombowa, bombowe, bombardowanie, bombardować, zbombardować, zbombardowany... Używanie wyrażeń regularnych ma tę wadę, że usuniemy faktycznie wszystkie słowa zawierające podsłowo "bomb". Jeśli więc chcemy zezwolić na użycie słowa "bombastyczny" - musimy umieścić to słowo w osobnej tablicy słów dopuszczalnych. Ok. dość wodolejstwa - efekt mojej pracy można przetestować i ściągnąć pod adresem: http://www.webforms.pl/cenzor/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ja używam czegoś takiego, kwestia doddania swoich słów:
Kwestia stworzenie porządnej tablicy ze słowami :/ |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@konys - fajny cenzor, ale nieuwzglednia bledow ortograficznych np. pani na "K" pisana przez ó. Wyjatek stanowi popularne okreslenie organu meskiego, ktore jest cenzurowane zarowno po wpisaniu go z bledem, jak i poprawnie, z tym ze w tym drugim przypadku otrzymany wynik wyglada tak cXXX. Takie dzialanie cenzora nie jest oczywiscie zamierzone, ale wynika z popelnionego przez programiste bledu ortograficznego. Wspomniane wyzej slowo pisze sie przez "ch", a nie jak sie to utarlo przez "h". (IMG:http://forum.php.pl/style_emoticons/default/aaevil.gif)
Edit ----------------------- Aha - od kiedy słowo "pedał" nalezy do slow niecenzuralnych? Ten post edytował bigZbig 20.04.2006, 10:10:14 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat(bigZbig @ 2006-04-20 10:05:00) Aha - od kiedy słowo "pedał" nalezy do slow niecenzuralnych? hehe... na pewno nie sprawdzi się na forum dla rowerzystów. (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif) podobnie jest z lesbijkę, pedofil, napalony ... ... ale nie czepiam się. skrypcik fajny, a słownik to już inna sprawa. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 100 Pomógł: 7 Dołączył: 5.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
tja - słownik konstruowałem dla konkretnego portalu, z którego cykliści z pewnością nie korzystają, więc użycie słowa 'pedał' miałoby wydźwięk jedynie pejoratywny. Może należałoby zrobić kilka poziomów filtracji (np. ostre mięcho, lekka pikanteria, megafiltracja)? Jak widzę nie ma chwilowo zastrzeżeń do enginu, jedynie do słownika. Jeśli ktoś wyrazi zainteresowanie, mógłbym (w wolnej chwili) zrobić interfejs dodawania wyrażeń cenzurowanych, wówczas można by wspólnie stworzyć słownik wyrazów niecenzuralnych. Jak się na to zapatrujecie?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie wydzwiek poszczegolnych slow zalezy od kontekstu. Nie sadze aby udoalo sie stworzyc jakis uniwersalny slownik, ktory sprawdzi sie w kazdej sytuacji. Z drugiej strony warto stworzyc liste slow potencjalnie niecenzuralnych. W razie potrzeby zawsze mozna pewne slowa z tej listy usunac.
Najlatwiejszym sposobem zgromadzenia pewnej listy slow jest zapisywanie np. w bazie danych wszystkich slow uzytych w demku cenzora. Liste te oczywiscie trzebaby pozniej zweryfikowac. Do cenzora ponadto przydalby sie jakis modul raportujacy, ktory gromadzilby dane statystyczne co do liczby uzycia poszczegolnych slow. Jesliby takiego cenzora zaimplementowac na jakims forum to wartoby bylo gromadzic tez informacje, ktory uzytkownik bluzga. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 02:42 |