2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Знаки препинания
Сообщение26.04.2007, 17:07 
Аватара пользователя
Как вы думаете, сможет студент-программист решить следующую задачу?

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

 
 
 
 
Сообщение26.04.2007, 19:44 
Аватара пользователя
Двумя регэксами решается, я так думаю.

 
 
 
 
Сообщение26.04.2007, 20:34 
Аватара пользователя
:evil:
Не решит студент. И профессор (от программирования) не решит. Потому, что нет приемлемых моделей идентификации причастного и деепричастного оборота. Поскольку Вы хотите считать эти запятые парными (то есть, фактически отдельным от одинарной запятой знаком препинания), то, пожалуйста, к филологам. Они Вам напишут (может быть, напишут) алгорифм страниц на семь-восемь (в лучшем случае). :)

Вас ждет еще один подводный камень — тире. В грамматике различают тире и дефис, при наборе (подготовке текстов):
1) дефис (-), как соединитель сложных слов моделист-конструктор, собака-на-сене;
2) неразрывный дефис (-) — вариация дефиса, запрещающая разрыв слова в этом месте при переносе на следующую строку (согласитесь, как-
то
выглядит неправильно);
3) перенос (-) — который проявляется только в случае переноса слова в этом месте, в остальных случаях невидим;
4) короткое тире () — например, для записи диапазонов XIX–XX век;
5) длинное тире () — ну, оно и есть оно;
6) я мог что-то упустить, я не профи. Так что…

Беда в том, что при все это часто смешано в кучу: тире обозначают разным сочетанием разных символов, на это набегают ошибки сканирования, и т.п.

Добавлю еще маленькие радости:
1) ?!, ?!? должны быть отдельными знаками препинания;
2) тоже относится к многоточиям: , ,.., !.., ?.. . Последнее осложняется и тем, что некоторые пишут три точки (...) вместо многоточия (). А в некоторых книгах встречается сочетание из четырех точек (....);
3) а кавычки! как же без кавычек. Одинарных, двойных, «уголком». И не в коем случае не путать с апострофом! В слове д’Аламбер нет кавычки, и не надейтесь. То, что их иногда обозначают ублюдками из ASCII(", '), лишь добавит шарма в решение Вашей задачи.

Так что, не верю я в студентов. Верю в лингвистов. Ищите таковых и начинайте работать с ними (если они захотят).

P.S. Опять скажете, я длинно написал? А Вы по пунктику, по пунктику читайте.

 
 
 
 
Сообщение28.04.2007, 13:20 
Аватара пользователя
незваный гость писал(а):
P.S. Опять скажете, я длинно написал? А Вы по пунктику, по пунктику читайте.

Всё правильно написали. У меня есть гипотеза, что отношение числа парных знаков препинания к числу непарных в среднем по русским текстам должно составлять 3 к 4. Получается, эту гипотезу невозможно проверить сколько-нибудь точно? :( Не вручную же проверять?!

 
 
 
 
Сообщение28.04.2007, 21:40 
Аватара пользователя
:evil:
А Вы начните вручную. А если будет надежда, что гипотеза подтверждается, будете думать дальше. Скорее всего, следующий шаг — полуавтоматический подсчет. Заодно разберетесь в трудностях, о которых я пишу.

Но, хоть это и off-topic: задумайтесь, а почему должно быть такое соотношение? Является ли оно каким-либо внутренним свойством языка? Нет, поскольку знаки препинания — свойство сугубо письменного, то есть вторичного языка (первичен язык разговорный). Более того, правила меняются (например, в средневековых текстах скобок не было вовсе), и с ними меняется это соотношение. Оно зависит от автора (например, Солженицин любит тире), подмножества текстов (в научной литературе скобки встречаются чаще, а прямая речь — реже), и et cetera. Выбирая тексты, Вы можете получить просто произвольный результат.

 
 
 
 
Сообщение02.05.2007, 17:06 
Аватара пользователя
незваный гость писал(а):
А Вы начните вручную.

Я написал текст про знаки препинания а-ля 3/4, т.е. так, что отношение числа парных знаков к числу непарных знаков в нем самом равно как раз 3/4. Выглядит очень реалистично. Но, конечно, неуместно в данном разделе форума. :(

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group