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

Доброго дня суток!
Нужна ваша помощь в решении задачи (swi-prolog).
Задача: у файле хранится текст на несколько предложений, нужно подсчитать количество этих предложений.
Вот часть программы, она разбивает текст на предложения. Помогите допилить ее)

prolog Код:
слово(Chr)-->буква(C),
                       буквы(Cs),
                      {string_to_list(Chr,[C|Cs])}.

буквы([C|T])-->буква(C),!,
                        буквы(T).
буквы([])-->[].
буква(C)-->[C],{code_type(C,alpha)}.
предложение1([Слово|Слова])-->слово(Слово),
                      (probels(_),предложение1(Слова)
                         ;конец_предложения1(_),{Слова=[]}
                         ).

конец_предложения1(P) --> [P],{member(P, ".?!")}.

предложение([S|Snts])-->предложение1(S),(" ";""),предложение(Snts),!.
предложение([])-->[].

Запускается она вот так: phrase(предложение(S),"Этопредложение. И это!",Rest),string_to_list(Str2,Rest).
Ответить с цитированием
  (#2 (permalink)) Старый
compasses compasses вне форума
Member
 
Сообщений: 44
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 25.02.2014
По умолчанию 13.10.2014, 12:30

Не совсем понял, что надо-то.
Навскидку, почему бы не посчитать количество точек? Сколько точек, столько предложений.
Многоточия отдельно обрабатывать.
Ответить с цитированием
  (#3 (permalink)) Старый
compasses compasses вне форума
Member
 
Сообщений: 44
Сказал(а) спасибо: 1
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 25.02.2014
По умолчанию 13.10.2014, 15:41

Появилась свободная минутка.
Вот посчет количества предложений:
prolog Код:
% sentence([f,i,r,s,t,?,s,e,c,o,n,d,!,twelfth,.,.,.], C).
% C = 3
sentence([], 0).
sentence([H, M|T], Count) :- member(H, ['.', '?', '!']),
              \+ duplicate([H, M|T]) ,
              sentence([M|T], Count1), Count is Count1 +1.
sentence([H], Count) :- member(H, ['.', '?', '!']),
            sentence([], Count1), Count is Count1 +1.
sentence([_], Count) :- sentence([], Count).
sentence([_|T], Count) :- sentence(T, Count).
duplicate([H,H|_]).
как читать из файла, сам найдешь. перевод из строки в список и обратно тоже уже сто раз обсуждалось.
Ответить с цитированием
Пользователь сказал cпасибо:
студент_антон (13.10.2014)
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет количества элементов James007Bond Prolog 9 20.09.2012 20:07
Считывание текста из файла с выводом предложений с заданным количеством строк Pypsik Вопросы начинающих программистов 37 21.06.2011 03:02
Подсчет количество бит в 44 кб moon11 Вопросы начинающих программистов 1 14.02.2011 01:41
Написать программу, которая вводит текст, состоящий из нескольких предложений imported_nyb Delphi 2 30.01.2011 14:37
Подсчет элементов в масиве dino-4udo Assembler 0 17.12.2010 15:40
Подсчет количества оценок Евгений А. С/С++ 4 06.03.2010 21:12
Подсчет числа вхождений Apelsinovaya Prolog 10 25.05.2008 16:00
подсчет повторения в списке toshkaexe Prolog 4 16.05.2008 01:06
Подсчет пробелов в строке Iv@nich C++ Builder 6 14.04.2008 00:04
Подсчет символов в С++ Aleksa Вопросы начинающих программистов 14 02.05.2006 15:40
С помощью предложений COND или CASE определите функцию imported_Irinka Lisp 2 15.05.2004 11:05
Как найти генератор предложений на Prolog Ylenka Prolog 1 15.03.2004 21:31



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