Форум программистов, компьютерный форум CyberForum.ru

Закон Ципфа - Python

Восстановить пароль Регистрация
 
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 259
18.12.2016, 20:12     Закон Ципфа #1
Добрый вечер. Продолжаю експерементировать. Вообщем есть реализирован первый который строит гистограму по словам в тексте.
"Измерим количество вхождений каждого слова в текст и возьмем только одно значение из каждой группы, имеющей одинаковую частоту. Расположим частоты по мере их убывания и пронумеруем, порядковый номер частоты назовем рангом частоты Выделение ключевых слов в текстовых документах ранг слова Выделение ключевых слов в текстовых документах). Наиболее часто встречающиеся слова будут иметь ранг 1, следующие за ними – 2 и так далее"
Вот результат программы: Закон Ципфа

Первое это проблема с кодировкой: На графике легенда отображается неправильно.
Если я удалю эти строки
Python
1
2
reload(sys)  
sys.setdefaultencoding('Cp1252')
Выдается ошибка при построении на русском и украинском языке. Нужно сделать тчоб график на любом языке нормально рисовался.

Второе: Нужно построить второй график, отложив по оси абсцисс частоту вхождения слова, а по оси ординат – количество слов в данной частоте.
Вот проект.
ZipfTest.rar
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2016, 20:12     Закон Ципфа
Посмотрите здесь:

Закон распределения
Нормальный закон
Закон кулона
задачи по темам: постоянный ток, закон Ома,несколько ЭДС в одной цепи, закон Джоуля-ленца
Доказать закон
Закон сохранения
MathCAD Закон распределения
C# Закон косинуса
Закон дистрибутивности
Lazarus Реализовать в Лазарусе закон Ципфа
Закон сохранения момента импульса и закон сохранения энергии

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 259
19.12.2016, 17:56  [ТС]     Закон Ципфа #2
Ну и сам код
Python
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/python
 
import sys
import numpy as np
import pylab as pl
import sys, getopt, string
from operator import itemgetter
import matplotlib.pyplot as plt
 
my_dictionary=dict([])
sorted_dictionary=dict([])
 
 
textfile = 'up.txt'
f = open(textfile, "r")
words = f.read().split()
 
for w in words:
 
    w_no_punc = w.translate(string.maketrans("",""), string.punctuation)
    w=w_no_punc.lower()
 
    if w in my_dictionary:
        my_dictionary[w]+=1
    else:
        my_dictionary[w]=1
 
print
print "Dictionary size = ",len(my_dictionary) 
print
 
sorted_dictionary=sorted(my_dictionary.items(),key=itemgetter(1),reverse=True)
    
max_count=50
for w,c in sorted_dictionary[0:max_count]:
    print "%s\t\t: %d" % (w,c)
reload(sys)  
sys.setdefaultencoding('Cp1252')
# Histogram of top 50 words
hist_words=[x[0] for x in sorted_dictionary]
hist_count=[x[1] for x in sorted_dictionary]
plt.figure()
X = np.arange(max_count)
plt.bar(X, hist_count[0:max_count], align='center', width=0.5)
plt.xticks(X, hist_words[0:max_count],rotation='vertical')
ymax = max(hist_count[0:max_count]) + 0.1*max(hist_count[0:max_count])
plt.ylim(0, ymax)
plt.show()
# Log-log plot of all words
plt.figure()
Y = np.arange(len(my_dictionary))
plt.plot(np.log(Y),np.log(hist_count))
plt.show()
Добавлено через 1 минуту
На скрине программы справа, ето частота слова

Добавлено через 21 час 40 минут
Я так понимаю никто даже не скачал и не запускал )))
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 259
21.12.2016, 01:55  [ТС]     Закон Ципфа #3
Помогите мне решит ьпроблему с кодировкой, второй график я уже гарисовал, просто символы украинские не отображаются.
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 259
24.12.2016, 18:33  [ТС]     Закон Ципфа #4
Решил, если кому надо будет прогу в лс пишите
Yandex
Объявления
24.12.2016, 18:33     Закон Ципфа
Ответ Создать тему
Опции темы

Текущее время: 15:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru