powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная цепь Маркова и визуализация графов
6 сообщений из 6, страница 1 из 1
Тяпничная цепь Маркова и визуализация графов
    #39190670
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здарова челы.

Задумался я о прогнозировании появления следующего английского слова
в англоязычном тексте. В качестве примера взял тексты Jack London - Call Of Wild.

В качестве способа анализа и наблюдения - цепь маркова.

Цепь Маркова - или Марковская цепь (Markov Chain) это орграф дуги которого
имеют "вероятности срабатывания". Используя такой орграф можно построить
архиватор базирующийся на особенностях языка.

Можно исследовать особенности языка. И можно (наверное) составить
профиль писателя или жанра.

(В данном конкретном анализе я не ищу способа построить оптимальный архиватор.
А просто хочу для себя поразбираться с графами и методами их визуализации
типа (Graphviz))


Входные данные:

http://london.sonoma.edu/writings/CallOfTheWild/

Выходные данные:

Отчет по дуг отранжированных по количеству исходящих связей

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
the:of 103
the:in 88
was:he 80
the:to 61
was:it 59
the:and 51
had:he 44
the:on 41
he:and 39
the:at 38
his:of 34



по алфавиту

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
'frisco:to 1
'tween-decks:the 1
'way:go 1
1897:of 1
2:snow 1
3:himself 1
4:good 1
a:'frisco 1
a:accompanied 1
a:accumulated 1
a:across 1
a:administered 1
a:after 1
a:against 1



Примечание 1

Без фильтрации не обошлось. Я убрал из текста пробелы, знаки пунктуации
и оставил только alpha-num + символ апострофа + символ дефиса (hyphen).

Примечание 2

Графический пакет graphviz в состоянии отработать только 2000 вершин.
При большем количестве exe-шник аварийно завершает свою работу...
вобщем буду искать ему альтернативу.

Примечание 1

Без фильтрации не обошлось. Я убрал из текста пробелы, знаки пунктуации
и оставил только alpha-num + символ апострофа + символ дефиса (hyphen).

Примечание 2

Графический пакет graphviz в состоянии отработать только 2000 вершин.
При большем количестве exe-шник аварийно завершает свою работу...
вобщем буду искать ему альтернативу.

Чуть позже приаттачу картинку-орграф.

Вобщем кому любопытно - пишите в каментах.
...
Рейтинг: 0 / 0
Тяпничная цепь Маркова и визуализация графов
    #39192024
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

молодец, я бы тоже поковырять хотел что-то такое.
...
Рейтинг: 0 / 0
Тяпничная цепь Маркова и визуализация графов
    #39192131
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonГрафический пакет graphviz в состоянии отработать только 2000 вершин.
При большем количестве exe-шник аварийно завершает свою работу...
вобщем буду искать ему альтернативу.

С graphviz я тупо не разобрался. В нём насколько я понял - разные утилиты
для разных типов (или классов графов). Я использовал dot а он не тянет
много вершин.

Немного помогли утилиты 2Pi(twopi) и sfdp которые могут рисовать более 2к
вершин но делают рёбра прямые. Что в моём случае неудобно.

Остался за кадром вопрос как сделать "make planar graph" (не могу подобрать
глагол - расплющивание, распланаривание) чтобы вершины располагались
не навалом и рёбра пересекались по минимуму.

Также нужны некоторые важные опции такие как поместить в центр главную
вершину или наиболее мощную вершину, выделить клику и пометить
разными цветами вершины и рёбра. Проставить на рёбрах маркеры (вероятности
переходов).

Без планарности картика такая (sfdp renderer):
...
Рейтинг: 0 / 0
Тяпничная цепь Маркова и визуализация графов
    #39197970
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonС graphviz я тупо не разобрался. В нём насколько я понял - разные утилиты
для разных типов (или классов графов).

да. сирко пытается делать типа круглые графы, а дот направленные.
Остальные утилиты я забыл.


вот один пример


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
digraph world {

System -> output:po;
System -> output:sso;



System -> database[label="database\n interface\n \n "];
database -> System;
User ->input:m;     
User -> input:i;    
User ->  input:n;   


brain -> User;
brain[shape="rectangle",style="rounded"];
database[shape="rectangle",style="rounded"]

output:pi -> User;
output:ssi -> User;
User -> brain;

output [shape=record, label="{{<po>| printer | <pi>} | { <sso>|screen|<ssi> } }"]
input [shape=record, label="{{<p>  |keyboard| <n> } |{<so> |screen | <m>}| {<mo>| mouse|<i> } }"]
//empty [shape=record, label="\n \n \n  |  | \n\n\n", color = red]
//key[label = " "]

input:p  -> System;
input:so -> System;
input:mo -> System;



}
на dot/

пысы
более 2000 я делать не пробовал,
графиз поставляется еще и как библиотека, может можно включить ее в свой код и добиваться больше чем 2000.
...
Рейтинг: 0 / 0
Тяпничная цепь Маркова и визуализация графов
    #39197971
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наоборот. прошлый на цирко. текущий на дот
...
Рейтинг: 0 / 0
Тяпничная цепь Маркова и визуализация графов
    #39197977
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТакже нужны некоторые важные опции такие как поместить в центр главную
вершину или наиболее мощную вершину, выделить клику и пометить
разными цветами вершины и рёбра. :

там есть кластеры различной важности(rank), в которые объединяются вершины.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
digraph world {
//orientation=landscape;

subgraph  clusterRepli {
{rank=same;   name }  //---------------------------
    name      [color=white,  label="Replications schema (17.04.2009) "];
    name ->B [styled=dashed, dir=back, color=white];
{rank=same; B;  KGB; }  
    B [label="", color=white];
    KGB [label="California + KGB"];
     B-> KGB [  color=white];
{rank=same;   NewYork; BE9; BE11;  BE10; foo } 
    BE9 -> NewYork [color=white];
    KGB -> NewYork[label=" LAN"];
    B -> BE9[  label="0.2G bytes/day", color=white];
    BE9  -> BE11[label=" LAN", style=dotted];
    BE10 -> BE11[label=" LAN"];     
    BE11 -> BE10[stype=bold, color=green];
    BE9->LasVegas [label="5G bytes/day",color=white];
    foo [color=white, label=""];
    BE10-> foo [color=white]

{rank=same;   LasVegas; Intel2 ; foo1; /*bavarian*/ }  
   BE11 -> LasVegas;
   BE11 -> LasVegas[ style=dotted];
   BE10 -> LasVegas[stype=bold, color=green];
//   BE10 -> bavarian[styled=dashed, dir=back];
//   bavarian -> LasVegas[styled=dashed, dir=back];
   BE10 -> foo1 [label="    "];
   Intel2[ label=bavarian];
   BE10 -> Intel2 [styled=dotted, dir=back, color=blue];
   Intel2-> LasVegas[styled=dotted, dir=back, color=blue];

   Intel2 -> foo1 [color=white];
   foo1[label="Intel2"];
   foo->foo1[color=white,label="1.5G bytes/day"];
}
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная цепь Маркова и визуализация графов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]