|
|
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Добрый день. Мне нужно решить такую задачу. Есть коллекция документов Word в которых содержится описание технологического объекта. Структура документов похожа, но может немного отличаться. Например: есть таблица со значениями параметров работы объекта по датам. Количество записей в таблице отличается в зависимости от времени работы объекта. Если объект останавливался, то в документе присутствует текст с описанием причины остановки, а после этого опять стандартная таблица с параметрами работы по времени. Есть исходные примеры (паттерны) с выделенными фрагментами информации в документе. Например, с помощью цвета. Мне нужно аналогично раскрасить остальные документы. Т.е. по аналогии идентифицировать фрагменты в остальных документах. Тут напрашивается использование нейросетей или чего-нибудь еще. Мне нужно наиболее простое, но работающее решение, которое должно быть как бы универсальным, т.е. его можно было адаптировать для решения такой же задачи с другими видами документов. Проблема в том, что выделяемые фрагменты в документе могут быть вложены в друг друга. Например: Код: plaintext О условиях решения данной задачи договоримся. Пишите на: Youra_Polishuk@bk.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2011, 11:38 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Youra Polishuk, в документа Ворд строго 1 таблица? Прикрепите документ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2011, 12:08 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, Нет. Таблиц будет столько сколько раз будет остановлен технологический объект. Решении должно быть универсальным, чтобы такую же разметку делать и для других документов. Естественно с настройкой. Т.е. натренировал прогу на новом виде документов и она стала размечать их содержимое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2011, 14:24 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Позвольте высказать мнение эксперта, чтобы остеречь некоторые горячие головы) МОфис и нейросети - вещи несовместимые. С другой стороны Вы ожидаете универсального решения. Универсальным он может быть лишь настолько, насколько будет специфицирована задача. Шаг задачи в сторону от спецификации, и вся универсальность поползла ... Распознавание паттернов в общем случае, в т.ч. и нейросетевыми метододами строится явно или неявно по одному базовому принципу. Готовится БД эталонов, определяется набор преобразований, которми допустимо видоизменять эталоны. После чего поступающий паттерн сравнивается с полученными эталонными вариантами и находится "максимально близкий" (критерий близости подбирается). При некоторых условиях можно динамически модифицировать эталонную БД вместе с правилами её преобразования. Приготовьтесь, что будут присутствовать ошибки распознавания. Это автору. Возвращаясь к задаче. Если вольность в структуре документов высокая, программа будет похожа на действия поисковика - может Вам в Яндекс обратиться? Если варианты внешнего вида паттернов ограничены и достаточно просты (Вас просили озвучить эти правила), возможно достаточно обойтись сбором статистики на все возможные комбинации (например можно определить комбинации в виде правил). Про универсальность решения - см. выше. Как-то так. А коллегам - дерзайте! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2011, 15:42 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
exp98, Спасибо за советы. Я это знаю. Моя задача заключается в следующем. Я размечаю содержимое однотипных документов тегами XSD схемы. Нужно сделать это автоматически. Документы очень похожи, так как содержат описание технологического объекта. Разница в порядке слов и количестве записей в таблицах, а так же количество таблиц в документе. Можно сказать задача должна быть решена для почти идеальных документов. Я мог бы сделать это с помощью программы, но это будет выглядеть плоховато. Мне нужен как бы универсальный алгоритм. Я думаю, что нейросеть подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 20:42 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Youra Polishuk, Я мог бы сделать это с помощью программы, но это будет выглядеть плоховато. а чем же не плоховато?? Как Вы лодку назовёте так она и поплывёт, уже бы выложили файл-пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2011, 20:51 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, Приложил пример. Чтобы увидеть теги нужно в ворде нажать Ctrl+Shift+X. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2011, 10:38 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Youra Polishuk, универсальный алгоритм для Вашей задачи - транслятор программного кода. Вот в этом стиле и нужно писать программу, а нейросети, ну, Вы видимо понаслышке знаете. Тем более, что в основном выделять нужно только числа, и лишь по месту их расположения окаймлять эти места дополнительными тегами. Формально описываете грамматику своей задачи и по ней строите транслятор. Подумайте, как транслятор распознаёт конструкцию вида for i = xxx begin s = 34; dd= 55 end else /* переходим на вторую часть */ goto metka1 end for ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 15:47 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
exp98, Спасибо за советы. Я понял Ваш вариант решения, но думаю, что сам я не справлюсь с написанием такого транслятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2011, 19:54 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
А попытка - не пытка (с) Главное, не надо сразу бросаться писать if-else и т.д. Немного подумать, почитать как это делается в принципе ... Лет 15-17 назад я с бухты барахты кому-то курсовую или лаб написал. Нужно было кажется переводить тексты пограмм на Паскале в тексты на Си, коряво, но написал, меньше чем за неделю. Рекурсивные вызовы очень помогают) А уж теперь наверняка об этом в инете есть. Моё мнение, что Ваша задача распадается на 3 отдельные части, коорые можно создавать независимо: -Работа с текстом и объектами Ворда -составление формальной грамматики, т.е. допустимых правил компоновки текстов -собственно программа по разбору грамматики и отображению текста в иерархическую структуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 11:09 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
exp98, Для себя я у же сделал :), алгоритм примерно такой, каждому тегу соответсвует набор определенных условий, находим условие, ставим тег, и так со всеми тегами схемы :) предложение отправил по почте........... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:21 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
R Dmitry, смарт-тегами попахивает, Вы лично смарт теги делали?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:52 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, зачем их делать если есть готовая схема ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 18:01 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
R Dmitry, Вы лично хоть раз этой схемой пользовались, получалось?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 18:10 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, Не знал бы, не писал... . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 22:59 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюR Dmitry, Вы лично хоть раз этой схемой пользовались, получалось?? Бабулька в автобусе: - Милок, ты на следующей выходишь? - Да - А те, кто перед тобой, выходят? - Да - А ты их спрашивал? - Да - И что они ответили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 23:21 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
R Dmitry, ОК, я Вас за язык не тянул, создам свою ветку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 11:06 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович ЭндрюR Dmitry, ОК, я Вас за язык не тянул, создам свою ветку Вам впору свой форум создать а делается это совсем просто, примерно так, схема старт топика Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 12:27 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
R Dmitry, может не будем мешать автору, обойдёмся без паттерна и перейдём в тот топик ActiveDocument.XMLNodes.Add "Root", "urn:well" 'получаю ошибку 6168 перед применением элемента необходимо присоединить его схему к документу 'что за ересь?? Для чего эта строка?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 12:37 |
|
||
|
Идентификация фрагментов документа на основании паттерна
|
|||
|---|---|---|---|
|
#18+
Ципихович Эндрю, читайте внимательней 11258054 , и вроде по русски написано ?? "перед применением элемента необходимо присоединить его схему к документу" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 12:46 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37425495&tid=2176508]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
| others: | 214ms |
| total: | 479ms |

| 0 / 0 |
