Форум: "Прочее";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизПоиск Найти похожие ветки
← →
Gydvin © (2007-07-09 17:49) [0]Нигде случайно не попадался словарь переносов русского языка? В текстовом формате самое оно.
Очень нужно.
← →
Правильный Вася (2007-07-09 17:50) [1]в любом языке перенос - это минус
← →
Gydvin © (2007-07-09 18:04) [2]Не перенос - плюс?
← →
Правильный Вася (2007-07-09 18:08) [3]пробел
← →
Gydvin © (2007-07-09 18:14) [4]Ну-ну
← →
Grom PE © (2007-07-09 18:35) [5]http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries/hyph_ru_RU.zip
Но как им пользоваться, я не вникал.
← →
Gydvin © (2007-07-09 18:56) [6]Спасибо, буду разбираться.
Может у кого, еще что ни будь имеется? На случай, если с этим не разберусь или пообъемнее.
← →
oldman © (2007-07-09 19:06) [7]Если память не изменяет, по новым правилам переносить можно В ЛЮБОМ месте, но так, чтобы не переносилась одна буква!
← →
VirEx © (2007-07-09 19:09) [8]за-
чем сло-
варь?
от-
крой лю-
бой учеб-
ник по рус-
скому язы-
ку, там чет-
ко и яс-
но опи-
са-
ны пра-
ви-
ла пе-
ре-
но-
са-
← →
Юрий Зотов © (2007-07-09 23:21) [9]> VirEx © (09.07.07 19:09) [8]
Угу. Перенос делается по слогам, одна буква от слова и от его корня не отрывается - и т.д.
Теперь попробуйте эти правила запрограммировать без словарей. А мы посмеемся.
← →
VirEx © (2007-07-09 23:30) [10]
> [9] Юрий Зотов © (09.07.07 23:21)
а что лучше: запихать всё огромное количество сочетаний переноса в базу, притом полной эта база не будет, или определить что такое слог (на основе гласных и согласных, ведь их - число ограничено), внести окончания, внести некоторые исключения при переносе и т.д.?
ничего собственно невыполнимого не вижу.
← →
Юрий Зотов © (2007-07-09 23:32) [11]> VirEx © (09.07.07 19:09) [8]
Я почему так говорю - потому что такой алгоритм (перенос без словарей) писал. И он даже работал. И даже процентов на 80 не ошибался (по крайней мере, при тестировании).
Но пока я этого добился, успел понять, что 100-процентная безошибочность недостижима даже со словарями, а уж без них - и мечтать нечего.
← →
TUser © (2007-07-09 23:33) [12]> Юрий Зотов © (09.07.07 23:21) [9]
Afaik, ОРФО так и работает. Не такие уж и сложные правила разбиения на слоги в русском языке.
← →
Юрий Зотов © (2007-07-09 23:35) [13]> VirEx © (09.07.07 23:30) [10]
> ничего собственно невыполнимого не вижу.
Вы сначала попробуйте, тогда и увидите. Даже разбивка на слоги - уже нетривиальная задача, а когда дело дойдет до выделения корня - полная радость настанет.
← →
Johnmen © (2007-07-09 23:36) [14]Вот базовые правила
http://spravka.gramota.ru/pravila.html?perenos.htm
там же можно найти и современные дополнения/изменения.
← →
Yanis © (2007-07-09 23:37) [15]Это английский можно запрограммировать, а великий и могучий русский нет :)
http://spravka.gramota.ru/pravila.html?perenos.htm
← →
Юрий Зотов © (2007-07-09 23:39) [16]Так. Пустословие заканчиваем. Я это ДЕЛАЛ, с эти вопросами сталкивался РЕАЛЬНО и знаю, что говорю.
Все желающие спорить - СНАЧАЛА попробуйте СДЕЛАТЬ, а ПОТОМ спорьте.
Если после РЕАЛЬНОЙ пробы желание спорить еще останется.
← →
MsGuns © (2007-07-10 00:26) [17]>Юрий Зотов © (09.07.07 23:39) [16]
Я это делал тоже. Сначала на ЕС-ском ассемблере, потом на СМ.., потом на PAL. И еще пять тысяч человек тоже делали. Конечно, не 100%, но очень близко к 100. Для подавляющего кол-ва текстов, не отличающихся высокохудожественностью, вполне удобоваримо.
Алгоритм, кстати, весьма тривиальный.
Иногда, правда, очень интересно переносит, но очень редко ;)
← →
Юрий Зотов © (2007-07-10 00:44) [18]> MsGuns © (10.07.07 00:26) [17]
Когда программа работает "вполне удобоваримо", я почему-то вспоминаю осетрину второй свежести.
← →
VirEx © (2007-07-10 01:05) [19]вот пример функции, показывающая двух-буквенные слоги
function WordToSlog(str:string):string;
function UpString(str:string):string;
var
i:integer;
a,b:char;
begin
result:=str;
for i:=1 to length(Result) do
case Result[i] of
"а".."я": Dec(Result[i], 32);
end;
end;
{
ищет в строке str с позиции index комбинацию из всех комбинаций согласной s и гласной g
}
function slog(str:string; index:integer; s,g:array of string):boolean;
var
i,y:integer;
s_,l_:string;
begin
result:=false;
for i:=0 to length(s)-1 do
for y:=0 to length(g)-1 do begin
s_:=UpString((s[i]+g[y]));
l_:=UpString(copy(str,index,2));
if s_=l_ then begin
result:=true;
exit;
end;
end;
end;
const
//а б в г д е ё ж з и к л м н о п р с т у ф х ц ч щ ь ъ э ю я
s : array[1..19] of string =("б","в","г","д","ж","з","к","л","м","н","п","р","с","т","ф","х","ц","ч","щ");
g : array[1..10] of string =("а","е","ё","и","о","у","э","ю","я","ы");
word_iskl : array[1..3] of string =("Азия","узнаю","фойе");
//slog_iskl : array[0..2] of string =("баж");
var
i:integer;
begin
result:="";
for i:=1 to high(word_iskl) do
if str=word_iskl[i] then exit;
for i:=1 to length(str) do
if slog(str,i,s,g) then
result:=result+" "+ copy(str,i,2);
end;
сначало было желание сделать проверку еще на 3х буквенные и более слоги, но! вот примеры:
караганда - ка ра га да
ставка - та ка
птенец - те не
ну и т.д.
глядя на результаты, можно даже обойтись без лишнего массива корней :)
это основные слоги, их стОит всего лишь "закрыть" по краям недостающими буквами и дело в шляпе ;)
← →
Юрий Зотов © (2007-07-10 01:16) [20]> VirEx © (10.07.07 01:05) [19]
Вы это серьезно?
А в той же, хотя бы, "Караганде" вы букву "н" куда приплюсовывать будете - к последнему слогу, или к предпоследнему? А букву "в" в слове "ставка"? А что Вы будете делать, например, с четырехбуквенными слогами? А как быть с правилом "не отрывать букву от части слова"? И т.д.
Не смешите. Если бы эта задача решалась так просто, то она давно была бы решена.
← →
VirEx © (2007-07-10 01:24) [21]счас счас, идёт креатиф)
← →
VirEx © (2007-07-10 02:12) [22]вобщем это оказалось самым сложным)
принцип окружения слога таков:
караганда - ка ра ган да
ставка - став ка
птенец - пте нец
тоесть к слогу прибавляется все символы до следующего слога,
если данный слог еще и первый, то к слогу вначале добавляются первые недостающие символы, вот и всё.
но у меня какие-то заморочки с copy(), мозги не варят, всётаки лягу спать, ибо на работу)
← →
Gydvin © (2007-07-10 07:22) [23]Господин VirEx, у меня к Вам большая просьба, не ешьте мне моск. Да я слышал, что существуют правила русского языка, и даже читал пару из них )). Тем более имеется у меня отличнейший, за пару лет перепроверенный, алгоритм автоматического переноса слов, работает он очень хорошо, ошибается, можно сказать, что мало, так что писать аналогичный алгоритм не вижу смысла. И тем не менее я настаиваю, что для более качественного переноса нужно делать на словарях или шаблонах. Если их должным образом проиндексировать то и "носиться" по словарю особо не придется. Как правильно говорит ЮЗ попробуйте сначала правильно выделить корень и т.д и т.п
← →
Gydvin © (2007-07-10 07:33) [24]Просто меньше всего хотелось бы самому набивать этот словарь
← →
boriskb © (2007-07-10 07:39) [25]Юрий Зотов © (09.07.07 23:32) [11]
такой алгоритм (перенос без словарей) писал. И он даже работал. И даже процентов на 80
Аналогично.
Это одна из подмножества задач, которые на 80 % решаются без особых проблем, но 100%-ого верного срабатывания добиться черезвычайно сложно.
Последние 5% требуют огромных и усилий и мощностей.
← →
Юрий Зотов © (2007-07-10 09:36) [26]> VirEx © (10.07.07 02:12) [22]
> к слогу прибавляется все символы до следующего слога,
> если данный слог еще и первый, то к слогу вначале добавляются первые
> недостающие символы, вот и всё.
Жаль Вас. Чтобы придумать эти правила, Вы мучались до 2-х часов ночи - но нужна, увы, всего пара минут, чтобы все Ваши мучения свести к нулю:
пионер
сутенер
автомобиль
и т.д.
А самое печальное, что так будет каждый раз, сколько бы доработок Вы ни вносили. Просто потому что алгоритма переноса слов русского языка НЕ СУЩЕСТВУЕТ.
Вот и все
© ViREx.
:o)
← →
VirEx © (2007-07-10 19:23) [27]
> [26] Юрий Зотов © (10.07.07 09:36)
> > VirEx © (10.07.07 02:12) [22]
>
> > к слогу прибавляется все символы до следующего слога,
> > если данный слог еще и первый, то к слогу вначале добавляются
> первые
> > недостающие символы, вот и всё.
>
> Жаль Вас. Чтобы придумать эти правила, Вы мучались до 2-х
> часов ночи
придумать то получилось сразу, а вот реализовать
> но нужна, увы, всего пара минут, чтобы все Ваши мучения
> свести к нулю:
> пионер
> сутенер
> автомобиль
> и т.д.
что вы этим хотели сказать? эти слова нельзя перевести? или как их правильно по вашему нужно переводить?
← →
Юрий Зотов © (2007-07-10 20:49) [28]> VirEx © (10.07.07 19:23) [27]
Я этим хотел сказать, что правило
> к слогу прибавляется все символы до следующего слога
для этих слов (и еще, наверное, пары миллионов слов) не подходит. В них (и еще, наверное, в паре миллионов слов) последний слог начинается с согласной и она относится именно к последнему, а не к предпоследнему слогу.
Пара миллионов - это все слова, которые:
- имеют суффикс "ск" (кстати, ОЧЕНЬ распространенный);
- прилагательные (во всех родах!!!), оканчивающиеся на "ный", "кой" и еще на целую кучу подобных окончаний (кстати, таких прилагательных ОЧЕНЬ много);
- и огромная куча других.
Так что правило это никуда не годится. Если Вам еще не надоело это занятие, попробуйте придумать взамен него что-то другое.
Если получится, конечно.
:о)
И если все же получится, то таким образом мы сможем покончить с МЕЛКИМ вопросом "к какому двубуквенному слогу добавлять промежуточные буквы" и перейти к ГОРАЗДО более сложным вопросам. Например, к безсловарному алгоритму разбивки слов не на слоги, а на части слов (приставка-корень-суффикс-окончание).
Вот уж где повеселимся-то...
:о)
← →
MsGuns © (2007-07-10 21:39) [29]Почетму-то мильону народы едят шашлыкы с диким удовльствием, не подозревая, что они приготовлены вовсе не по рецепту. Наверное, нет на них похвесора ;)
← →
Юрий Зотов © (2007-07-10 22:23) [30]> MsGuns © (10.07.07 21:39) [29]
Нет, они просто никогда не пробовали шашлыков, приготовленных ПО рецепту.
Поэтому они, бедняги, просто не знают, что такое шашлык. И чем он отличается от того, что они едят. И как оно называется на самом деле.
← →
Gydvin © (2007-07-10 23:18) [31]
> Почетму-то мильону народы едят шашлыкы с диким удовльствием,
> не подозревая, что они приготовлены вовсе не по рецепту.
> Наверное, нет на них похвесора ;)
Все бы фигня, так бы и продолжали его есть, если бы не нашелся один довольно крупный любитель "шашлыка", который оказался по совместительству похвесором, а терять не охота, вручную тоже делать порядком придолбало. Кроме того, есть желание еще пару "шашлычниц" открыть, освоить так сказать рынок, в который лучше сразу входить с хорошим качеством. ))
← →
TUser © (2007-07-11 00:19) [32]Вот тут проблема, кажется, только со словами вроде "москва", "краска" и т.д. (с буквами ск). Есть ли другие? Но это написано минут за сорок мною. Наверняка, если бы этим занимался программист на полном рабочем дне + лингвист с ним в связке, то за неделю все трудности бы поймали. Ну, может быть, маленький словарь исключений.
{$apptype console}
const
glas = ["ё", "у", "е", "ы", "а", "о", "я", "и", "ю", "э"];
znaki = ["ь", "ъ"];
type
TSlogs = array of
record
Start, Finish: integer;
end;
TWord =
record
Wrd: string;
Slogs: TSlogs;
Flags: array of boolean;
FreeLetters: integer;
end;
procedure InitWord (var Word: TWord);
var i, j: integer;
begin
with Word do begin
for i := 1 to length (Wrd) do
if not (Wrd[i] in ["а".."я","ё"]) then
writeln ("Incorrect word; the result will be invalid");
j := 0;
for i := 1 to length (Wrd) do
if Wrd[i] in glas then
inc (j);
SetLength (Slogs, j);
SetLength (Flags, length (Wrd));
FreeLetters := length (Wrd) - j;
if j = 0 then begin
SetLength (Slogs, 1);
Slogs[0].Start := 1;
Slogs[0].Finish := length (Wrd);
SetLength (Flags, 1);
for i := 0 to length (Wrd) - 1do
Flags[i] := true;
FreeLetters := 0;
exit;
end;
for i := 0 to length (Wrd) - 1 do
Flags[i] := false;
j := 0;
for i := 1 to length (Wrd) do
if Wrd[i] in glas then begin
Slogs[j].Start := i;
Slogs[j].Finish := i;
Flags[i-1] := true;
inc (j);
end;
end;
end;
procedure DetectSlogs (var Word: TWord);
var i, j: integer;
begin
with Word do
while FreeLetters > 0 do begin
for i := length (Slogs) - 1 downto 0 do begin
j := Slogs[i].Start;
if j > 1 then begin
dec (j, 2);
if not Flags[j] then
if not (Wrd[j+1] in znaki) then begin
Flags[j] := true;
dec (Slogs[i].Start);
dec (FreeLetters);
end;
end;
j := Slogs[i].Finish;
if j < length (Wrd) then
if not Flags[j] then begin
Flags[j] := true;
inc (Slogs[i].Finish);
dec (FreeLetters);
end;
end;
end;
end;
function WordSlogs (const Word: TWord): string;
var i, j, k: integer;
begin
with Word do begin
SetLength (result, length (Wrd) + length (Slogs) - 1);
for i := 1 to Slogs[0].Finish do
result[i] := Wrd[i];
j := Slogs[0].Finish + 1;
for i := 1 to length (Slogs) - 1 do begin
result[j] := "-";
inc (j);
for k := Slogs[i].Start to Slogs[i].Finish do begin
result[j] := Wrd[k];
inc (j);
end;
end;
end;
end;
var Word: TWord;
begin
Word.Wrd := "алгоритм";
InitWord (Word);
DetectSlogs (Word);
writeln (WordSlogs (Word));
end.
Хотя, про орфу я был не прав, у них там есть файлик EXPLAIN.DIC, наверняка, словарь, а слова, которых там нет, наверное чем-то подобным обрабатывают.
← →
Юрий Зотов © (2007-07-11 01:06) [33]> TUser © (11.07.07 00:19) [32]
> Вот тут проблема, кажется, только со словами вроде "москва", "краска" и
> т.д. (с буквами ск).
Это только кажется. Проблема с очень многими словами, в середине которых есть слог, начинающийся с нескольких согласных. Программа не знает, куда относить первую из них - к предыдущему слогу, или к следующему.
И не узнает, потому что возможен и тот, и другой вариант. А чтобы определить, какой вариант в данном конкретном случае правильный, нужно разбивать слово на его части (а не на слоги) и по ним уже смотреть, куда относится проблемная буква. А чтобы разбить слово на части, придется сначала написать искусственный интеллект, а потом еще и обучить его русскому языку. После чего можно смело бежать за Нобелевкой. Дадут точно.
Так что "если бы этим занимался программист на полном рабочем дне + лингвист с ним в связке, то за неделю все трудности бы поймали" - это немножко преувеличено. Геморрой за эту неделю они бы поймали, вот это уж наверняка.
PS
Всем, кто верит, что эту задачу можно решить за неделю (месяц, год): ну задумайтесь хотя бы на секунду - почему же в таком случае ее до сих пор не решили и тупо пишут словари переносов? Неужто дураки сидят, а?
← →
MsGuns © (2007-07-11 01:19) [34]>Это только кажется. Проблема с очень многими словами, в середине которых есть слог, начинающийся с нескольких согласных. Программа не знает, куда относить первую из них - к предыдущему слогу, или к следующему.
Можно сколь угодно долго раглагольствовать на эту тему, тем более русский язык с его неоднозначностью и полиморфимом к тому располгает.
Но если подойти к проблеме с инженерной (не прохвесорской) точки зрения, то все сводится к тому, что перенос нужен всего-навсего для экономного расположения текста и, если при этом смысл фразы не теряется и слова заведомо не коверкаются, не теряется СМЫСЛ всей фразы, то допустимы и некоторые нарушения правила переноса - главное, чтобы написанное было понято. Не так ли ?
Хотя придраться, конечно, можно и к телеграфному столбу. Особенно если очень хочется доказать кому-то что-то ;)
← →
Германн © (2007-07-11 01:23) [35]
> PS
> Всем, кто верит, что эту задачу можно решить за неделю (месяц,
> год): ну задумайтесь хотя бы на секунду - почему же в таком
> случае ее до сих пор не решили и тупо пишут словари переносов?
> Неужто дураки сидят, а?
Аргумент слабоват, однако. :)
Но тем кто верит, что эту задачу можно решить за неделю (месяц,
> год) всё равно облом. :)
← →
Юрий Зотов © (2007-07-11 01:27) [36]> MsGuns © (11.07.07 01:19) [34]
"Смысл фразы не теряется и слова заведомо не коверкаются, не теряется СМЫСЛ всей фразы" даже если переносить ВООБЩЕ без всяких правил.
Вставил черточку где попало - и всех дел.
Как слышецца - так пишецца. Даешь революцию троечников!
← →
MsGuns © (2007-07-11 01:30) [37]>Юрий Зотов © (11.07.07 01:27) [36]
>"Смысл фразы не теряется и слова заведомо не коверкаются, не теряется СМЫСЛ всей фразы" даже если переносить ВООБЩЕ без всяких правил.
Неужели ? А привести пару "веселых" переносов ? Чтобы смысл фразы АБСОЛЮТНО изменился, а ? Если, конечно, самому слабО
← →
Юрий Зотов © (2007-07-11 01:43) [38]> MsGuns © (11.07.07 01:30) [37]
А слабо ПРОЧИТАТЬ, что было написано?
← →
Petr V. Abramov © (2007-07-11 02:08) [39]>Юрий Зотов © (11.07.07 01:27) [36]
>> MsGuns © (11.07.07 01:19) [34]
> "Смысл фразы не теряется и слова заведомо не коверкаются, не теряется
> СМЫСЛ всей фразы" даже если переносить ВООБЩЕ без всяких правил.
off но рядом с сабж :)
русский язык могучеее, чем тут думают :)
знаю, что баян, но не все его знают :)
читать после ++++
Прочитали? Как романтично, не правда ли? Но не забывайте, Пьер - мужик,
а у нас, мужиков, у всех одно и то же на уме. Не верите? Прочитайте
письмо через строчку, начиная с первой, и убедитесь сами...
+++++++++++++++++++++++++++++++++++++++++++++++
Письмо Пьера Безухова Наташе Ростовой. 1807 г. (Читать до конца;
Пунктуация и речевые особенности того времени сохранены)
Дорогая Наташа, в тот великолепный летний вечер,
когда я встретил вас на балу у императора,
я понял, что всю жизнь хотел иметь
жену, такую же прекрасную, как и вы. Я глядел на
вас весь вечер, не отрываясь ни на минуту,
всматривался в ваше малейшее движение, пытался заглянуть
в каждое, пусть самое маленькое, отверстие
вашей души. Я ни на секунду не отводил глаз от
вашего великолепного тела. Но увы, все мои усилия,
чтобы привлечь ваше внимание были безуспешны. Я думаю, что
будут лишь пустой тратой времени
все мольбы и обещания с моей стороны.
Ибо я знаю, что у меня слишком маленький
статус в империи. Достоен вас лишь королевского двора постоянный
член. Но все же хочу вас заверить, что
вы самое прекрасное существо на свете.
Я никогда, никогда не встречал такой у-
дивительной женщины, которая так много сделала для нашей
родины. И лишь ваша преогромнейшая
скромность скрывает это. Мой сердце разрывает
грудь, заставляет желать вас!
Наташа, я люблю вас!
Пьер Безухов
21.X.1807
← →
Джо © (2007-07-11 04:23) [40]Ребята, о чем вы говорите? О какой формализации? Даже о термине «слог» в русской лингвистистике существует несколько различных мнения. Не говоря уж о «правилах переноса».
← →
Джо © (2007-07-11 04:27) [41]> [34] MsGuns © (11.07.07 01:19)
> то все сводится к тому, что перенос нужен
> всего-навсего для экономного расположения текста и, если
> при этом смысл фразы не теряется и слова заведомо не коверкаются,
> не теряется СМЫСЛ всей фразы, то допустимы и некоторые
> нарушения правила переноса - главное, чтобы написанное было
> понято. Не так ли ?
В общем, так.
Но, остались неформализованными «всего» несколько понятий.
1. «Слова заведомо не коверкаются». Это как? И кому судить? ИИ?
2. «Не теряется СМЫСЛ всей фразы». К чему тут вообще правила переноса? В общем, любой не-дебил сможет понять смысл вразумительного текста при использовании ЛЮБЫХ правил переноса.
3. И так далее.
← →
boriskb © (2007-07-11 08:31) [42]С переносами для меня уже лет 20 как все ясно.
Гораздо интересней другое:
Как человек может быть уверен в своем мнении в чем то, с чем познакомился или 5 минут назад или давно, но недолго?
Мнение же других, занимавшихся этой проблемой серьезно, совершенно не воспринимается.
Даже обидно. Вроде как Юрий вообще - трепач известный и доверия никакого ему быть не может.
Причем разговор же не о "зеленых человечках", о чем можно спорить бесконечно и безрезультатно. Вполне известная и давняя задача.
Отсюда, наверное, и сотни и тысячи попыток создания вечного двигателя на протяжении столетий
И безоглядно нападать на "сомневающихся" тоже рука не поднимается. Сколько "неразрешимых" проблем было решено такими - не верящими ни в какие авторитеты.
Где эта грань между тупым упорством и здоровым сомнением?
Она есть?
← →
TUser © (2007-07-11 10:15) [43]> boriskb © (11.07.07 08:31) [42]
Хм, дело не столько в недоверии, сколько в неполном понимании. Если мне говорят, что из свинца нельзя получить золото химическим путем, то я спрашиваю, почему. И получаю ответ. И на этот вопрос ответ получил.
А грань проходит очень просто, - когда изобретается вечный двигатель или что-то там, вот значит она и пройдена. :)
← →
MsGuns © (2007-07-11 10:51) [44]>boriskb © (11.07.07 08:31) [42]
Так вопрос никто не ставит - дело не в трепачестве.
А в том, что некоторые авторитеты иногда бывают несколько мм.. академично-догматичны. И даже несколько высокомерны. Разговор в стиле "строгий папа нашалившему пацану", вошедший в привычку как метод спора, честно говоря, достает. О чем было уже не раз сказано: как намеками, так и напрямую.
Ан нет. Видать "на равных" вести беседу с "авторитетами" простым смертным не дано. На совершенно любые темы ;)
← →
boriskb © (2007-07-11 11:22) [45]
> когда изобретается вечный двигатель или что-то там, вот
> значит она и пройдена. :)
То есть ты еще веришь ? :))
> На совершенно любые темы ;)
Психология это.
Совсем не "на любые темы".
:)
← →
Юрий Зотов © (2007-07-11 11:27) [46]> MsGuns © (11.07.07 10:51) [44]
ОК. Раз уж Вы высказались прямо, выскажусь прямо и я. Первый и последний раз.
Мало ли кого что достает? Мало ли кому чей стиль не нравится? Мало ли кому кто-то не нравится лично? Мало ли еще что-то там?
Есть черты, которые мне в Вас тоже совершенно не нравятся. Не буду перечислять, но они есть.
Ну и что? Почему я ни разу не начал свару в Вами по этому поводу? Почему ни разу не попытался поучить Вас стилю разговора или манерам поведения?
Отвечу, почему. Потому что, в отличие от Вас, всегда помню об этом самом "мало ли, кому что не нравится". И, опять же в отличие от Вас, чужой стиль уважаю, нравится он мне, или нет. Поэтому и не лезу со своими "фэ". Снова в отличие от Вас.
А еще я не лезу со своими "фэ" потому, что понимаю, что мое мнение о человеке легко может быть и ошибочным. Тем более, когда это мнение заочное. И примеры того, когда при знакомстве в реале человек оказывался совсем другим, нежели это представлялось по форуму, тут приводили ОЧЕНЬ многие. В том числе и я, и обо мне.
А посему, помня о возможной ошибке, и не строя из-себя псхолога-заочника, тоже не спешу это свое мнение высказывать. И тоже, увы, в отличие от Вас.
Но Вы, несмотря на, казалось бы, вполне достаточный жизненный опыт почему-то этих, казалось бы, простейших вещей не понимаете (что, кстати, тоже отнюдь не добавляет уважения к Вам). И систематически затеваете ссоры, влезая со своим никем не прошенным "фэ" всюду, где Вам хоть что-то покажется не так. И получая, естественно, в ответ соответствующую реакцию. И создавая, естественно, о себе соответствующее мнение.
Ну так вот. Сергей, если бы так вел себя пацан-подросток - это еще можно было бы хоть как-то оправдать. Но в полувековом возрасте уже пора понимать, что Ваше мнение о чьих-то там манерах: а). не обязательно правильное; б). не обязательно должно быть высказано.
А посему убедительно прошу Вас: можете думать о ком угодно что угодно, это дело сугубо Ваше личное - но свои высказывания по поводу "нравицца - не нравицца" засуньте... ну, например, под шкаф. Навсегда.
← →
Юрий Зотов © (2007-07-11 11:30) [47]> boriskb © (11.07.07 11:22) [45]
+10!
:о)
← →
MsGuns © (2007-07-11 11:57) [48]>Зотов
О как ! Я рад, что наконец-то Вы высказались. Слава Богу, возможно Вам от этого полегчает ;)
Позвольте уж ответить
Во-первых, недостатки имеются у всех. И это не грех. Грех - это обижаться на тех, кто эти недостатки озвучивает. И тем более как-то наказывать "обидчиков". Мне нравятся люди, обладающие чувством юмора, которое спасает их в подобных ситауциях. Жаль, что Вы к ним не относитесь.
Во-вторых, Ваш намек на мою манеру "ставить диагноз" или даже "лечить" не имеет под собою основания, ибо никогда не ставил таких целей. Манера разговаривать у меня такая - ну грех, да ;) У некоторых эта манера во много раз круче, однако с Вашей стороны это не вызывает такой реакции. Из чего я делаю вывод, что Вы признаете во мне достойного оппонента и это приятно. Не случайно ведь многие девушки больше всего ругает именно тех, кто им нравится ;)
В-третьих, авторитет. Согласитесь, глупо зарабатывать или наоборот, утрачивать какой бы то нибыло авторитет в подобной виртуальной среде. И втройне глупо делать это в нашем с Вами возрасте. Хотя, конечно, это сугубо мое мнение и этот форум значит для Вас неизмеримо больше, чем я полагаю.
В-четвертых, за многолетнюю "жизнь" на форуме у меня сложилось впечатление о том, что здесь принято забрасывать камнями "инакомыслящих" и Вы далеко не всегда воздерживаетесь от того, чтобы не присоединиться к метателям. А мне вот это противно и я, даже не разделяя мнения "жертвы" могу ломануться ему на подмогу, иногда теряя хладнокровие и позволяя резкости. Вы не могли не заметить, что мои выпады в Ваш адрес почти всегда случались именно в таких ветках
В-пятых.
Вы не один здесь такой "прохвесор". Однако именно Вам часто приходиться иметь дело с бунтарями. Может оттого, что на любой даже самый корректный выпад Вы сразу "расчехляете максим" ?
И последнее.
Я уважаю Вас прежде всего за Ваши знания и опыт в программировании и этому не помеха ни Ваши слова против меня, ни Ваши действия. В других областях я часто не согласен с Вами, однако вступаю в полемику далеко не всегда, ибо, как и Вы, уважаю чужое мнение. А вот менторство, попытки "поставить на место" при любом случае, даже без повода, не уважаю абсолютно. Вот такой вот я нехороший ;)
PS Я бы не писал все это в форум, если бы в Вашей авторитетной анкете имелся бы почтовый адрес.
← →
Gydvin © (2007-07-11 12:02) [49]Начинаецца :(
← →
MsGuns © (2007-07-11 12:02) [50]Блин, не внимательно перечитал перед отсылкой. Надеюсь на то, что Вы правильно поймете и не осудите за опечатки и семантические ошибки. Ваш богатый опыт в изучении великого и могучего да поможет Вам в этом нелегком деле ;))
← →
Anatoly Podgoretsky © (2007-07-11 12:05) [51]> MsGuns (11.07.2007 10:51:44) [44]
Запросто, но в твоем сообщение ключевое слово "на равных"
← →
Anatoly Podgoretsky © (2007-07-11 12:12) [52]> MsGuns (11.07.2007 11:57:48) [48]
> У некоторых эта манера во много раз круче, однако с Вашей стороны это не вызывает такой реакции.
Вызывает, если дать к этому повод.
С остальным в основном согласен.
← →
Юрий Зотов © (2007-07-11 12:14) [53]> Gydvin © (11.07.07 12:02) [49]
Нет. Не начинается. Нет смысла.
> MsGuns © (11.07.07 11:57) [48]
Еще раз - думайте что угодно, но от затеивания свар воздержитесь. Спорить с Вами я не намерен и не буду, бо бесполезно. А буду строго и неукоснительно выполнять свои обязанности - то есть, как только появится постинг, в котором прямо или косвенно высказывается мнение о ком-то, затевается ссора и т.п. - этот постинг будет немедленно удален. В совершенно полном соответствии с правилами форума. А при систематическом повторении подобного будет ставиться вопрос о RO. Тоже в совершенно полном соответствии с правилами форума.
Вот так. И на этом разговор закончен.
PS
Даже не советую Вам задуматься над смыслом [45].
← →
VirEx © (2007-07-12 03:12) [54]Вобще хороший перенос это либо:
> [7] oldman © (09.07.07 19:06)
> Если память не изменяет, по новым правилам переносить можно
> В ЛЮБОМ месте, но так, чтобы не переносилась одна буква!
либо когда его вобще нет (т.е. когда не входящее слово переходит на следующую строку), но второй случай плох если область вывода текста не позволяет вывести следующую строку.
ЗЫ. ваш спор опять заставляет меня взяться за код)
← →
VirEx © (2007-07-12 06:11) [55]код:
function WordToSlog(str:string;words_iskl:TStrings):string;
function UpString(str:string):string;
var
i:integer;
begin
result:=str;
for i:=1 to length(Result) do
case Result[i] of
"а".."я": Dec(Result[i], 32);
end;
end;
//ищет в строке str с позиции index комбинацию из всех комбинаций согласной s и гласной g
function slog(str:string; index:integer; s,g:array of string):boolean;
//проверяет, гласная ли буква
function IsGlasn(c:char;g:array of string):boolean;
var
i:integer;
begin
result:=false;
for i:=low(g) to high(g) do
if c=g[i] then begin
result:=true;
exit;
end;
end;
var
i,y:integer;
s_,l_:string;
begin
result:=false;
for i:=low(s) to high(s) do
for y:=low(g) to high(g) do begin
s_:=UpString((s[i]+g[y]));
l_:=UpString(copy(str,index,2));
if s_=l_ then
{если перед слогом стоит гласная, то}
{if IsGlasn(str[index-1],g) then} begin
result:=true;
exit;
end;
end;
end;
//проверяет, по индексу в строке, стоит ли предлог, и передает через len его длину
function IsPredlog(str:string; index:integer; p:array of string; var len:integer):boolean;
var
i:integer;
begin
result:=false;
for i:=low(p) to high(p) do
if copy(str,index,length(p[i]))=p[i] then begin
len:=length(p[i]);
result:=true;
exit;
end;
end;
//ищет корень, точно такой же поиск как поиск предлога
function IsKoren(str:string; index:integer; c:array of string; var len:integer):boolean;
begin
result:=IsPredlog(str,index,c,len);
end;
//количество слогов
function GetSlogCount(str:string; s,g:array of string):integer;
var
i:integer;
begin
result:=0;
for i:=1 to length(str) do
if slog(str,i,s,g) then inc(result);
end;
//вставляет стоку substr в искомую str в позицию index
procedure InsStr(var str:string; substr:string; index:integer);
begin
if index=0 then exit;
str:=copy(str,1,index)+substr+copy(str,index+length(substr),length(str))
end;
const
//а б в г д е ё ж з и к л м н о п р с т у ф х ц ч щ ь ъ э ю я
s : array[1..19] of string =("б","в","г","д","ж","з","к","л","м","н","п","р","с","т","ф","х","ц","ч","щ"); //согласные
g : array[1..10] of string =("а","е","ё","и","о","у","э","ю","я","ы");//гласные
p : array[1..3] of string =("пре","пере","под"); //предлоги
c : array[1..3] of string =("прав","нос","воскл");//корни
var
i,y,z:integer;
begin
result:=str;
for i:=0 to words_iskl.Count-1 do
if UpString(str)=UpString(words_iskl[i]) then exit;
//если меньше одного слога то не переносится
if GetSlogCount(str,s,g)<2 then exit;
i:=1;y:=0;
while i<length(str) do begin
z:=0;
if IsPredlog(str,i,p,z) then inc(i,z) else //предлоги не переносим
if IsKoren(str,i,c,z) then inc(i,z) else //также как и корни
if slog(str,i,s,g) then begin
inc(y);
if y>1 then //избавляемся от просто --> п-рос-то
InsStr(str,"-",i-1);
inc(i);
end;
inc(i);
end;
result:=str;
end;
результат:
Москва Москва
Идиот Идиот
Лохотрон Лохотрон
Квазимодо Ква-зи-мо-до
Параллелепипед Па-рал-ле-ле-пи-пед
Изобретатель Изоб-ре-та-тель
слово сло-во
мангал ман-гал
трапеция тра-пе-ция
караганда ка-ра-ган-да
переносимый переноси-мый
эксгибиционист эксги-би-цио-нист
неправдоподобный неправдоподоб-ный
восклицание восклица-ние
абстракция абстрак-ция
странный стран-ный
икслючения:
Азия
узнаю
фойе
Москва
Лохотрон
← →
VirEx © (2007-07-12 06:15) [56]
> [55] VirEx © (12.07.07 06:11)
//если меньше двух слогов то не переносится
:)
даже если убрать вобще корни и предлоги то с большинством слов справляется отлично :)
← →
Юрий Зотов © (2007-07-12 08:33) [57]> VirEx © (12.07.07 06:15) [56]
> с большинством слов справляется отлично
ОК. Смотрим, что же это означает на деле.
1. Москва Москва 1
2. Идиот Идиот 2
3. Лохотрон Лохотрон 3
4. Квазимодо Ква-зи-мо-до
5. Параллелепипед Па-рал-ле-ле-пи-пед
6. Изобретатель Изоб-ре-та-тель
7. слово сло-во
8. мангал ман-гал
9. трапеция тра-пе-ция
10. караганда ка-ра-ган-да
11. переносимый переноси-мый 4
12. эксгибиционист эксги-би-цио-нист 5
13. неправдоподобный неправдоподоб-ный 6
14. восклицание восклица-ние 7
15. абстракция абстрак-ция 8
16. странный стран-ный
Слева - нумерация по порядку, справа - нумерация ошибок. Результат - 8 из 16, или 50%. Это называется "с большинством слов справляется отлично"?
← →
Юрий Зотов © (2007-07-12 08:45) [58]> VirEx © (12.07.07 06:15) [56]
Вообще, тут уже, по-моему, все ясно. Как выше говорили те, кто этой задачей занимался (причем говорили, что называется, в один голос), можно добиться точности где-то процентов 80. Чтобы этот процент повысить, в своей программе я вводил список исключений (но не в виде списка слов, а обобщенно, в виде списка неким образом сформулированных правил). В результате постепенного пополнения этого списка точность потихоньку доползла примерно процентов до 90 и на том остановилась. Чтобы двигаться дальше, нужно было вводить что-то еще - и вот тут-то я понял, что это "что-то еще" как раз и называется "словарь переносов".
← →
MsGuns © (2007-07-12 10:03) [59]>Слева - нумерация по порядку, справа - нумерация ошибок.
ОШИБОК в приведенном примере нет. Есть только НЕОПТИМАЛЬНЫЙ перенос или отсутствие такового в достаточно коротких словах. Результат же - уплотнение текста - на лицо
← →
boriskb © (2007-07-12 10:11) [60]MsGuns © (12.07.07 10:03) [59]
ОШИБОК в приведенном примере нет.
Так я могу любую задачу решить.
Если по своему разумению (как мне легче) смогу условия задачи менять.
← →
Юрий Зотов © (2007-07-12 10:21) [61]> MsGuns © (12.07.07 10:03) [59]
Ошибок нет, но отсутствие переносов есть. Чудесно.
Что ж, в таком случае, продолжая развивать Вашу мысль, предлагаю абсолютно универсальный и абсолютно безошибочный алгоритм расстановки переносов в абсолютно любом тексте на абсолютно любом языке - не расставлять их вообще.
Я уже могу бежать за Нобелевкой?
← →
MsGuns © (2007-07-12 12:09) [62]Я изначально подошел к этой проблеме как ИНЖЕНЕР, а не ЛИНГВИСТ
Задача - экономия пространства, занятого текстом. Она решается. Не максимально эффективно, но решается. А заниматься оптимизацией, как того требует ЮЗ, можно до бесконечности.
Если бы изобретатель первого двигателя во главу угла ставил экономию топлива, то паровой котел никогда не был бы создан.
ИМХО, тема исчерпала себя и участники занимаются трепом (я, кстати, тоже ;) )
← →
boriskb © (2007-07-12 12:41) [63]MsGuns © (12.07.07 12:09) [62]
участники занимаются трепом
Меняй, не меняй название форума - суть одна :))
← →
VirEx © (2007-07-12 17:19) [64]
> [57] Юрий Зотов © (12.07.07 08:33)
приведи пример переноса тех слов которые ты указал)
идиот -> и-диот -> ид-иот -> иди-от -> идио-т это по твоему правильно?)
лохотрон -> ло-хотрон -> лохо-трон -> и т.п.?)
ну и в том же духе)
← →
Юрий Зотов © (2007-07-12 18:33) [65]> VirEx © (12.07.07 17:19) [64]
Мо-сква
Иди-от
Лохо-трон
пе-ре-носи-мый
экс-ги-би-цио-нист
не-прав-до-по-доб-ный
вос-кли-ца-ние
аб-страк-ция
← →
Юрий Зотов © (2007-07-12 18:37) [66]> > VirEx © (12.07.07 17:19) [64]
Это если по строгим правилам (не отрывать букву от корня и пр.). А по упрощенным - вариантов еще больше.
← →
Юрий Зотов © (2007-07-12 18:50) [67]> MsGuns © (12.07.07 12:09) [62]
> Я изначально подошел к этой проблеме как ИНЖЕНЕР,
Инженеры - они тоже разные бывают. Бывают и такие, которых вполне устраивает, когда спроектированная ими дверь открывается только при помощи лома. Хотя назвать их ИНЖЕНЕРАМИ довольно трудно.
А если серьезно, то достаточной точностью в инженерном деле обычно считается 10-20 %. Но уж никак не 50 (50 - это как раз у тех, которые "при помощи лома").
← →
VirEx © (2007-07-12 22:01) [68]
> [65] Юрий Зотов © (12.07.07 18:33)
> > VirEx © (12.07.07 17:19) [64]
>
> Мо-сква
> Иди-от
> Лохо-трон
> пе-ре-носи-мый
> экс-ги-би-цио-нист
> не-прав-до-по-доб-ный
> вос-кли-ца-ние
> аб-страк-ция
помоему москва идиот и лохотрон не переносится
приставка в слове переносимый не разделяется
в слове неправдоподобный корени "правд" и "подоб" не разделяюстя
в "восклицание" сами найдите корень
а уж абстракция бедняга чем же вам не угодила?)
← →
MsGuns © (2007-07-12 22:06) [69]Удалено модератором
Примечание: Остынь
← →
Юрий Зотов © (2007-07-12 22:48) [70]> VirEx © (12.07.07 22:01) [68]
> москва идиот и лохотрон не переносится
Почему? Что мешает?
> приставка в слове переносимый не разделяется
Почему? Пе-ре. Буква не отделяется, а разделять слоги никто не запрещает.
> в слове неправдоподобный корени "правд" и "подоб" не разделяюстя
ИМХО, корни здесь "прав" (правда, правый, праведный, правило - слова однокоренные) и "доб" (хотя вот за него не уверен - подобрать слова с тем же корнем с ходу не могу).
> в "восклицание" сами найдите корень
"Кли" (клич, кликать).
> а уж абстракция бедняга чем же вам не угодила?
Не абстракция, а программа. В этом слове она недоставила переносов.
← →
VirEx © (2007-07-13 05:34) [71]
> > москва идиот и лохотрон не переносится
>
> Почему? Что мешает?
все правила нарушаете)
> > а уж абстракция бедняга чем же вам не угодила?
>
> Не абстракция, а программа. В этом слове она недоставила
> переносов.
лучше перебдить чем недобдить)
← →
Tirael © (2007-07-13 05:42) [72]
> Юрий Зотов © (12.07.07 18:50) [67]
А если серьезно, то достаточной
> точностью в инженерном деле обычно считается 10-20 %. Но
> уж никак не 50 (50 - это как раз у тех, которые "при помощи
> лома").
что правда серьезно??? 10 - 20 % при высоте 2м это 20-40 см, при ширине 80см это 8-16 см, если размеры на плюс, то не только лома но и кувалды будет мало... (это про дверь) разве это достаточная точность?
← →
sniknik © (2007-07-13 09:13) [73]> А заниматься оптимизацией, как того требует ЮЗ, можно до бесконечности.
насколько вижу, сторонним взглядом, он не требует, вопрос изначально шел о словаре переносов... ЮЗ просто стал отвечать скептикам, объяснять зачем он нужен, почему, и в каких случаях без него не обойтись.
> Задача - экономия пространства, занятого текстом. Она решается.
вообщето задача не в этом, а в поиске упомянутых словарей (либо, если с позиции скептиков без них добиться такой же точности (логично по моему, вытекает из требования нужности словаря))
вы подменили суть вопроса в топике также как подменили неудобные правила в [59] (ради которых, как понял, словари и нужны) для объявления ошибок не ошибками... интересно зачем?
← →
Юрий Зотов © (2007-07-13 11:21) [74]> Tirael © (13.07.07 05:42) [72]
Смотря, где, конечно. Если речь идет о расчете спирали для бытового утюга номинальной мощностью 1 кВт, то плюс-минус 200 ватт никого не волнуют. А если речь идет о расчетах ответственных, то там и 5 процентов (и даже 1 процент) бывает недопустимо много.
← →
Юрий Зотов © (2007-07-13 11:33) [75]> sniknik © (13.07.07 09:13) [73]
> ...скептикам...
Скорее, романтикам...
:о)
← →
brrrr (2007-07-13 13:44) [76]OFFTOP
Ах... Как эта ветка напоминает ветку про калькулятор... =)
/OFFTOP
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.73 MB
Время: 0.056 c