Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
tolimadokara
746 / 414 / 91
Регистрация: 24.10.2012
Сообщений: 3,025
Записей в блоге: 2
1

Алгоритм применимый в автоцензорах. Реализация на языке php

04.06.2013, 02:23. Просмотров 717. Ответов 0
Метки нет (Все метки)

В данной реализации метода автоцензора представлен php класс проверки слов на цензуру и текстовый файл не цензурных слов который он использует.

php класс-детектор не цензурных слов greenDetect.class.php
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
 
# 15-th February 2013, 3:11PM
# Green detect PHP class
# This class detect poor words
# (C)2013, Katana
#
class greenDetect
{
    # Poor list database file
    var $poor_db = "poor_db.txt" ;
    # For transliteration english char map
    var $en_char_map = array(
        "jo", "j", "c", "u", "k", "e", "n", "g", "sh", "sh", 
        "z", "h", "'", "f", "u", "v", "a", "p", "r", "o", 
        "l", "d", "zh", "je", "ja", "ch", "s", "m", "i", "t", 
        "'", "b", "ju" ) ;
    # For transliteration russian char map
    var $ru_char_map = array(
        "ё", "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", 
        "з", "х", "ъ", "ф", "ы", "в", "а", "п", "р", "о", 
        "л", "д", "ж", "э", "я", "ч", "с", "м", "и", "т", 
        "ь", "б", "ю"
    ) ;
    var $poor_list = "" ;
        function __construct() {
                # Get poor data base content
                $poor = file_get_contents($this->poor_db);
                # Create poor words colletion
                $this->poor_list = preg_split('/\n/', $poor);
            }
        # General method. $w is poor contain?
        function poorDetect($w) {
                # In this, implement some author poor detect algorithms
                # All chars to lowercase
                $w = strtolower($w);
                # All (or some) chars to russian
                $w = str_replace($this->en_char_map, $this->ru_char_map, $w);
                # Compare $w at each poor list word
                foreach( $this->poor_list as $poor ) {
                        # Trim many spaces into each word
                            $w = trim($w) ;
                        # Green detect
                         $poor = trim($poor);
                        if( preg_match("/$poor/", $w) ) {
                                # Poor, go
                                return true ;
                            } else {
                                    # Repeat
                                    continue ;
                                }
                    }
            }
}
 
?>


База данных poor_db.txt
Кликните здесь для просмотра всего текста
Код
([еЕ]+|[эЭ]+|[ёЁ]+)[бБ]+([оО]+[нН]+|[аА]+[нН]+|[аА]+|[уУ]+|[нН]+|[иИ]+)
[лЛ]+[оО]+([шШ]+([ыЫ]+|[иИ]+)|[шШ]+[аА]+|[шШ]+[оО]+|[хХ]+)
[тТ]+[рР]+[аА]+[хХ]+([нН]+|[уУ]+|[аА]+)
[сС]+[уУ]+([кК]+[аА]+|[чЧ]+[аА]+|[кК]+[иИ]+)
[пП]+[иИ]+[дД]+([аА]+|[оО]+[рР]+)
[хХ]+[уУ]+([еЕ]+|[эЭ]+|[ёЁ]+|[йЙ]+|[яЯ]+)
[чЧ]+[мМ]+([оО]+|[ыЫ]+)
[пП]+[рР]+[иИ]+[дД]+[уУ]+[рР]+[оО]+
[дД]+[аА]+[уУ]+[нН]+
[бБ]+[лЛ]+[яЯ]+[дД]+
[пП]+[иИ]+[зЗ]+[дД]+
[бБ]+[иИ]+[чЧ]+
[дД]+[иИ]+[бБ]+[иИ]+


Перед использованием класса greenDetect, необходимо разбить проверяемый текст на составляющие его слова и вызывая метод класса poorDetect проверить каждое из слов. В случае если слово не цензурное метод возвратит логическое значение true.

Каждая строка БД poor_db.txt это новое не цензурное слово в формате регулярного выражения perl.

Во вложении gd.zip файлы класса greenDetect.class.php и БД poor_db.txt

В класе введена транслитерация слова, поэтому он различает не цензурные слова написанные транслитом.
0
Вложения
Тип файла: zip gd.zip (1.2 Кб, 27 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 02:23
Ответы с готовыми решениями:

Разработать алгоритм на языке высокого уровня
Помогите разработать алгорит, составив его описание на алгоритмическом языке...

написать на простейшем языке программирования алгоритм, вычисляющий y=3x-1
операция умножения z=x*y выглядит так: z:=0; s:=0; While x&lt;&gt;0 do begin ...

Массивы. Описать алгоритм на естественном языке и составить блок-схему
Даны две задачи, для которых нужно описать алгоритм на естественном...

Реализация по PHP его алгоритм и конструкция
Здравствуйте. (я НОВИЧОК) Вот правильно ли я строю свой алгоритм и/или...

как этот код на языке с++ будет выглядить на языке php?
#include &lt;iostream&gt; using namespace std; const int LEN = 80; class...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2013, 02:23

Конвертер для перевода программ на языке PHP в текст программы на языке Assembler
Всем привет. Как можно реализовать такую задачу? Разработать конвертор в...

Реализация ветвления в языке C++
Ребят объясните почему мы вводим x,y на экран и сразуже получается...

Реализация алгоритма на языке ассемблера
Составить программу, реализующую алгоритм, пред-ставленный на рис.7.1. В ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru