Автор / Сообщение

Скрипт для определения количества слов в документе

Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Fri Mar 05, 2010 6:45 pm     Заголовок сообщения: Скрипт для определения количества слов в документе

В общем, пораженный усидчивостью М., я набросал на скорую руку скриптик который в Ворде считает выбранное слово.

Выбираете нужное слово, компьютер думает и выдает число находок этого слова во всем документе.

1. В общем, скачайте вот этот вордовский документ:
http://pratchett.org/Portals/0/userpix/Pioner/CalculateWords.doc

2. Откройте файл. Ворд может начать ругаться, что там есть макросы, которые могут быть вирусы и т.п. Разрешите макросы, макрос написан мною.

3. Выйдете в меню (по-английски, по-русски не помню, у кого есть русский Ворд, подскажите, пожалуйста). Tools->Macro, в списке макро выберете SkolkoSlov и нажмите Run.

3. Вставьте в этот документ слово для поиска количества находок. Нажмите ОК.

4. Может уйти большое время, зависит от мощности компа и объема документа, я там ничего не оптимизировал (даже не знаю, можно ли там соптимизировать). При этом с компом как будто ничего не происходит. Не дергайтесь, подождите, в крайнем случае выпейте чаю. Но все равно должно быть быстрее чем вручную. В общем, получите результат, который можете записать. Наверное сначала попробуйте на маленьком объеме, чтобы представлять, сколько примерно надо будет ждать.

В принципе, в дальшейшем, если есть необходимость, можно усложнить скрипт, чтобы искал целый ряд слов из таблицы Экселя, и заполнял, сколько найдено, или даже просто чтобы подсчитал количество каждого слова, найденного в документе. Скажите если это надо, я попробую.

На счет footnotes и т.п. я не проверял, ищет ли там, я поверхностно знаю модель объектов Ворда.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Sat Mar 06, 2010 1:25 am     Заголовок сообщения:

В данный момент скрипт находит просто встречаемость конкретного слова, если надо искать несколько слов, то процесс надо повторять.

Мне кажется, можно написать еще один скрипт, который будет более мощным. Тут есть 2 варианта:

Вариант 1: Вордовский документ и табличка Экселя. В табличку экселя, по шаблону, вносятся слова для поиска (практически неограниченно), программа ищет и находит встречаемость каждого слова.
Плюсы - проста использования, относительно быстро получаешь результаты. Минусы - если нужны другие результаты - процесс надо повторить.

Вариант 2: Вордовский документ и файл Access. Можно и с Экселем это сделать, но будет очень медленно, да и муторно писать. Скажем так, запускаешь программу, и идешь спать, к утру (я не знаю как быстро будет работать) получаешь готовую таблицу встречаемости каждого слова во всей книге.
Плюс, получаем готовый результат раз и навсегда, можно смотреть уже самим по самым разным словам. Минус - сложность, не у каждого есть Аксесс, да и долгое время обработки.

Что думают люди, если усовершенствовать, в каком направлении лучше?
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Wed Mar 10, 2010 6:34 pm     Заголовок сообщения:

скрипт почти написан, сейчас его испытываю.

Для ускорения проверки документа я отбрасываю все слова из одной и двух букв, а так же всякие предлоги, артикли и т.п.

Вот список:
"and", "not", "but", "out", "was", "with", "what", "the", "then", "can", "may", "under", "for", "how"

есть еще идеи, чем пополнить список?
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Nanny Ogg



Зарегистрирован: 09.02.2005
Сообщения: 14331
Откуда: Ланкр, что на Плоском Мире
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 1:42 pm     Заголовок сообщения:

Пионер вчера мне скинул экселевский файл, в котором просчитаны его прогой "The Nation" и "Color of Magic".

Он был ваще в таком энтузиазме, ух!
Отслеживал обсчет и прям в процессе все мне про него рассказывал! Laughing

И я его понимаю, честно говоря -- данные могут получиться очень интересными, и притом их можно будет "копать" и интерпретировать самыми многообразными способами.
(Именно за это некоторые и причисляют статистику к третьей и самой зловредной разновидности лжи -- данными можно жонглировать всячески Wink )
Просто Клондайк для литературоведов и лингвистов. Ведь прога не только для анализа книг ТП может использоваться.

Но надо чуток подчистить имеющиеся уже данные -- и составить список игнорируемых слов (чтобы чуть сократить время обработки).

Ну, артикли, разумеется, можно спокойно отбросить. Или нет?

Также можно отбросить все считаемые отдельно точки, многоточия, ряды последовательно поставленных восклицательных и вопросительных знаков... Или нет? В "Маскараде" они играют свою роль -- тогда их нужно считать и в других книгах, для сравнения.

Основные предлоги (on, in, into. at, to, up, down)? Или что-то может оказаться интересным, по вашему?

И насчет местоимений -- они неинформативны, или можно, ориентируясь на то, какие именно употребляются чаще, как-то судить о творческом стиле Прэтчетта? Допустим, свойствен ли его текстам в большей мере (и/или для каких произведений) прямой диалог, внутренний монолог, описание от третьего лица...

Что делать с именами собственными -- особенно если это слова типа Smith, Brown, Baker и проч.

Что делать со служебными словами типа "will", "would", "shall", "should", "can", "could", "may", "might"? (Особенно если учесть, что "will", "can", "might" могут быть не только модальными глаголами, но и очень важными существительными...)

Как вообще разделять омонимы? Возможно, этот вопрос вообще на первое место поставить надо было.

И еще такая фишка (непосредственно связанная со служебными словами): кроме полных форм типа "I will", "you are", "I have" -- в текстах ТП полно сокращенных форм -- "I'll", "you're". "I've"...
Разделять ли их на два слова -- "you" и "will", "I" и "have" и т.п.? Пока что машин считает их за одно.

И плюс к тому -- местами "простонародные" формы произношения -- "I 'ave" (о явных вульгаризмах, как в речи Детрита -- я не говорю -- с ними все ясно, они необходимы). Объединять ли такие формы с "литературными" или не надо, они тоже в чем-то показательны при анализе книг ТП?

Ну, и наконец, для каждой книги имеющийся (вычищенный!) список уникальных слов надо ранжировать по частоте использования -- ну, это просто, эксель сам все сделает Smile

Хорошо бы, чтобы кто-то еще посмотрел эти данные и вынес свое веское суждение, а?
_________________
As the Harvard Law of Animal Behaviour puts it: 'Experimental animals, under carefully controlled laboratory conditions, do what they damned well please.'
Посмотреть профиль Отправить личное сообщение Отправить e-mail
M.



Зарегистрирован: 31.01.2008
Сообщения: 7951
Откуда: Bonk
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 2:41 pm     Заголовок сообщения:

А зачем вообще такие заморочки с исключением слов? Программа считает слишком медленно?

Если есть такая проблема, то, может, имеет смысл для конкретной задачи давать конкретный список исключаемых из поиска слов (прежде всего, конечно, артикли, предлоги, служебные слова типа than, do, were - составить "универсальный список", в который можно что-то добавлять либо исключать в зависимости от интересующего нас поиска). Изменяемый список помог бы решить и проблему с именами/названиями (например, при подсчете слова dark в "Морисе" мне здорово мешало имя Darktan). Ну, можно решить это и разбивкой на два этапа - чтобы прога отдельно посчитала всех Дарктанов, скажем, а потом отминусовать их от общего числа дарков.

Еще есть такая фишка, встроенная в интерактивный словарь синонимов (которым я часто пользуюсь) - оптимизировать поиск по частям речи: искать только глаголы, или только существительные, или прилагательные. Если хотите добиться ускорения поиска, она очень помогает. Можно ли ее реализовать?

Сказать по правде, я не занимаюсь таким масштабным анализом (часто и много), чтобы специальная прога была нужна позарез. При обычном просмотре (глазками) отмечаешь моменты, на которые прежде не обратил бы внимания; потом можно проверить свои предположения. Например, частоту определенных словосочетаний: как часто в книгах об Анх-Морпорке встречается, скажем, dark street, dark wet street, grey mist, thick mist и т.д. Вот сейчас мы конкретно поставили задачу проследить на основе текстового анализа, сгущается ли "мрачная атмосфера" в поздних книгах, и какими средствами это подано. Мне представляется, что следующий шаг - подсчет словосочетаний, характерных для ТП оборотов. Программа, насколько я понимаю, словосочетания не ищет?
_________________
Уши кота могут вращаться быстро.
Посмотреть профиль Отправить личное сообщение
Nanny Ogg



Зарегистрирован: 09.02.2005
Сообщения: 14331
Откуда: Ланкр, что на Плоском Мире
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 3:18 pm     Заголовок сообщения:

Словосочетания, как понимаю, можно задать -- в конце концов поограмма на то и пишется, это не догма, а руководство к действию...

Насколько я поняла Пионера, он хочет такой задел сделать -- типа базы данных. И потом мы сможем как нам угодно эти данные структурировать, выделять только то, что нужно -- и как-то осмыслять.
Ставить разные задачи.
_________________
As the Harvard Law of Animal Behaviour puts it: 'Experimental animals, under carefully controlled laboratory conditions, do what they damned well please.'
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 6:05 pm     Заголовок сообщения:

Я программу пока переделал, исключил только 1-2 буквенные слова, и the.

Список служебных слов очень бы помог. Дело в том, что программа работает так, переходит от слова к слову в документе, найденное слово сверяется в таблице найденных слов, если слово уже было (и соотвественно есть в этой таблице), то в столбике подсчета значение увеличивается на один, если не найденно, в таблице создается новая запись, с этим словом в одной колонке и кол-вом найденных слов = 1. И так по кругу "слово за слово", пока весь документ не прочтен. Слова dark, darktan, darkness - это разные слова.

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

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

Словосочетания пока не ловятся, ловятся только слова, про словосочетания надо подумать, если есть желание это иметь, когда закончу сбор этой информации, подумаем.

Для затравки: как тест я пробежался по двум книгам, Нация и ЦВ. Сейчас начал процесс заново, после переделки алгоритма немного. Так вот, интереснейшая вещь, соотношение уникальных слов в ЦВ намного выше чем в Нации. Грубо говоря, в Нации уникальное слово встречается в соотношении 1/20, а в ЦВ 1/10. Интересно проследить дальше, есть ли тенденция к снижению уникальных слов (спорно - упрощение текста) в целом, или это просто случайность этих двух книг?
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 7:05 pm     Заголовок сообщения:

Кстати, я там примитивно сделал вывод информации, типа сколько слов пройденно, сколько осталось. И сколько уникальных слов, и интересное наблюдение, когда первый взрыв набора слов проходит, и слова новые появлются значительно реже, то на первых двух книгах (ЦВ и Light Fantastic), пока, вижу следующее, количество слов держится долго одинаковым, потом вдруг почти сразу, добавляется 3-4-5-6 слов и опять долгое время ничего нет.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Nanny Ogg



Зарегистрирован: 09.02.2005
Сообщения: 14331
Откуда: Ланкр, что на Плоском Мире
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 8:36 pm     Заголовок сообщения:

Pioner писал(а):
количество слов держится долго одинаковым, потом вдруг почти сразу, добавляется 3-4-5-6 слов и опять долгое время ничего нет

Новый сюжетный виток?
_________________
As the Harvard Law of Animal Behaviour puts it: 'Experimental animals, under carefully controlled laboratory conditions, do what they damned well please.'
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 9:04 pm     Заголовок сообщения:

Да, возможно. А может просто одно предложение или абзац описывающее что-то новое, или группа новых героев появляется в рассказе.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
M.



Зарегистрирован: 31.01.2008
Сообщения: 7951
Откуда: Bonk
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 9:13 pm     Заголовок сообщения:

Или смена места действия - понеслось описание.
_________________
Уши кота могут вращаться быстро.
Посмотреть профиль Отправить личное сообщение
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Fri Mar 12, 2010 9:39 pm     Заголовок сообщения:

Мне кажется, Нэнни это и имеет в виду.

В принципе необязательно чтобы что-то там резкое происходило, достаточно одного предложения с описанием чего-то, что еще в книге не описывалось, и все, счетчик подскочил, и бежит уже на новой величине.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Sat Mar 13, 2010 3:10 am     Заголовок сообщения:

Я тут подумал, и решил никакие слова не убирать, мало ли что, вдруг людям понадобится исследовать какие-то предлоги?

Фильтр на 2 буквы и артикль the оставил.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Mon Mar 15, 2010 7:23 pm     Заголовок сообщения:

Народ, ищется Пирамиды на басурманском виде Ворда, или легко переводимого в Ворд. Есть у кого? Спросьте мне, пожалуйста, посрочнее. Очень надо.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
modestclub



Зарегистрирован: 26.04.2005
Сообщения: 5125
Откуда: Москва
Ответить с цитатой
СообщениеДобавлено: Tue Mar 16, 2010 11:35 am     Заголовок сообщения:

Pioner писал(а):
Народ, ищется Пирамиды на басурманском виде Ворда, или легко переводимого в Ворд. Есть у кого? Спросьте мне, пожалуйста, посрочнее. Очень надо.

Spoiler:

тут - http://alltxt.org.ua/attachment.php?id=3456/

открываем txt в Word-e


_________________




Посмотреть профиль Отправить личное сообщение Отправить e-mail
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Tue Mar 16, 2010 5:30 pm     Заголовок сообщения:

Модест, спасибо большое!
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
modestclub



Зарегистрирован: 26.04.2005
Сообщения: 5125
Откуда: Москва
Ответить с цитатой
СообщениеДобавлено: Tue Mar 16, 2010 6:19 pm     Заголовок сообщения:

незачт.

надеюсь вовремя.
_________________




Посмотреть профиль Отправить личное сообщение Отправить e-mail
Pioner
Site Admin


Зарегистрирован: 04.02.2005
Сообщения: 6753
Откуда: сами мы не местныя!
Ответить с цитатой
СообщениеДобавлено: Tue Mar 16, 2010 7:55 pm     Заголовок сообщения:

Ночью запущу Пирамиды, к утру смогу выложить обновленный график, получается интересным.
_________________
Игнорируйте мою подпись!!!
Посмотреть профиль Отправить личное сообщение Посетить сайт автора Yahoo Messenger MSN Messenger ICQ Number
Часовой пояс: GMT

 


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