Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ частотный словарь

Автор: Гость_annie 18.11.2004 22:05

вообще моя задача выглядит так:
На входе текстовый файл на языке логлан. Результат работы — алфавитно-частотный словарь лексем заданного текста. В полученном файле должно быть указано следующее: лексема, ее принадлежность к тому или иному грамматическому классу, частота лексемы, ранг.
Логлан — язык аналитического типа. Грамматических классов три: предикаты, имена, «грамматические слова». Предикаты характеризуются наличием стыка согласных, оканчиваются на гласную. Имена оканчиваются на согласный звук. «Грамматические слова» не имеют стыков согласных и обязательно оканчиваются на гласную. Гласные: a, e, i, o, u, y. Согласные: b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, z.

например текст
Ne Rorlensia
Coi la Djeimz Djeninz
Na lepo mi pa hijra lo terkea guo, mi madzo ne sanbruci je li, Ae lo pucka ga kinci tu, lu. I, na lepa ckemo, le sinma ji nu namci liegei, Star Wars, gei ga mutce rornurfundi.
Zou, liu puckai, napa siftoa liu pucka, ja pa mela Nevesefon, purda.
Mi respli levi sanbruci vi le sensi fikco rizgru. I la Maik, ji fremi je mi, ganble lemi sanbruci, e kendiu le jursaa je sei. I Mai ze mi dislu lo nu balci lengu giazu.
Na le fucdei, mi godzi le terkea komta ci rizgru kruma. I, vi kei, ba tokri barta, e fu srite lemi nu sanbruci. Isui, le tokri barta ga fu srite ro notlenfoa je seo. I mi kacycea lepo ri, nei nursrisu, ikou su, nei nu kotlensri, iceci su, nei nu lensri le nersornumsio, iceci su, nei nu lensri le danse mrenu tojo smisrisio pe la Crrlak Holmz. Ibuo ro, nei nu lensri lo natra lengu. I leu natra lengu ga nu setpai lau lo junga, lo arba, lo polka, ro notbi. I ri le rizgrudjo pa kendiu su nei ri le terkea ge lengu galpai.
La Maik, pa mi hijra. I na lepo vizka mi guo, Mai cutse li, Tu tsedaspa ti! lu.

буду очень признательна даже на маленький намёк по концепции решения... а то моих знаний явно на хватает, а попытки приводят к ...
спасибо

Автор: Altair 18.11.2004 22:20

Смысл задачи состоит в разборе читаемых строк.
Общий алгоритм таков:

1.читаем очередную строку.
2. разбираем ее на слова.
3. анализируем слова.

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

Автор: volvo 18.11.2004 22:22

Гость_annie
Ну Вы же все сами объяснили: в чем же проблема?

1. читаем след. слово из файла.
2. проверяем список уже обработанных лексем, если текущее слово находится там - идем на п.1, увеличив в таблице частот значание для текущей лексемы.
2. каждое слово проверяем на принадлежность тому или иному грамматическому классу (согласно приведенным критериям - проблемы быть не должно)...
3. увеличиваем количество (частоту) соответствующей лексемы (и заносим ее в список уже обработанных)
4. идем на п.1

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

p.s. кстати, что есть "ранг?"

Oleg_Z
Писали вместе lol.gif

Автор: Гость_annie 18.11.2004 22:58

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

Автор: Altair 18.11.2004 23:07

Цитата
Писали вместе 

земтно :D
Я старался тебя обогнать (видимо печатаю медленне) поэтому менее раскрыто написал smile.gif :D :P

Цитата
короче, я запуталась

Давайте сначала.
1.Итак читаем стрку. (это мы умеем)
2. разбираем на слова (это тоже умеем, таких задач здесьрешено много).
3. Анализируем слова.
Все сводится к анализу слов!

Автор: volvo 18.11.2004 23:50

Гость_annie

:p2: Я тут набросал тестовую версию (с анализом строк на входе, но без сортировки на выходе). Дальше дело за Вами - сортируйте, как Вам нужно... Будут вопросы - пожалуйста ...


Прикрепленные файлы
Прикрепленный файл  LOGLAN.PAS ( 2.69 килобайт ) Кол-во скачиваний: 483

Автор: ProtasSoft 23.08.2005 20:43

Я скачал файл LogLan.pas, но там отсутствуют комментарии к функциям и процедурам. Можно ли их сделать?
Что необходимо подать на вход и как увидеть результат.

Автор: volvo 23.08.2005 20:50

На вход (в текстовом файле LEXEMA.LGL) подается анализируемый текст (скопируй его из первого поста), а результат будет распечатан по окончании обработки файла. Комментарии не делал, т.к. все совершенно прозрачно...

Автор: ProtasSoft 23.08.2005 21:12

unsure.gif
Можно все-таки расчитывать на прояснение прозрачности.

Автор: Alatar 16.09.2005 1:58

Эх, вообще подобные задачи решаются с помощью n-нарных деревьев. Такой словарь в памяти в виде дерева занимает не больше 200Кб, а в файл заносится расшифрованное дерево, пройденное снизу вверх.

К чему здесь Эхи и Ахи? Хочется показаться умным? приведи код.
А пытаться себя так вот показать - первый признак невоспитаности!!!