ingwall: (knigi)
[personal profile] ingwall
Ищу программу, которая могла бы взять текстовый файл где-то в сто тысяч слов, и выдать мне частоту их употребления в тексте, типа tag cloud. Желательно бы ещё и русскоязычную, чтобы просекала формы одного и того же слова. Никто не знает?

Date: 2010-10-15 02:32 pm (UTC)
From: [identity profile] nasse.livejournal.com
ispell знает формы. Остального не помню. Я в свое время слегка скриптовала. Под линух.

Date: 2010-10-15 02:40 pm (UTC)
From: [identity profile] ingwall.livejournal.com
А слова он считает?

Date: 2010-10-15 02:46 pm (UTC)
From: [identity profile] nasse.livejournal.com
Тогда не считал. Кажется. Сейчас не знаю. Вообще он спеллчекер.

Date: 2010-10-15 02:48 pm (UTC)
From: [identity profile] ingwall.livejournal.com
Да, я понял уже, что он спеллчекер. Сомневаюсь, что он мне поможет.

Date: 2010-10-15 02:52 pm (UTC)
From: [identity profile] nasse.livejournal.com
Я брала слово, трансформировала в базовую форму (ispell'ом). Новое слово пихала в базу, уже имеющемуся в базе увеличивала счетчик.
Я так Черную Книгу Арды обсчитывала :)

Date: 2010-10-15 02:55 pm (UTC)
From: [identity profile] nasse.livejournal.com
Только там будут проблемы с омонимами. И словоформами-омонимами (какая).
Так что оно все равно полуручное...

Date: 2010-10-15 02:36 pm (UTC)
From: [identity profile] chorti-shto.livejournal.com
If you're OK with a quick & dirty solution: a simple VBA Find->Count macro would do

Date: 2010-10-15 02:40 pm (UTC)
From: [identity profile] ingwall.livejournal.com
Will it count instances of every word?

Date: 2010-10-15 07:20 pm (UTC)
From: [identity profile] chorti-shto.livejournal.com
If you put it into a loop that goes through every word in your 100K word list

Не ответ на вопрос

Date: 2010-10-15 03:32 pm (UTC)
ext_373361: (Default)
From: [identity profile] imenno.livejournal.com
а радостный вздох: "na vedui...." :)

Date: 2010-10-15 05:42 pm (UTC)
From: [identity profile] a-beorning.livejournal.com
Хм.
Если не мучаться с разными формами и под рукой есть линух-машина, то перловый скриптик пишется за 15 минут.

Надо - скажи.

Со словоформами - чуть сложнее.

Date: 2010-10-15 06:08 pm (UTC)
From: [identity profile] ingwall.livejournal.com
На словоформах не настаиваю, из линух-машин имею только хакинтош с Леопёрдом. Если сможешь написать - будет благодарность в письменном виде! :)

Date: 2010-10-15 08:14 pm (UTC)
From: [identity profile] a-beorning.livejournal.com
лови.
--------------- counter.pl started------
#!/usr/bin/perl
use strict;

my %wordcounters; #хэш-счетчик. каждому слову в нем будет соответствовать его количество

while(<STDIN>) {  #в цикле по строкам того, что идет на вход
        my $string=$_; #берем строчку
        $string =~ tr/A-ZА-Я/a-zа-я/;#заменяем заглавные на строчные
        $string =~ s/[^а-яa-z]/ /g;  #всё, что не буква, заменяем на пробел (знаки препинания итд)  
        $string =~ s/\s+/ /g;        #двойные-тройные-... пробелы меняем на одиночные 
        my @words_of_string=split(' ',$string); # режем по пробелам на слова, кладем в массив
        for my $word (@words_of_string) { #в цикле по словам массива
                $wordcounters{$word}++;   #прибавляем счетчик этого слова 
        }
}

my @wordlist_unsorted = keys (%wordcounters);  #массив найденных слов - по заголовкам счетчика
my @wordlist_sorted = sort(@wordlist_unsorted);#отсортируем для красоты

for my $word (@wordlist_sorted){                   #для каждого слова из массива
       print $word," ",$wordcounters{$word},"\n"; #печатаем слово,счетчик>,перевод строки
}
--------------- counter.pl ended------

Под линуксом запускаешь так:
cat иcходный_файл.txt | perl counter.pl > resultat.txt




Date: 2010-10-20 06:55 am (UTC)
From: [identity profile] yu-le.livejournal.com
http://www.wordle.net/
Не подойдёт?

April 2026

S M T W T F S
   1234
567891011
12131415161718
19 202122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 2nd, 2026 08:23 pm
Powered by Dreamwidth Studios