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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 02:36   #1
mykky_
 
Регистрация: 29.09.2009
Сообщений: 7
По умолчанию Помогите сравнить документы

Всем привет! Интересует такая задача.

Есть два документа. Я сравниваю их в Word. В результате Word мне покажет,
чем эти документы отличаются. Вопрос: как посчитать количество знаков в этих отличиях (т.е. найти своего рода "объем отличий") ?

Вопрос не праздный. Он нужен, например для оценки объема выполненного копирайтинга статьи (это когда одну статью пересказывают другими словами и нужно оценить, насколько много этих самых "других слов").

Или оценить качество работы электронного переводчика: можно взять правильный перевод текста, результат обработки его "переводчиком", сравнить оба варианта. В данном случае "объем отличий" – прекрасная оценка качества работы программы. Чем этот объем больше, тем хуже работает переводчик. Ну, и т.д.

Помогите, кто чем может...

Всем спасибо.

Николай

Последний раз редактировалось mykky_; 29.09.2009 в 02:40.
mykky_ вне форума Ответить с цитированием
Старый 29.09.2009, 13:37   #2
MJK
Новичок
Джуниор
 
Регистрация: 29.09.2009
Сообщений: 1
По умолчанию

Что-то было на форуме про revision. но кажется, никто толком ничего не предложил. надо подумать.
MJK вне форума Ответить с цитированием
Старый 29.09.2009, 16:49   #3
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

http://www.inf.tsu.ru/library/Diplom...hov/diplom.pdf
Aent вне форума Ответить с цитированием
Старый 29.09.2009, 17:07   #4
To4H9IK
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 15
По умолчанию

когда не было компьютеров всё считали в ручную((((
To4H9IK вне форума Ответить с цитированием
Старый 01.10.2009, 07:53   #5
mykky_
 
Регистрация: 29.09.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от To4H9IK Посмотреть сообщение
когда не было компьютеров всё считали в ручную((((
Мысль так же правильна, как и очевидна... Когда не было лопаты и копали носом... Шутка. Кстати, "вручную" пишется вместе.

Ок. А кто подскажет, как посимвольно сравнить два документа Word? В обеих документах при сравнении оставить ТОЛЬКО одиночные пробелы?

Всем спасибо.

Последний раз редактировалось mykky_; 01.10.2009 в 07:55.
mykky_ вне форума Ответить с цитированием
Старый 01.10.2009, 08:55   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от mykky_ Посмотреть сообщение
А кто подскажет, как посимвольно сравнить два документа Word? В обеих документах при сравнении оставить ТОЛЬКО одиночные пробелы?
Алекс.

Я же в руководстве вчера почитал — про побайтное сопоставление. Сложно.

В DOS’е была фунция COMPARE, но каков её аналог... не знаю.

Может, в Word’е использовать свойство ActiveDocument.Content? Но документов-то 2.

Лучше не посимвольно — а пословно! При чём тут пробелы, нам же слова нужны.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 01.10.2009, 13:37   #7
mykky_
 
Регистрация: 29.09.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Алекс.

... "Лучше не посимвольно — а пословно! При чём тут пробелы, нам же слова нужны."
Да, честно говоря, не уверен. Если оценивать работу переводчика, то нужно видеть ошибки в склонениях, например.

Ведь смысл в чем?
Есть эталонный документ, переведенный экспертом. Есть документ, переведенный программой "А". Модуль сравнения показал, что эти документы отличаются 1000 символов. То есть для того, чтобы привести текст в порядок, пользователю переводчика "А" придется исправить 1000 знаков. Иными словами, 1000 раз нажать на кнопки... И пробелы тут считать не нужно! Пробелы переводчик не переводит.
Потом взяли программу "В", перевели ею тот же текст. Получили оценку "600 знаков". Вывод очевиден. Особенно, если накопить статистику применительно к определенной тематике.

Так что, похоже, нужно считать по знакам. Иначе ошибка оценки будет велика. В слове из 10 символов нужно исправить две буквы, в сравнение покажет, что править придется все слово! Погрешность 80%...

Последний раз редактировалось mykky_; 01.10.2009 в 13:46.
mykky_ вне форума Ответить с цитированием
Старый 01.10.2009, 16:52   #8
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Переводы, думаю, надо сравнивать обдуманно, «вручную».

Мама моет раму:
1. Mama clears window frame (так по-детски).
2. A mother dusts a pane (стекло).
И даже 3. Madam washes a chassis.

Всё определяется живым восприятием конечного потребителя.

А при пословном сравнении ещё надо как-то влияние порядка слов исключить.

Последний раз редактировалось Sasha_Smirnov; 02.10.2009 в 02:50. Причина: убор ё.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 01.10.2009, 17:03   #9
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Цитата:
Сообщение от mykky_ Посмотреть сообщение
И пробелы тут считать не нужно! Пробелы переводчик не переводит.
...
Так что, похоже, нужно считать по знакам.
Дело в том, что пробел, да и любой знак препинания, считается символом, и он будет подсчитан VBA. Значит, придется делать исключения этих символов из подсчета.
Теоретически, при сравнении двух документов, создается третий документ (если выбрана такая опция) с пометками удаленных фраз (слов, знаков...) или добавленных фраз. Может быть как-то сравнивать, исходя из этих пометок? Но опять же, удаляются не только знаки, но и меняется форматирование...
Для меня это слишком сложной кажется задача.
akokin вне форума Ответить с цитированием
Старый 02.10.2009, 02:31   #10
mykky_
 
Регистрация: 29.09.2009
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Переводы, думаю, надо сравнивать обдуманно, «вручную».

Мама моёт раму:
1. Mama clears window frame (так по-детски).
2. A mother dusts a pane (стекло).
И даже 3. Madam washes a chassis.

Всё определяется живым восприятием конечного потребителя.

А при пословном сравнении ещё надо как-то влияние порядка слов исключить.
О-о...
Прошу прощения, по-моему я народ запутал.

Речь не идет о художественной составляющей перевода. Хотя и в этом случае критерий работает однозначно. Какая в конце концов мне разница, как именно должна звучать фраза "мама моет..." по-английски? У меня есть тот вариант, который ДОЛЖЕН БЫТЬ. Его перевел человек. Этот перевод назовем "эталоном". И есть вариант, полученный автоматическим переводчиком. "Живое" восприятие исходного текста есть в эталоне! А я хочу всего лишь определить, какую работу придется проделать над автоматически переведенным текстом, чтобы привести его к этому самому эталону. То есть – сколько раз нажать на кнопки. И все!

Увы, я не пишу программ более 20 лет. В классике эта задача решалась двумя последовательными циклами. В каждом по 5-10 операторов, не более! Первый - удалить из двух текстов пробелы и знаки препинания. Второй цикл – по байтам сравнить два файла и напечатать результат в виде одного числа...

Как это сделать в Ворде - я просто не знаю.. Вот в чем вопрос.

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

Последний раз редактировалось mykky_; 02.10.2009 в 02:33.
mykky_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не открываются документы Евген Microsoft Office Excel 3 17.11.2015 21:41
Помогите пожалуйста сравнить два столбца ddimma Microsoft Office Excel 4 16.01.2009 09:01
Ув.Специалисты помогите сравнить списки lelik759 Microsoft Office Excel 2 25.09.2008 00:34
помогите! как сравнить BMP файлы? lenivec Мультимедиа в Delphi 20 14.11.2007 21:47