Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Вниз

список замен   Найти похожие ветки 

 
VirEx ©   (2008-04-02 17:09) [80]


> О! А, об это по подробнее, пожалуйста.

Лучше проверять такие сочетания в слогах, а то бывают такие словечки, что язык сломаешь.
Была здесь раньше такая тема:
Gydvin ©   (09.07.07 17:49)
Нигде случайно не попадался словарь переносов русского языка? В текстовом формате самое оно.
Очень нужно.


Предлагал такой код:

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;


результат работы:
Москва Москва
Идиот Идиот
Лохотрон Лохотрон
Квазимодо Ква-зи-мо-до
Параллелепипед Па-рал-ле-ле-пи-пед
Изобретатель Изоб-ре-та-тель
слово сло-во
мангал ман-гал
трапеция тра-пе-ция
караганда ка-ра-ган-да
переносимый переноси-мый
эксгибиционист эксги-би-цио-нист
неправдоподобный неправдоподоб-ный
восклицание восклица-ние
абстракция абстрак-ция
странный стран-ный

икслючения:
Азия
узнаю
фойе
Москва
Лохотрон

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


 
clickmaker ©   (2008-04-02 17:21) [81]


> пвио, пв (?)

"мой папа служит в ПВО: и морда - во, и жопа - во"


 
Johnmen ©   (2008-04-02 17:28) [82]

"а потому, что пьёт он ПИВО"


 
VirEx ©   (2008-04-02 17:31) [83]


>  [81] clickmaker ©   (02.04.08 17:21)
>
> > пвио, пв (?)
>
> "мой папа служит в ПВО: и морда - во, и жопа - во"

ЭТО НИРАЗУ НЕ СЛОВО РУССКОГО ИЗЫКА, ПОЭТОМУ ДАЖЕ ВОРД ИГНОРИРУЕТ


 
VirEx ©   (2008-04-02 17:33) [84]


> [82] Johnmen ©   (02.04.08 17:28)
> "а потому, что пьёт он ПИВО"

вот поэтому и было предложено

> [80] VirEx ©   (02.04.08 17:09)


 
Johnmen ©   (2008-04-02 17:38) [85]


> ЭТО НИРАЗУ НЕ СЛОВО РУССКОГО ИЗЫКА, ПОЭТОМУ ДАЖЕ ВОРД ИГНОРИРУЕТ

А какого языка это слово? Сам я даже боюсь предположить...
И чт о за слово "ВОРД"? Игнорируем...


 
VirEx ©   (2008-04-02 17:51) [86]


>  [85] Johnmen ©   (02.04.08 17:38)

это аббревиатура


 
Johnmen ©   (2008-04-02 18:00) [87]


> VirEx ©   (02.04.08 17:51) [86]
> это аббревиатура

А аббревиатура - это трансглюкавые мымрики?


 
Anatoly Podgoretsky ©   (2008-04-02 18:11) [88]

> Дмитрий С  (02.04.2008 13:42:05)  [5]

Из слова хлеб элементарно получается пиво, путем всего лишь четырех замен.


 
Anatoly Podgoretsky ©   (2008-04-02 18:13) [89]

> Игорь Шевченко  (02.04.2008 14:08:11)  [11]

О и ты туда же.
Вообще то парень на ноблевку тянет, а получит шнобелевку..


 
VirEx ©   (2008-04-02 18:13) [90]


>  [87] Johnmen ©   (02.04.08 18:00)
>
> > VirEx ©   (02.04.08 17:51) [86]
> > это аббревиатура
>
> А аббревиатура - это трансглюкавые мымрики?

Да, потомучто ОБХСС, КГБ, ГИБДД и тому подобные мымрики могут нарушать абсолютно любые правила русского словообразования, потому как это не слова (еще раз повторяюсь)


 
Anatoly Podgoretsky ©   (2008-04-02 18:13) [91]

> kiberg  (02.04.2008 14:15:12)  [12]

Тебе пример с хлебом привели, не понятно?


 
Anatoly Podgoretsky ©   (2008-04-02 19:28) [92]

> kiberg  (02.04.2008 14:49:40)  [40]

Тебе привести хрестоматийный пример с Екатериной 2, она в слове из трех букв, сделала четыре ошибки, и не одной правильной буквы их оригинала не было, пример с хлебом мелкие брызги, более вероятный, чем у нее.


 
Anatoly Podgoretsky ©   (2008-04-02 19:28) [93]

> Johnmen  (02.04.2008 15:00:46)  [46]

Это горы, одна лишняя буква, и две замененыF0иной 2, она в слове из трех букв, сделала четыре ошибки, и не одной правильной буквы их оригинала не было, пример с хлебом мелкие брызги, более вероятный, чем у нее.


 
Johnmen ©   (2008-04-02 22:59) [94]


> VirEx ©   (02.04.08 18:13) [90]
> Да, потомучто ОБХСС, КГБ, ГИБДД
> и тому подобные мымрики могут нарушать абсолютно любые правила
> русского словообразования, потому как это не слова (еще
> раз повторяюсь)

Это чё за логика такая интересная - "это не слова, потому что могут нарушать абсолютно любые правила русского словообразования"?
Правила спряжения не нарушают, к примеру.
Так что же это? Если не слова и не мымрики?


 
VirEx ©   (2008-04-03 17:30) [95]


>  [94] Johnmen ©   (02.04.08 22:59)
> Так что же это? Если не слова и не мымрики?

Это и есть мымрики. Если я увижу в словаре ГОУ ДОСН СДЮШОР, тогда это будет словами, а сокращение это и есть сокращение, аббревиатура - ничем кроме аббревиатуры не является.

Пиво - это понятие, которым именуется некий напиток неприятного мочевого цвета.
ПВЗ (ПиВоваренный Завод) - это сокращение, притом такое сокращение, в котором только одна из букв характеризует общее значение аббревиатуры - "Завод".

заглянем в вики:
Слово — центральная единица языка. Это основная номинативная и когнитивная единица языка, служащая для именования и сообщения о предметах, признаках, процессах и отношениях.

Пиво - единица языка, потомучто в русском языке оно означает предмет (жидкий мутный противный напиток).
ПВЗ - это солянка из единиц языка, в русском языке такого нет. Смысл этой аббревиатуры характеризует одно из слов в его "составе". Притом ПВЗ можно расшифровать как угодно, хоть ПеньковоВаленковый Завод.

> Правила спряжения не нарушают, к примеру.
Так ведь перед тем как утвердить аббревиатуру, немного мозгами шевелят, чтобы благозвучней было.
Что-то такой аббревиатуры я не видел: ЪХЙЬ


 
Игорь Шевченко ©   (2008-04-03 17:43) [96]


> Пиво - единица языка, потомучто в русском языке оно означает
> предмет (жидкий мутный противный напиток).


Сам ты противный


 
Johnmen ©   (2008-04-03 17:50) [97]


> VirEx ©   (03.04.08 17:30) [95]

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

ЗЫ
Википедию читаешь - это хорошо. Посмотри на досуге определение аббревиатуры.


 
VirEx ©   (2008-04-03 18:13) [98]


>  [97] Johnmen ©   (03.04.08 17:50)
>
> > VirEx ©   (03.04.08 17:30) [95]
>
> Ну с логикой ты не очень дружишь. Русский язык не очень
> знаешь. Пиво не любишь. Это мы увидели, спасибо.
> Но зачем постить здесь продукты жизнедеятельности личных
> мозговых извилин?
>
> ЗЫ
> Википедию читаешь - это хорошо. Посмотри на досуге определение
> аббревиатуры.

Логика:
Слово это слово, т.е. единица языка, значение название или определение чего-либо.
Набор букв из слов - это набор букв из слов. Не более. Как бы аббревиатура не "уважала" правила словообразования, она не станет словом, пока не войдет в язык в виде одного понятия, после чего начнет считаться словом.
Пример: эсэсовец - это слово, т.к. означает человека имеющего принадлежность к вооруженному формированию СС. А "СС" это аббревиатура, и означать она может что угодно:
СС (нем. Schutzstaffel, охранные отряды) — вооружённые формирования нацистов в 1923—1945 годах.
СС — система счисления
СС — название электровоза (Сурамский Советский)
СС - Советский Союз в сокращении КПСС
CC — сокращённое название организации и лицензий Creative Commons

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

З.Ы.
Если ты споришь ради спора - пожалуйста. Я с удовольствием рассмотрю твои подтверждения твоих же логических рассуждений. Ты только по сути чаще пиши, а то скучно читать пустословные заявления и твое личное отношение к оппонентам.


 
uniken1 ©   (2008-04-03 18:16) [99]


> Как можно оптимизировать алгоритм?

Алгоритм не описан.
Я несколько раз делал нечто подобное через массив байт. обращаемся к строкам(исходной и из словаря) как массивам байт, при проверке вычитаем соответствующие элементы мыссивов. Результат проверяем через некоторые заданные условия(битовые маски?), нпример более 2 байт-разлиий или ограничить не верность первого символа (можно сильно ускорить индексацией словаря).


 
VirEx ©   (2008-04-03 18:37) [100]


> [96] Игорь Шевченко ©   (03.04.08 17:43)
>
> > Пиво - единица языка, потомучто в русском языке оно означает
>
> > предмет (жидкий мутный противный напиток).
>
>
> Сам ты противный

Пиво вобще немецкое изобретение (я так думаю).
Наш выбор: квас и медовуха.


 
uniken1 ©   (2008-04-03 19:31) [101]


> Пиво вобще немецкое изобретение (я так думаю).

http://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%B2%D0%BE
исторически немцы к происхождению пива не имеют отношения


 
Игорь Шевченко ©   (2008-04-03 19:36) [102]


> Пиво вобще немецкое изобретение (я так думаю).
> Наш выбор: квас и медовуха.


И шовинист к тому же


 
VirEx ©   (2008-04-03 21:01) [103]


>  [101] uniken1 ©   (03.04.08 19:31)
>
> > Пиво вобще немецкое изобретение (я так думаю).
>
> http://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%B2%D0%BE
> исторически немцы к происхождению пива не имеют отношения

Там же:
Однако некоторые римские историки в начале нашей эры упоминали, что кельтские, германские и другие племена пили пиво.


 
uniken1 ©   (2008-04-03 21:47) [104]

Исходное

> Пиво вобще немецкое изобретение



> Однако некоторые римские историки в начале нашей эры упоминали,
>  что кельтские, германские и другие племена пили пиво.

Теперь еще раз пречитай и сравни время германия 2-7 в.н.э и Египет 5-4 в. ДО.Н.Э.
С таким подходом, я только что изобрел Электиричество, я настолько суров...


 
VirEx ©   (2008-04-03 22:12) [105]


> [104] uniken1 ©   (03.04.08 21:47)
> Исходное
>
> > Пиво вобще немецкое изобретение
>
>
>
> > Однако некоторые римские историки в начале нашей эры упоминали,
> >  что кельтские, германские и другие племена пили пиво.
>
> Теперь еще раз пречитай и сравни время германия 2-7 в.н.э
> и Египет 5-4 в. ДО.Н.Э.
> С таким подходом, я только что изобрел Электиричество, я
> настолько суров...

"И вновь лампочка Ильича осветила его мрачную хижину".
Будь по твоему. Ты мое мнение изменил.



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2008.05.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.67 MB
Время: 1.673 c
2-1208521501
zdm
2008-04-18 16:25
2008.05.18
Текстовик и поиск


15-1207197918
php
2008-04-03 08:45
2008.05.18
PHP


11-1188735091
Виктор007
2007-09-02 16:11
2008.05.18
CollapseProcTable0.inc


2-1208345263
Fasco
2008-04-16 15:27
2008.05.18
помогите ...............


15-1207208984
@!!ex
2008-04-03 11:49
2008.05.18
Подключение компа к Веге.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский