1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
| 18192123 |
21.02.2009 12:16
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Требуется определить энтропию сообщения при условии независимости символов и при условии попарной зависимости символов..
Что касается 1-го случая - H = -сумма (i=1,m)pi * log pi, логарифм берётся по основанию два, а pi - вероятность появления i-го символа.. Здесь проблем не возникает...нахождение вероятности не вызывает трудностей.. Во 2-м случае: H = -1/2*сумма (i) сумма(j) pij * log pij, pij - вероятность появления пары символов. И как раз с этой вероятностью pij проблемка - не пойму, как её получить..
Объясните пожалуйста, а что нужно делать, чтобы найти вероятность pij (при условии попарной зависимости символов)? |
| volvo |
21.02.2009 14:38
Сообщение
#2
|
|
Гость |
Цитата а что нужно делать, чтобы найти вероятность pij (при условии попарной зависимости символов)? Собирать статистику, насколько часто в языке, на котором написано сообщение, встречаются те или иные двухбуквенные сочетания. Для русского языка может быть полезной вот это: Новый частотный словарь русской лексики (приведены количества встреченных сочетаний двух букв... Те сочетания, которые не были встречены, отсутствуют: их вероятность = 0. Собственно вероятности можно получить если делить число совпадений для каждого двухбуквенного сочетания на общую сумму всех совпадений...). Для других языков - надо искать (или составлять самостоятельно) другие частотные словари... |
| 18192123 |
21.02.2009 14:47
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Собирать статистику, насколько часто в языке, на котором написано сообщение, встречаются те или иные двухбуквенные сочетания. Для других языков - надо искать (или составлять самостоятельно) другие частотные словари... У меня сообщения на голландском.. И что будет значить составлять самостоятельно частотный словарь (составить всё возможные пары, проверить какие из них и по сколько раз встречаются в сообщении, и тогда, чтобы получить вероятность, количество конкретной пары поделить на общее количество возможных пар)? Сообщение отредактировано: 18192123 - 21.02.2009 15:06 |
| volvo |
21.02.2009 16:20
Сообщение
#4
|
|
Гость |
(составить всё возможные пары, проверить какие из них и по сколько раз встречаются в сообщении, и тогда, чтобы получить вероятность, количество конкретной пары поделить на общее количество возможных пар)? Нет... У тебя не сообщение, которое само по себе, а сообщение на голландском языке Значит, тебе надо будет взять несколько объемных текстов на этом языке, и проанализировать вероятность, с которой в текстах встречаются все двухбуквенные комбинации... Чем объёмнее тексты (и чем их больше), тем ближе к истине будет такой словарь... Можно попробовать найти частотные словари для голландского языка... |
| 18192123 |
21.02.2009 16:40
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Нет... У тебя не сообщение, которое само по себе, а сообщение на голландском языке Значит, тебе надо будет взять несколько объемных текстов на этом языке, и проанализировать вероятность, с которой в текстах встречаются все двухбуквенные комбинации... Чем объёмнее тексты (и чем их больше), тем ближе к истине будет такой словарь... Можно попробовать найти частотные словари для голландского языка... А если не все комбинации встретятся? Такое может быть? |
| volvo |
21.02.2009 16:43
Сообщение
#6
|
|
Гость |
Если не встретятся при просмотре достаточно больших объемов - значит, их вероятности стремятся к нулю.
|
| 18192123 |
21.02.2009 17:05
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Пытаюсь сформировать массив структур, в котором каждая будет хранить ин-цию о паре символов...
т.е. в TWO[1] хочу получить aa, в TWO[2] - ab и т.д.. а получается "Ь и ф...." Подскажите, как добиться желаемого результата? |
| volvo |
21.02.2009 17:23
Сообщение
#8
|
|
Гость |
Цитата т.е. в TWO[1] хочу получить aa, в TWO[2] - ab и т.д.. Ты по определению этого не добьешься... Потому что char может хранить только один символ, а не строку... Я бы на твоем месте сделал таблицу:struct p и заполнять проще, индекс по вертикали - номер первой буквы от 'a', по горизонтали - номер второй буквы... Только не забудь все буквы привести к одному регистру, и если есть какие-то спец. символы в голландском языке, то и их надо будет учесть... |
| 18192123 |
24.02.2009 20:03
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Появились проблемы с записью в файл значения энтропии..
Скажите пожалуйста, в чём дело? Сообщение отредактировано: volvo - 26.02.2009 22:36 Эскизы прикрепленных изображений |
| volvo |
24.02.2009 20:30
Сообщение
#10
|
|
Гость |
Оберни вызов функции fopen обработкой ошибки, и посмотри, что будет:
FILE *f; А теперь внимательно посмотри, чему у тебя присваивается fileOut... |
| Altair |
25.02.2009 15:16
Сообщение
#11
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
-------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
| 18192123 |
28.02.2009 20:05
Сообщение
#12
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
volvo,Altair, спасибо!
|
![]() ![]() |
|
Текстовая версия | 8.12.2025 22:38 |