Помощь - Поиск - Пользователи - Календарь
Полная версия: частотный словарь
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гость_annie
вообще моя задача выглядит так:
На входе текстовый файл на языке логлан. Результат работы — алфавитно-частотный словарь лексем заданного текста. В полученном файле должно быть указано следующее: лексема, ее принадлежность к тому или иному грамматическому классу, частота лексемы, ранг.
Логлан — язык аналитического типа. Грамматических классов три: предикаты, имена, «грамматические слова». Предикаты характеризуются наличием стыка согласных, оканчиваются на гласную. Имена оканчиваются на согласный звук. «Грамматические слова» не имеют стыков согласных и обязательно оканчиваются на гласную. Гласные: 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
Смысл задачи состоит в разборе читаемых строк.
Общий алгоритм таков:

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

Это называется структурный метод решения задачи, а теперь разбьираем каждый пункт подробнее, подробнее, до тех пор, пока это можно будет описать в виде предложений на алгоритмическом языке Паскаль...
volvo
Гость_annie
Ну Вы же все сами объяснили: в чем же проблема?

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

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

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

Oleg_Z
Писали вместе lol.gif
Гость_annie
чем выше частота лексемы, тем выше ранг, т.е. самая частая лексема д.б. первой в ранговом перечислении, но при этом слова пишутся по алфавиту. короче, я запуталась
Altair
Цитата
Писали вместе 

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

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

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

:p2: Я тут набросал тестовую версию (с анализом строк на входе, но без сортировки на выходе). Дальше дело за Вами - сортируйте, как Вам нужно... Будут вопросы - пожалуйста ...
ProtasSoft
Я скачал файл LogLan.pas, но там отсутствуют комментарии к функциям и процедурам. Можно ли их сделать?
Что необходимо подать на вход и как увидеть результат.
volvo
На вход (в текстовом файле LEXEMA.LGL) подается анализируемый текст (скопируй его из первого поста), а результат будет распечатан по окончании обработки файла. Комментарии не делал, т.к. все совершенно прозрачно...
ProtasSoft
unsure.gif
Можно все-таки расчитывать на прояснение прозрачности.
Alatar
Эх, вообще подобные задачи решаются с помощью n-нарных деревьев. Такой словарь в памяти в виде дерева занимает не больше 200Кб, а в файл заносится расшифрованное дерево, пройденное снизу вверх.

К чему здесь Эхи и Ахи? Хочется показаться умным? приведи код.
А пытаться себя так вот показать - первый признак невоспитаности!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.