|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
|
Работа с текстом и диаграммами06.07.2011, 13:24. Показов 4040. Ответов 16
Метки нет (Все метки)
Доброго времени суток.
Стоит задача написания алгоритма и выбор среды его реализации. Хочется услышать любые советы и комментарии - каким инструментом воспользоваться, может кто-то знает примеры подобных алгоритмов и т.п. (сама - не нашла). Время ограничено, а потратить его и узнать, что колесо давно изобрели, будет обидно. Итак. Постановка задачи.
Цель. Диаграмма должна автоматически "изменяться за текстом". Если не полностью, то хотя бы должны отмечаться элементы диаграммы к удалению/добавлению. Абстрагируемся, и предположим, что начальная постановка задачи не накладывает ограничение на используемое ПО, среды, методы... Работа, затрагивающая выявление изменений в тексте, в данном случае, по моему мнению, сводится к применению аппарата строкового анализа. А вот к чему сводится добрая половина работы, касающаяся диаграмм? Вопросы. Какими средствами можно с меньшими усилиями реализовать данную задачу (а еще у'же - организовать "связь между диаграммой и текстом, по которому она построена"? Стоит ли использовать офисное программирование? Например, выполнять диаграмму в MS Visio (MS Word-таки убогий в этом плане) или OO.o и дописывать функционал в VBA/StarBasic? Или, может, имеет смысл решат задачу отдельно в "полноценной" среде программирования? - Но как тогда распознавать отдельные части диаграммы во входном файле для дальнейшей манипуляции с ними? Или, может, организовать подгрузку того же Visio/OO.o средствами среды... Есть или нет такая возможность? Нужны рекомендации. Я в начале "пути" и не знаю, с какой стороны взяться за решение. Спасибо.
0
|
|
| 06.07.2011, 13:24 | |
|
Ответы с готовыми решениями:
16
Работа с диаграммами
Работа с диаграммами - обновление вместо добавления |
|
49 / 15 / 2
Регистрация: 20.02.2011
Сообщений: 152
|
||||||
| 06.07.2011, 18:22 | ||||||
|
не знаю какую диаграмму можно построить по тексту,
но предлагаю след алгоритм расстояние Левенштейна (динамическое программирование) Дана текстовая строка. С ней можно выполнять следующие операции: 1. Заменить один символ строки на другой символ. 2. Удалить один произвольный символ. 3. Вставить произвольный символ в произвольное место строки. Например, при помощи первой операции из строки "СОК" можно получить строку "СУК", при помощи второй операции - строку "ОК", при помощи третьей операции - строку "СТОК. Минимальное количество таких операций, при помощи которых можно из одной строки получить другую, называется стоимостью редактирования или расстоянием Левенштейна. например для 2 строк ABCDEFGH , ACDEXGIH расст Левенш будет 3 код на java
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
|
| 07.07.2011, 09:29 [ТС] | |
|
videolord, спасибо за ответ, но с расстоянием Левенштейна я знакома, и не только с ним, а еще с косым десятком способов определения расстрояний. Вопрос не в функциях для работы с текстом как со строкой - ясно, как найти, что изменилось в тексте. Вопрос в том, какой аппарат (алгоритмический, программный, языковой) лучше использовать для работы с диаграммами (?):
- организовать программную вставку/удаление определенных элементов диаграмм (можно ли работать с подгруженной диаграммой, выполненной, например, в Visio; как распознавать различные примитивы в Visio - или другом ПО), - организовать вставку текста в эти элементы диагрмм (примитивы), - организовать возможность определения точек соединения на диаграмме и пр. Вобщем, как автоматически "ответ", полученный после анализа текста как строки, преобразовать в нужный примитив - найти его на диграмме и удалить (если он ненужен), или открыть определенную диграмму и добавить новый примитив (если он его ранее не было в тексте-описании). В каком формате, проще и удобнее представлять эти диаграммы?.. - вот о чем тема
0
|
|
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
|
| 27.07.2011, 07:15 [ТС] | |
|
Тема все еще актуальна. Буду признательна за любые советы.
0
|
|
|
Почетный модератор
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
|
|
| 27.07.2011, 08:48 | |
|
Что-то похожее на редактор блок-схем по коду программы, типа FCEditor, DiamFm, Blokshema и др.
1
|
|
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
|
| 27.07.2011, 09:13 [ТС] | |
|
Puporev, да, похоже.
Только текст здесь - обычный повествовательный на естественном языке. А диаграммы - не блок-схемы в привычной нотации, а скорее организационные карты, м.б. диаграммы деятельности, потоков работ - не суть, надо понять принцип - на чем и на базе чего писать, что с чем взаимодействовать будет и т.п. За список редакторов спс - м.б. найду описания к принципам их работы и что-то выужу из этого.
0
|
|
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
||
| 27.07.2011, 17:44 | ||
1
|
||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
||
| 28.07.2011, 04:59 [ТС] | ||
|
Airhand, тема и создана для того, чтобы узнать, как лучше.
Вообще планировалось следующее. Первый проход по тексту: "вручную" пользователь отмечает слова/словосочетания, которые принадлежат к разным "блокам" диаграммы. Делать это придется в любом случае, т.к. первой диаграммы вначале работы пользователь не имеет и строит ее (на данный момент) - также вручную, читая текст и выуживая "суть". Т.е. этап останется точно таким же, только с пользователя будут стребоваться "отметки" в тексте - какой кусок текста в какой блок был включен. Дальнейшие проходы: решено обойтись "механическим" анализом строк - меньшей кровью, по сравнению с лингвистическим анализом; Текст уже на этот момент изменился. Измененный и первоначальный текст приближенно сравниваются. Возможно, не полностью, а только на предмет "целевых" слов/словосочетаний. Определяется, изменились ли формулировки: - если формулировка удалилась, надо отождествлять ее с блоком на диаграмме и блок удалять; - если формулировка добавилась, она вырезается из текста и демонстрируется пользователю - чтобы он сам определил, что с ней делать (в т.ч. пометил ее новую принадлежность к какому-то блоку диаграммы); - если формулировка изменилась - ... - меняется содержимое соответствующего блока. Конечно, все должно делаться не "раз и навсегда", а перед этим демонстрироваться пользователю и интересоваться его согласием. Добавлено через 5 минут Основная проблема в том, что имеются горы текста, и по ним пользователи строят внеавтоматизированном режиме тучу диаграмм. А содержание гор текста изменяется с завидной периодичностью. И нужно в автоматизированном режиме отследить, где же произошло изменение в тексте и хотя бы полуавтоматически внести это изменение в диаграмму (хотя бы добавить на диаграмму соответствующий блок с текстом, связи пользователь установит сам). В чем чертить диаграммы - пользователям не важно. Поэтому интересуюсь всем, с самого начала - на базе чего лучше начинать делать, какого редактора? - склоняюсь к Visio.
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|||
| 28.07.2011, 11:47 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
||
| 28.07.2011, 12:08 [ТС] | ||
|
1. Есть текст: "Мама мыла раму". Пользователь должен построить по нему диаграмму. Первый раз он это делает самостоятельно - и как верно было замечено, никто за него это не сделает. 1.1. Пользователь использует определенную нотацию для создания диаграммы. Нотация известна. Все элементы этой нотации перечислены (например, прямоугольный блок, овальный блок, стрелка и т.п.). В соответствие элементам нотации поставлен, например, цвет (красный - прямоугольный блок, синий - стрелка... и т.п.). Можно не использовать цвета, а создать таблицу и наполнять ее: в зависимости от того, куда в таблице пользователь отнесет фрагмент текста, ему присвоятся соответствующие свойства. 1.2. Пользователь просматривает текст и отмечает (как ему надо, в соответствие с определенной нотацией) только те элементы, которые будут принимать участие в диаграммах. Пример: "маму" отмечает красным, "мыла" - синим, "раму" - красным. 1.3. Происходит автоматическая генерация диаграммы. Блоки в нужном количестве и качестве добавляются на лист (2 прямоугольных и 1 стрелка в нашем примере). Блоки наполнены содержимым - текстом. 1.4. Пользователь вручную соединяет блоки между собой. Как это необходимо. 2. Происходит изменение текста. Новый текст: "Мама и Вася моют раму". 2.1. Старая строка текста сравнивается с новой. Выясняется, что добавилось: "и Вася", "моют" вместо "мыла". 2.2. Пользователю демонстрируются изменения в тексте (извлекаются, а лучше даже подсвечиваются внутри остального текста). 2.3. Пользователю предлагается принять решение - что делать с изменениями в тексте? - пометить их как новые части диаграмм или проигнорировать. 2.4 Вместо "мама" пользователь отмечает красным "мама и вася".... Вместо "мыла" - "моют". 2.5. Генерируется новая диаграмма. 2.6. Пользователь вручную повторяет действия из п. 1.4.
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|||
| 28.07.2011, 12:22 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
|||
| 28.07.2011, 12:27 [ТС] | |||
Это очевидно. Если все входящие в диаграмму элементы будут отмечены пользователем. А весь новый появившийся текст - просто идентифицирован и отдан пользователю на откуп, что с ним делать - помечать и включать в диграмму или нет, решать пользователь будет сам. Меня интересует, реализуемо ли в принципе то, что я описала в посте с "мамой". И на базе чего луше реализовывать. Какой редактор лучше использовать для сохранения и последующего открытия для редактирования диаграмм, в какой среде писать...
0
|
|||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|||
| 28.07.2011, 12:38 | |||
1
|
|||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
||
| 28.07.2011, 15:57 [ТС] | ||
|
Передо мной не стоит задача контроля целостности диаграммы и ее синтаксической правильности (относительно какой-л. нотации). Задача: - в автоматизированном режиме выявить изменения в тексте (чтобы пользователь в рукопашную не шерстил и не сверял каждую строку), - дать пользователю возможность просмотреть выявленные изменения и пометить текст для новых блоков диаграмм, - "набросать" в окно редактирования старой (построенной пользователем) диаграммы новых блоков с новым текстом, не связанных между собой.
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
|||
| 28.07.2011, 16:09 | |||
1
|
|||
|
0 / 0 / 0
Регистрация: 06.07.2011
Сообщений: 15
|
||
| 28.07.2011, 16:25 [ТС] | ||
|
А "как" именно пользователь "выберет" поправить диаграмму в очередной раз, информационной системы не должно касаться: сохранила результат, закрыла окно и усё :cofee2: И почему получается "куча"? Если диаграмма открывается и редактируется 1 раз. Чего-то я недопонимаю. Но это все нюансы того "как". А на чем? На базе какого редактора делать? - Visio / OO.o. Печалька.
0
|
||
|
537 / 459 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
|
||
| 28.07.2011, 18:10 | ||
|
Не знаю на чём делать. Можно хоть на С.
Добавлено через 1 час 40 минут
0
|
||
| 28.07.2011, 18:10 | |
|
Помогаю со студенческими работами здесь
17
Работа с диаграммами: при создании графика непроизвольно появляются ряды данных
Вывести слова, стоящие до и после взятого слова Заданный текст распечатать по строкам
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|