Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Деление слов на слоги в Prolog
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
ktotaika ktotaika вне форума
Новичок
 
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.12.2017
По умолчанию Деление слов на слоги в Prolog - 24.12.2017, 19:16

Добрый вечер!

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


prolog Код:
DOMAINS
letter = char
word_ = letter*
 
PREDICATES
    divide(word_,word_,word_,word_)
    vocal(letter)
    consonant(letter)
    string_word(string,word_)
    append(word_,word_,word_)
     
CLAUSES
    divide(Start,[T1,T2,T3|Rest],D1,[T2,T3|Rest]):-
        vocal(T1),consonant(T2),vocal(T3),
        append(Start,[T1],D1).
    divide(Start,[T1,T2,T3,T4|Rest],D1,[T3,T4|Rest]):-
        vocal(T1),consonant(T2),consonant(T3),vocal(T4),
        append(Start,[T1,T2],D1).
    divide(Start,[T1|Rest],D1,D2):-
        append(Start,[T1],S),
        divide(S,Rest,D1,D2).
 
    vocal('a'). vocal('e'). vocal('i').
    vocal('o'). vocal('u'). vocal('y').
 
    consonant(B):-
        not(vocal(B)).
 
    string_word("",[]):-!.
    string_word(Str,[H|T]):-
        bound(Str),frontchar(Str,H,S),string_word(S,T).
    string_word(Str,[H|T]):-
        free(Str),bound(H),string_word(S,T),frontchar(Str,H,S).
    append([],L,L):-!.
    append([X|L1],L2,[X|L3]):-
        append(L1,L2,L3).
 
   
GOAL
            write("Write a multi-syllable word: "),
            readln(S),nl,
            string_word(S,Word),
            divide([],Word,Part1,Part2),
            string_word(Syllable1,Part1),
            string_word(Syllable2,Part2),
            write("Division: ",Syllable1,"-",Syllable2),nl,
        fail.
Ответить с цитированием
  (#2 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,966
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 26.12.2017, 23:04

Я понятия не имею как делятся английские слова на слоги. Если бы Вы рассказали варианты деления, то я бы Вам помог.
А прога Ваша по моему есть не что иное, как индусский код. Деление на слоги надо писать не так. Надо в цикле отрывать по одной букве, смотреть гласная она или согласная, и в зависимости от комбинации этих оторванных двух-трёх (или больше) букв выделять слог.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбииение строки на слоги Fried Prolog 2 25.04.2014 13:13
Разбивание слова на слоги Oleg_ Lisp 2 12.05.2012 23:37
Деление скорости интернет bot!? Вопросы начинающих программистов 2 03.04.2011 19:26
Дан текст, для каждого из слов указать, сколько раз оно встречается среди слов текста wekze C++ Builder 8 19.02.2011 10:27
деление диска golova Windows XP 4 22.11.2010 12:03
деление диска golova Накопители 0 23.10.2010 15:43
Деление слов на слоги FirmUltras Prolog 9 17.10.2010 20:09
ыполнить разбиение слов в ряде на слоги с помощью дефиса anchik Lisp 1 22.06.2010 23:33
Деление без остатка MagnusWest С/С++ 2 16.03.2010 22:47
деление многочленов oleiiika Pascal 13 23.06.2008 13:47
деление диска golova2 Софт и программы 5 23.04.2008 10:51
Нужен морфологический разбор слов в Prolog Slava Antonov Prolog 7 11.06.2004 15:06



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов