В рамках проекта была написана программа, анализирующая встречаемость в тексте различных частей речи. Для этого каждое слово анализируется на принадлежность к одной или нескольким частям речи. Мы решили не выбирать часть речи однозначно, поскольку даже человек не всегда способен однозначно определить часть речи. В отсутствие контекста это вообще не всегда возможно. Так не понятно, куда отнести слово "пасть": к глаголам или существительным. Поэтому, встречаются слова, которые, например с двадцати процентной вероятностью (на 20%) существительные, а на остальные 80% - глагол.
Поясню примерный алгоритм работы программы. Сначала текст разбивается на слова. Затем каждое слово относится к какой-либо части речи. Сначала, определяется, является ли слово предлогом, частицей или каким-нибудь из найденных нами слов исключений. По окончанию или из списка определяем, является ли слово числительным. Далее по характерным окончаниям выделяется инфинитив, глаголы, существительные и прилагательные. Для определения также используются связи с другими словами в предложении, например с предлогами. Так, например, очевидно, что предлоги не ставятся перед глаголами. В конце работы программы подводится статистика по тексту.
Программа "Транскриптор" предназначена для составления транскрипции произвольного текста на русском языке. Известно, что произношение в русском языке, как и в любом другом, подчиняется определенным правилам. Используя самые общие из них, программа может создать приблизительную запись того, как будет звучать текст при прочтении. Такая запись , например, может сильно помочь работе над программой, предназначенной для выделения в тексте частей речи, что, в свою очередь, является важной частью анализа текста.
Алгоритм работы программы прост. В первую очередь программа разбивает слитный текст на слова и записывает их в массив. Далее программа работает по словам. Она считывает и сохраняет номер ударной гласной, записанный вручную заранее (слова с одной гласной или без гласных обрабатываются автоматически и не требуют поставки ударения). Ударная гласная обозначается знаком процента перед ней. После этого программа работает побуквенно. Алгоритм работы программы представляет собой разветвленное "дерево" вариантов. Буквы разбиты на группы, которые обрабатываются одинаково. Программа "ищет" символ в первой группе, если находит, то обрабатывает указанным способом, если не находит, то "ищет" в следующей группе.
Известно, что буквы "а", "о", "ы", "э" в безударной позиции произносятся приблизительно одинаково. Этот звук мы обозначили так, как это принято в фонетике - символом "ъ". Произношение букв "е" и "и" в безударной позиции обозначается символом "ь" и смягчает предыдущую согласную. Буквы "ё", "ю" и "я" в безударной позиции смягчают предыдущую согласную и звучат как соответствующий звук из набора "о", "у", "а". В ударной позиции "а", "о", "ы", "и" звучат так же, как и записываются, "э" звучит как "э" и не смягчает предыдущую согласную, "е" звучит как "э" и предыдущую согласную смягчает. В начале слова (первой буквой) к произношению букв "е", "ю", "ё", "я" добавляется звук "j" перед гласной. Кроме того, в начале слова "а", "о", "и", "ы" не редуцируются (то бишь не заменяются на "ъ" или "ь").
Согласные звуки обрабатываются еще проще. Практически, существуют всего два преобразования для согласных звуков - оглушение/озвончение и смягчение. Оглушение/озвончение происходит тогда, когда после глухого звука стоит звонкий (или наоборот), причем это работает и в то случае, если эти два звука в разных, подряд следующих словах. Кроме того, последний символ оглушается по умолчанию, остается неизменным разве что если он и так глухой, или в следующем слове первый звук звонкий или гласная. В принципе, есть еще несколько преобразований, вроде "тст" в "цт" но они встречаются редко, и, хотя и включены в программу, почти никогда не используются.
Инструкция по эксплуатации:
1) Вбить текст, который надо транскрибировать в файл text.txt, лежащий в папке с программой и поставляемый в комплекте с программой.
2) Проставить ударения во всех словах, за исключением тех, в которых даже программа додумается, куда ставить ударение (слова без гласных или с одной гласной).
3) Запустить программу, считать текст с экрана.
Данным экспериментом мы хотели выяснить, насколько хорошо люди воспринимают речь оппонента. Довольно часто при разговоре мы коверкаем, зажёвываем или просто тихо говорим слова. Тем не менее, почти всегда другие люди понимают нас. Вряд ли это можно приписать хорошему слуху, так как он есть у немногих людей. Нашим проектом было выдвинуто предположение, что люди неосознанно пытаются свести услышанное ими к уже известным им словам.
Для того чтобы подтвердить или опровергнуть этот факт мы решили провести опыт, на некоторых людях. Суть опыта заключалась в том, что человека просят записать те предложения, которые он слышит. Вот предложения, которые мы диктовали людям:
В вестибюле началась возня.
Тули палеют ду козли.
На сцене появились актёры.
Балабула була бала била.
У Миши был грузовичок и ещё 10 машин.
Тульная тюлача тубала по тарату.
Началась перемена и в классе раздались крики.
Лаказя суламила на гошмаке.
В сосновом лесу приятно пахнет смолой.
Театральный зал наполнился зрителями.
Казала заступила каразюку и лупает нуроку.
Как вы видите, наряду с обычными предложениями мы использовали предложения, написанные на псевдорусском языке. С обычными предложениями справились все, кроме одного человека (его имя огласки не подлежит). А вот на предложениях, написанных на псевдорусском языке, мы получили частичное подтверждение нашего предположения.
Замена услышанного на уже имеющиеся в словарном запасе человека слова проявляется с возрастом. В качестве примера приведём результаты опыта трёх людей:
Тули палеют ду козли - Толя поедет до .
Балабула була бала била - Балабула была бела.
Локазя суламила на гошмаке - Локазись суламила наоалошмяки.
Муала тилела ну банете - Муала тебе шуба лети.
Козала застулила коразюку и лупает нуроку - Козема застудила корозюку и лупает.
Человеку, который написал это, сейчас 17 лет. Только в третьем
псевдорусском предложении мы наблюдаем отсутствие нормальных слов. В
остальных же предложениях очевидна подмена псевдослов на реальные.
Тули палеют ду козли - Тули палее доказли
Балабула була бала била - Балабула бела була.
Тульная тюлача тубала по тарату - Тульна тула хакубаре по талату.
Лаказя суламила на гошмаке - Варказялась сумань соламазилась.
Казала заступила каразюку и лупает нуроку - Казала заступила каразюку и
Шестнадцатилетний ученик уже допускает меньше замен.
Тули палеют ду козли - аллей .
Балабула була бала била - Балабула бала была бела.
Тульная тюлача тубала по тарату - Тульная тюбача тубала .
Локазя суламила на гошмаке - Локазя суламила кошнарки.
Муала тилела ну банете - Мала теряла.
Козала застулила коразюку и лупает нуроку - Казала истулила харазюку и.
12-летний ученик же почти всегда пишет то, что ему удаётся расслышать.
После того, как мы провели первый эксперимент, мы увидели. Что количество "слуховых" ошибок зависит от возраста, и решили проверить это ещё раз. Для второго эксперимента мы специально звали примерно одинаковое количество людей разного возраста. Наши предположения подтвердились.
Таким образом, мы можем сказать, что:
1) Человеку свойственно подгонять услышанное под уже известные ему слова.
2) Интенсивность такого подгона напрямую зависит от жизненного опыта человека и его словарного запаса.
На нашем спецкурсе мы занимались самыми различными вещами: выясняли, почему дети лучше усваивают язык, чем взрослые, нужны ли слова-паразиты и почему их не употребляют архангельские бабушки, сколько падежей в восточных горных деревушках и другое. Также весьма интересной темой было обсуждение детских кошмаров.
Однако венцом нашего спецкурса были два эксперимента. Один мы написали на DMDX и на костях некоторых участников проекта. Второй был написан менее жестоко и на стандартном POWERPOINTе. Первый тест был направлен на изучение человеческого мышления, когда тестируемый сталкивается с синтаксической неоднозначностью. Он засекал время, которое уходило на прочтение каждого слова, и сколько времени уходит на осознание предложения. Примечание: синтаксическая неоднозначность - это случай, когда человек не может однозначно понять смысл предложения. Однако на нашем тесте неоднозначность была временная, то есть она снималась контекстом. К каждому же предложению же был вопрос.
Эксперимент 1.
Мы создали эксперимент, чтобы понять, как человек мыслит, когда сталкивается с временной синтаксической неоднозначностью. Как вариант были представлены гипотезы:
1. Человек сперва анализирует оба варианта, а потом ставит на неподходящем жирный крест и идет по верному;
2. Либо он идет наугад по одному пути, а потом, если он не подходит, возвращается и идет по другому.
возвращение жирный крест на неподходящем варианте
Требовалось доказать одну из гипотез. Для этого мы захотели посмотреть, насколько человек будет задерживаться, чтобы понять неоднозначное предложение. Для того, чтобы точно измерить время. мы создали код программы в WordPad'е. Затем, заманив участников других спецкурсов тортиком, рулетом и колой, мы стали проводить эксперимент, смотря, где и насколько они тормозят. Оказалось, все очень сильно задерживаются на месте, где неоднозначность кончается, и на вопросах (как пример даю результаты Сергея Палькова и Сергея Дергунова -
36 -310.90
37 1231.95
38 2768.64;
36 -168.93
37 599.50
38 3872.99
36 - начало конца неоднозначности, 37 - конец конца неоднозначности, 38 - вопрос), соответственно верна 2-я гипотеза.
Эксперимент 2.
Теперь поговорим поподробнее о втором тесте. Он был направлен на выяснение вопроса так называемой "оперативной памяти" человека. Результаты оказались таковы: запоминание связанных по смыслу слов с последующим их повторением - ошибок у людей насчитывалось примерно от четырёх до девяти. При запоминании же несвязанных слов ошибок, разумеется, оказалось побольше - приблизительно от шести до десяти.
С каждым разом количество слов увеличивалось на один. Примечательно, что практически все люди не называли слова в порядке (кроме, разумеется простейших примеров по три-пять слов). Было весьма закономерно, что те люди, которые были постарше, порядок слов меняли реже и меньше, чем те, которые были несколько помладше. В основном испытуемые меняли порядок слов начиная приблизительно с пятого-шестого предложений.
Как ни странно, в наборе из девяти слов ошибок почти не было, а в наборах из десяти слов ошибок было около 4, хотя бывали и исключения. Были случаи, когда ошибки допускались только в блоках, состоящих из десяти слов. В среднем, тестируемые допускали ошибки и перестановку порядка слов начиная где-то с блоков, в которых содержалось по шесть-семь слов.