Закон Ципфа

Тема в разделе "Perl программирование", создана пользователем Renji, 7 фев 2012.

  1. Renji

    Renji Гость

    Есть закон Ципфа. Он утверждает что если отсортировать слова по их частоте появления в тексте, то позиция слова*частоту=константа. Или говоря проще, второе по популярности слово, будет встречаться вдвое реже первого. Пытаюсь проверить это простеньким скриптом на Перле. Что бы статистика была качественной, обрабатываю полное собрание сочинений Шекспира. Итоги: первым по популярности идет "the" с 27843 вхождениями в текст. Вторым - "and" с 26847 вхождениями. Результаты ничего общего с Ципфом не имеют. Судя по тому что закон Ципфа известен достаточно давно, руки кривые у меня, а не у Ципфа. Но вот в чем моя криворукость - никак понять не могу. Собственно, вопрос - где я накосячил?

    Интерпретатор Перла - ActivePerl 5.14.2 Build 1402. Сам скрипт:
    Код (Text):
    use utf8;
    use LWP::Simple;
    sub zipfTest($)
    {
    #чтение текста
    my $url=$_[0];
    print "get $url\n";
    my $text=get($url);

    #подсчет частоты вхождения слов
    print "parse\n";
    my %wordFrequency=();#ключи - слова. Значения - число вхождений слова
    my @rawWordList=$text=~/[a-z]+/isg;
    grep {$wordFrequency{lc $_}++} @rawWordList;
    print "number of words = ",scalar(@rawWordList),"\n";

    #сортировка слов по частоте
    my @wordList=keys(%wordFrequency);
    @wordList=sort {$wordFrequency{$b} <=> $wordFrequency{$a}} @wordList;

    #вывод результатов
    print "result\n";
    for(my $i=0;$i<10;++$i)
    {
    $word=$wordList[$i];
    #слово
    #частота появления слова
    print "$word ",$wordFrequency{$word},"\n";
    }
    }
    zipfTest('http://www.gutenberg.org/cache/epub/100/pg100.txt');
    print "done\n";
    <>;
     
  2. seevi

    seevi Гость

    Написал скрипт по-своему, получил тот же результат. Наверно, выборка слишком мала: на википедии по вашей ссылке пик приходится на 275000 вхождений, а тут только 20000
     
Загрузка...
Похожие Темы - Закон Ципфа
  1. faraun
    Ответов:
    0
    Просмотров:
    1.803

Поделиться этой страницей