Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2019, 13:58   #1
Anika_RB
Новичок
Джуниор
 
Регистрация: 19.06.2019
Сообщений: 10
По умолчанию Поиск в базе книг запрещенной литературы

Добрый день, уважаемые мастера-кодеры и начинающие эксперты.

Прошу помочь в одной, как я думаю, несложной для Вас, но очень критичной для меня проблеме.
В данный момент я нахожусь в лечебном учреждении "полузакрытого типа" в качестве обслуживающего персонала и заодно ещё получил в обязанность мониторинг за библиотекой и местным клубом.
В нашей библиотеке порядка 3500 книг, есть база всех книг в формате Excel.
Как государственному учреждению нам в прошлом году поступило распоряжение проверить весь список книг по списку экстремистской литературы.
Список выкладывается в свободном доступе на сайте МинЮста, легко экспортируется в csv, pdf.
minjust. ru /ru/extremist-materials
Мой предшественник в прошлом году собрал программу поиска, которую, как оказывается успели раздать по всей области в подобные учреждения.
Выглядит это как установщик Denwer'a, с сайтом и движками php и библиотекой phpExcel. Но сказали, что типа "недавно скрипт начал глючить" и находить лишнюю литературу. Проверили - находит в списке литературу, не указанную в списке.
Как всегда и бывает в нашей стране мне просто поставили задачу к пятнице сделать рабочую версию.
Программирование я вообще учил уже 20 лет назад, вроде суть понимаю, но разобраться в такие сроки никакой возможности нет. Да и php как такового у нас не было.

В общем, в денвере простой сайтик с 5 функциями:
1. загрузка файла библиотеки книг (в формате xls)
2. загрузка файла запрещенной литературы (там указано, что нужно сохранить файл в формате txt)
3. проверка библиотеки онлайн с сайта минюста
4. проверка библиотеки оффлайн по подгруженной базе запрещенных книг (из п.2)
5. создание книжных карточек (вообще не важна)

каждая функция на отдельном .php файле.

Как я понял весь скрипт поиска умещается в следующий фрагмент:
/////////////////
function _found_book($book_name){
global $books_txt;
if (strstr($books_txt, $book_name)){
return true;
}
return false;
}
/////////////////
Все остальное - работа с выдачей и подгрузкой переменных во внутренние массивы данных.


Проблема в том, что на сайте минюста куча мусора в базе: лозунги, интернет ресурсы, страницы ВК, посты ЖЖ и т.п.
И то, что попало туда выдается потом в выдаче поиска по списку запрещенной литературы.

Не знаю, как правильно сделать "умную" выборку: возможно, отфильтровать список с минюста, чтобы там остались только печатные издания, а при совпадении названия ещё смотрелся и автор.

Уважаемые пользователи! Знаю, что для вас это сверхтривиальная задача, хотя может кому и интересно будет потратить несколько минут на поиск решения. Очень прошу помочь сделать рабочий алгоритм. В этом же формате (php с денвером), любом другом: исполняемый файл, макрос экселя, что угодно, лишь бы я мог дать готовое рабочее решение, которое будет работать со следуюющими исходными данными:
1. Excel база книг библиотеки:
№ п/п № в реестре Название Ф.И.О. автора
2. Список экстремисткой литературы с сайта МинЮста.

На выходе должны найтись совпадения со списком книг и их данными из п.1



Очень прошу помочь. Сами понимаете, что подобная работа не позволяет мне жить на широкую ногу, но работа эта очень нужна, а положение будет расшатано, если я не справлюсь с этой проблемой. В предыдущем предложении описывается и причина, по которой я не могу нанять кодера для написания скрипта =( Но при первой же возможности отблагодарю автора рабочего решения.

Искренне надеюсь на Ваше понимание и содействие.
Прикладываю сразу весь пак:
1. папку с сайтом из денвера с библиотекой phpExcel
2. список книг библиотеки
3. список запрещенной литературы
dropmefiles . com/G6XjC

Дабы не перегружать пост не стал сюда выкладывать весь код, если кому-то совсем неудобно скачивать: выложу под спойлером.
Anika_RB вне форума Ответить с цитированием
Старый 19.06.2019, 15:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Добрый день.
Посмотрел я Ваш архив.
да, там не поиск, а фигня.
ищется по наличию названия произведения (без автора) в тексте blocklist.txt
разумеется, что, например, книжка 12 с названием "Стихотворения"
(Гнедич, 1956 год), легко находится в строчке
Цитата:
Стихотворения Л. Корнилова «Достали!»
что характерно, даже номер записи в файле "список экстремистских материалов на май 2019" там неверный!! Должен быть 4831, а там опечатка 48431
но это мелочь. Просто характерная черта.

а проблема в том, что файл ""список экстремистских материалов" (он же blocklist.txt) — это смесь носорога и бульдога. Он натыкан из решений судов и не имеет никакого отношения к процессу автоматизации.
и проблема в том, что если сделать поиск нормальный (более строгий, добавить, например, совпадение по автору), то высокая вероятность пропустить книгу, которая есть в списке запрещённой литературы.
пример.
в списке запрещённой есть запись "Книга автора Миронова Б.С. «Русский национализм»...."
если у нас в списке книг есть автор Б.С.Миронов, то, очевидно, что "Миронова Б.С." не будет найдена.
и книга будет пропущена.

но, по крайней мере, ложные срабатывания уменьшатся.
Вам такое нужно?

p.s.
правильно писать Книжная картотека
p.p.s у Вас ещё беда с кодировками. Нужно все PHP файлы перевести в кодировку UTF-8
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 15:21   #3
Anika_RB
Новичок
Джуниор
 
Регистрация: 19.06.2019
Сообщений: 10
По умолчанию

Если уберутся ложные срабатывание - не беда. Это уже 90% успеха.
Я сам вижу, что куча мусора этих решениях судов и прочем, но администрация области поставила задачу проверять по этому списку =( И тут уже бюрократическая волокита .. Меня бы устроило в любом виде, лучше чем этот.
Думаю, мой предшественник сделал что-то чтобы отстали, показал, что работает и уволился благополучно ..

В общем, буду очень благодарен за любой алгоритм, который даст результаты лучше представленного
Anika_RB вне форума Ответить с цитированием
Старый 19.06.2019, 15:28   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ладно, я попробую немного изменить сравнение.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 17:51   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Anika_RB Посмотреть сообщение
уволился благополучно
так и вы бегите )
Цитата:
Сообщение от Anika_RB Посмотреть сообщение
Если уберутся ложные срабатывание - не беда
В смысле не беда? Они ж как раз и не нужны.

Вообще в любых системах классифицирующих что-то обычно надо решить в какую сторону перекос нужен: минимизировать ложные срабатывания (false positive) или минимизировать ложные пропуски (false negative).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.06.2019, 18:09   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

не проверял.
Вложения
Тип файла: 7z book_check.7z (126.7 Кб, 16 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2019, 19:53   #7
Anika_RB
Новичок
Джуниор
 
Регистрация: 19.06.2019
Сообщений: 10
По умолчанию

upload_minfin.php выдает Parse error: syntax error, unexpected '[' in K:\home\books\www\upload_minfin.php on line 26.

Покопаюсь попробую исправить, конечно, но пока безуспешно.
В любом случае, спасибо огромное за Ваше время.
Anika_RB вне форума Ответить с цитированием
Старый 19.06.2019, 19:54   #8
Anika_RB
Новичок
Джуниор
 
Регистрация: 19.06.2019
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
так и вы бегите )

В смысле не беда? Они ж как раз и не нужны.

Вообще в любых системах классифицирующих что-то обычно надо решить в какую сторону перекос нужен: минимизировать ложные срабатывания (false positive) или минимизировать ложные пропуски (false negative).
Автор выше указал :
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
но, по крайней мере, ложные срабатывания уменьшатся.
Вам такое нужно?
На это я ответил, что это уже 90% успеха в данной ситуации, потому что на какой-либо интеллектуальный парсинг я и не надеялся особо.
Anika_RB вне форума Ответить с цитированием
Старый 19.06.2019, 20:01   #9
Anika_RB
Новичок
Джуниор
 
Регистрация: 19.06.2019
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
так и вы бегите )
Я в таком месте, где особо вариативность не блещет. Но ныть не привык. Это место мне нужно, в данный момент оно меня полностью устраивает и даёт шанс учиться и саморазвиваться. Плюс социально полезная работа, приятно мне людям помогать. Оффтоп и лирика.
Anika_RB вне форума Ответить с цитированием
Старый 19.06.2019, 20:03   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Фраза "если уберутся ложные срабатывание - не беда" очень странная.
Из нее складывается впечатление, что вы не поняли что такое ложное срабатывание.
Ложное срабатывание (false positive) это когда система посчитала какое-то безобидное произведение запрещенным.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск литературы terex12 Помощь студентам 1 09.10.2013 11:56
поиск литературы по 3d max terex12 Свободное общение 3 09.10.2013 11:04
Генетические алгоритмы [Поиск Литературы] MooNDeaR Свободное общение 1 17.01.2012 23:41
Поиск литературы по клиент-серверным приложениям Aleksandr_Yanov C/C++ Базы данных 0 25.02.2011 22:48