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

Python: научные вычисления

Войти
Регистрация
Восстановить пароль
 
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 273
#1

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

18.12.2016, 20:12. Просмотров 365. Ответов 3
Метки нет (Все метки)

Добрый вечер. Продолжаю експерементировать. Вообщем есть реализирован первый который строит гистограму по словам в тексте.
"Измерим количество вхождений каждого слова в текст и возьмем только одно значение из каждой группы, имеющей одинаковую частоту. Расположим частоты по мере их убывания и пронумеруем, порядковый номер частоты назовем рангом частоты Выделение ключевых слов в текстовых документах ранг слова Выделение ключевых слов в текстовых документах). Наиболее часто встречающиеся слова будут иметь ранг 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     Закон Ципфа
Посмотрите здесь:

Реализовать в Лазарусе закон Ципфа - Lazarus
Помогите пожалуйста разбить текст на слова, и определить сколько раз встречается каждое слово.

Доказать закон - Логика и множества
Доказать закон: x^¬x=0. Добавлено через 11 минут Я перевелся из одного учреждения в другое. Добавился предмет мат.логика, который...

Закон косинуса - C#
Всем доброго времени суток. Вопрос скорее простой, но в гугле я так и не смог найти примеров реализации переменной, которая с течением...

Закон сохранения - Механика
Нужно решить одну из двух задачек Может быть у кого-то есть идеи? 1) Шар массой m1 сталкивается с первоначально покоившимся шаром массы...

Закон кулона - Электричество и магнетизм
Доброго времени суток. Имеется задача и пример ее решения. Не могу разобраться как именно в одном пункте решения автор получает...

Закон распределения - MathCAD
Пытаюсь построить закон распределения огибающей при воздействии битовой последовательности, в итоге график получается не гладким,а...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 273
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
Сообщений: 273
21.12.2016, 01:55  [ТС]     Закон Ципфа #3
Помогите мне решит ьпроблему с кодировкой, второй график я уже гарисовал, просто символы украинские не отображаются.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2016, 18:33     Закон Ципфа
Еще ссылки по теме:

Нормальный закон - Теория вероятностей
Диаметр втулки должен быть равен 7,5 мм. Ошибки в изготовлении нормальны с m=0 и средним квадратичным отклонением=0,04 мм. Если ошибка не...

Закон Кулона - Электричество и магнетизм
Помогите пожалуйста) Две одинаковые пылинки массой m = 1 мкг каждая и одинаковыми положительными зарядами q = 15 нКл каждая вращаются...

Закон распределения - Теория вероятностей
Дано распределение дискретной случайной величины X. Найти математическое ожидание и среднее квадратичное отклонение. Помогите,...

Закон ОМа - JavaScript
Что требуется: Написать скрипт который находил бы из закона ОМа неизвестную величину (любой из трех) при двух неизвестных. <html> ...


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

Или воспользуйтесь поиском по форуму:
Anriuser
-2 / 0 / 1
Регистрация: 18.10.2013
Сообщений: 273
24.12.2016, 18:33  [ТС]     Закон Ципфа #4
Решил, если кому надо будет прогу в лс пишите
Yandex
Объявления
24.12.2016, 18:33     Закон Ципфа
Ответ Создать тему
Опции темы

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