Интеллектуальные средства для электронной библиотеки
Реклама i
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Интеллектуальные средства для электронной библиотеки

Интеллектуальные средства для электронной библиотеки

Ответ
Поиск в этой теме
Непрочитано 04.11.2013, 18:36 #1
Интеллектуальные средства для электронной библиотеки
Сергей Ружинский
 
Регистрация: 29.07.2004
Сообщений: 48

Мы во многом преуспели в деле оцифровки печатных информационных источников и создали огромные информационные массивы оцифрованной литературы. Настало время задуматься и о новом качественном подходе к работе с информационными ресурсами.

В настоящий момент поиск осуществляется не интеллектуально, а по поисковой лексеме (лексемам). Функции т.н. "расширенного поиска" помогают количественно, но не качественно. Совершенно отсутствует функциональность на манер "найти похожее".

Мои соображения на этот счет.

1. Все файлы должны иметь текстовый слой.

2. Тестовый слой подвергается обработке:

2.1. Предобработка:
- приведение в нижний регистр
- удаление всех символов кроме "а-я"
- подчистка за FineReader программными средствами (удаление комбинаций символов)
- подчистка за FineReadep (при помощи AfterScan)
- исправление орфографии при помощи ORFO 2014
- удаление всех слов, длиной меньше 3 символов

2.2. Нормализация слов при помощи программы Mystem

3. Создание частотного словаря

4. Десять слов с наибольшей частотой упоминания – это облако тегов данного файла, который можно использовать в качестве его сжатой смысловой характеристики для реализации функции "найти похожее".

Все вышеописанное сложно реализовать в автоматическом режиме. Но все очень легко получается при помощи псевдоавтоматического способа при помощи скрипта на AutoIt

Хотелось бы обсудить с сообществом.
Просмотров: 3796
 
Непрочитано 04.11.2013, 20:39
#2
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


А где скрипт?
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 05.11.2013, 00:03
#3
Сергей Ружинский


 
Регистрация: 29.07.2004
Сообщений: 48


Скрипта как такового пока еще нет в законченном виде. Есть работающие куски, которые нужно в кучу собрать. Как оказалось AutoIt достаточно мощный язык в плане стринговых операций, поэтому особых трудностей с реализацией я не вижу. Пока. Скорее будет задуристика с непонятками в интерфейсе используемых прикладных программ. Как это было с FineReader.

Главное, что наконец-то решение выкристализовалось. Вот и хотел его обсудить на уровне концепции.

некоторые скрипты, используемые для библиотеки выкладываю у себя тут http://www.allbeton.ru/forum/topic20994.html
Сергей Ружинский вне форума  
 
Непрочитано 05.11.2013, 10:06
#4
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


НУ во первых, обсуждение и исходные коды скрипта предлагаю опубликовать тут...
Во вторых предварительная обработка по подготовке текстового слоя, т.е. обработка исходника Файнридером в автоматическлм режиме, мною уже выполнена в одном из опубликованных мною скриптов...
Вот с последующими операциями, надо разобраться, может быть стоит обрабатывать ФайнРидером и сохранять как txt, а потом работать с полученным текстовым файлом..
Потом с помошью какой нибудь программы, подгружать данный файл в исходный, как OCR слой...
Опять же данная обработка не очень корректна будет, не будет работать выделение в исходнике и копирование куда либо.
Т.к. часть слов и букв будет исключена из тектового слоя, в общем тут думать надо...
Так же у вас ни чего не сказано по подготовке оглавления, а ведь это основное в чем надо искать, и чем удобно пользоваться...
Тут уж довольно сложно будет автоматизировать, хотя программы по полуавтоматическому созданию оглавлений есть, и довольно не плохие..
В этой теме мои проработки тоже представлены были...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Автор темы   Непрочитано 13.11.2013, 12:23
#5
Сергей Ружинский


 
Регистрация: 29.07.2004
Сообщений: 48


Цитата:
Сообщение от DEM Посмотреть сообщение
НУ во первых, обсуждение и исходные коды скрипта предлагаю опубликовать тут...
Во вторых предварительная обработка по подготовке текстового слоя, т.е. обработка исходника Файнридером в автоматическлм режиме, мною уже выполнена в одном из опубликованных мною скриптов...
С этим проблем нет. При помощи скрипта в автоматическом режиме ФайнРидер распознает прекрасно. И это пройденный этап. Условимся, что есть некий файл формата djvu у которого уже есть текстовый слой. На данном этапе этого достаточно.

Следующий этап – попытаться охарактеризовать книгу в систематический способ, создать нечто аналогичное библиотечному УДК, но только в автоматическом режиме. Я исхожу из гипотезы, что смысловое содержание книги достаточно полно характеризуется её словарным набором. Чем чаще повторяется то или иное слово в тексте, тем выше вероятность, что именно это слово характеризует смысл написанного. Как оказалось тут есть интересные неожиданности, об этом ниже.

Я предполагаю, что группа слов (к примеру 10 шт) которые наиболее часто повторяются, может достаточно точно послужить неким ключем, соответствие которому (полное или частичное – тут нужно экспериментировать) поможет найти другую книгу, с аналогичным содержанием и с аналогичным (или близким) составом наиболее употребимых слов.

Чтобы составить частотный словарь нужно почистить от мусора текстовый слой. Для этого:

1.При помощи фрагмента скрипта на AutoIt "выдергиваю" текстовый слой из djvu+OCR при помощи штатной утилиты djvused.exe, и сохраняю его в качестве самостоятельного временного txt файла. (готово)

2. Следующий фрагмент скрипта берет этот txt файл, помещает его содержимое в стринговую переменную, над которой проводится ряд "чисток" (все в нижний регистр, бинарные замены, стринговые замены, перевод из случайной латиницы в кириллицу, удаление знаков пунктации, псевдографики и управляющих кодов, лишних пробелов, коротких слов). Результаты работы сохраняю в транзитный txt. (готово, на i7 работает шустро, но уже на i3 – ощутимо тормозит)

3. Следующий фрагмент скрипта запускает AfterScan и скармливает ему txt с предыдущего этапа. (в работе)

4. Не знаю, возможно потребуется еще ORFO пройтись и поисправлять орфографию. (Буду смотреть)

5. Все вышеперечисленное – предварительный этап, перед нормализацией (превратить "бетонов", "бетоны", "бетонам" в "бетон"). Я не силен в программировании, здесь мне нужна помощь. Пока остановился на Mystem, которая к тому-же консольная поэтому её легко и просто будет использовать для получения очередного транзитного txt (еще не начинал)

6. Формирование частотного словаря и определение плотности ключевых слов. Казалось-бы сложный этап. Но удалось его решить очень красиво и элегантно парой десятков строчек кода.
(с использованием объекта Scripting.Dictionary – сам толком ничего не понял, просто слизал и оно классно работает ).

Невтерпежь сильно мучает, поэтому без 3, 4,5 этапов посмотрел чего получается. Взял 2 книги
строительная теплофизика (богословский)
строительная теплофизика (ильинский)

Книги примерно равны по объему и тематике, немножко разные акценты. Самое то, что нужно. Частотный словарь показал, что группа "воздух-температура-поверхность-ограждение-тепло" четко и однозначно "в отрыве". Т.е. гипотеза вроде подтверждается.
Что любопытно "воздух" неожиданно в сильном отрыве. И это все даже без нормализации. Любопытная особенность.

Все пока очень предварительно.
__________________
------------------
Админ Весьбетона
Сергей Ружинский вне форума  
 
Автор темы   Непрочитано 26.11.2013, 12:40
#6
Сергей Ружинский


 
Регистрация: 29.07.2004
Сообщений: 48


есть первые результаты
много инфографики, поэтому запихал все в pdf
файл получился большой поэтому выложил у себя

пока не готов комментировать – на осмыслении
взял две собственные книги и попытался вручную для них составить частотный словарь из нормализованных слов Корпуса русского языка – совпадение с результатом работы программы около 80% Считаю это очень замечательным результатом.
__________________
------------------
Админ Весьбетона
Сергей Ружинский вне форума  
 
Непрочитано 29.11.2013, 20:58
#7
Nikoshka


 
Регистрация: 29.11.2013
Сообщений: 1


Цитата:
слов Корпуса русского языка
Подскажите а что за словарь такой и почему именно с ним сравнивать?
Nikoshka вне форума  
 
Автор темы   Непрочитано 01.12.2013, 17:30
#8
Сергей Ружинский


 
Регистрация: 29.07.2004
Сообщений: 48


Национальный корпус русского языка

другого нет
этот словарь "зашит" уже в консольную программу Mystem чем упрощается преогромаднейший кусок работы по нормализации слов. Самый большой объем работы, которого я 10 лет боялся как огня оказалось возможным решить десятком строк кода управляющего скрипта по запуску Mystem, передаче ему объекта обработки и получению результатов.

Есть еще несколько программ для этого (TreeTagger, nltk, pymorphy, freeling) но все они достаточно громозки и сложны, как правило существуют в форме библиотек, с которыми нужно что-то предварительно делать (собирать, компилировать, встраивать), многие плохо или с определенными издержками работают с русским языком и т.д.
__________________
------------------
Админ Весьбетона
Сергей Ружинский вне форума  
 
Непрочитано 03.12.2013, 17:22
#9
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Сергей Ружинский
СМ. личные сообщения...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Интеллектуальные средства для электронной библиотеки



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19