Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / perl: скрипт для анализа текста большого объема / 9 сообщений из 9, страница 1 из 1
26.11.2012, 16:12:57
    #38053545
Olgagaga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
Доброго времени суток, уважаемые!
Хочу попросить о помощи... Быть может задача банальна, но очень нужно её сделать, а самой тяму не хватает... Итак, необходимо написать программу, которая:
1. из текста большого объема (неограниченного) из слов построит "коллекцию" и подсчитает какое слово сколько раз используется;
2. показывает первые 30 слов, которые наиболее часто встречаются в тексте;
3. анализирует наиболее часто используемые пары слов;
4. выводит первые 20 слов, которые встречаются преимущественно парно;
5. попробовать исключить из анализа служебные части речи: предлоги, союзы, частица (в, без, до, из, к, на, по, о, от, перед, при, через, с, у, за, над, об, под, про, для, а, не и т.д. ...)

Буду признательна за помощь!
...
Рейтинг: 0 / 0
27.11.2012, 06:45:36
    #38054196
madbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
Какой объем текста? мегабайты, гигабайты, терабайты?
...
Рейтинг: 0 / 0
27.11.2012, 08:33:10
    #38054228
Gijad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
или нужно читать непрерывный поток?
...
Рейтинг: 0 / 0
27.11.2012, 09:59:57
    #38054291
Olgagaga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
Gijad,
текст соизмерим с текстовым форматом книги "Война и мир"...
...
Рейтинг: 0 / 0
27.11.2012, 10:33:22
    #38054337
Gijad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
OlgagagaGijad,
текст соизмерим с текстовым форматом книги "Война и мир"...
Это маленький текст.
1. cчитайте его в переменную, например $text;
2. функцией split разбейте его на слова, разделитель пробел: @words = split(' ',$text);
3. объявите хэш %stat, и для всех слов из массива @words
Код: php
1.
2.
3.
4.
foreach $i (@words){
if (defined $stat{$i}) {$stat{$i}++;}
else {$stat{$i} = 0;}
}


Теперь у вас есть хэш с ключом "слово" и значением "количество повторений"
Точно также вы можете вместо слов использовать пары, нужно лишь немного усложнить цикл, примерно так:
Код: php
1.
2.
3.
4.
for($i=0;$i<=$#words;$i++){
if (defined $stat{$words[$i].' '.$words[$i+1]}) {$stat{$words[$i].' '.$words[$i+1]}++;}
else {$stat{$words[$i].' '.$words[$i+1]} = 0;}
}
...
Рейтинг: 0 / 0
28.11.2012, 07:21:40
    #38055751
Olgagaga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
Gijad, спасибо!
...
Рейтинг: 0 / 0
30.11.2012, 15:36:49
    #38059965
nexoma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
возможно будет сложно, но есть программы под ключевыми словами:
natural language processing. большинство бесплатны и open-source.
...
Рейтинг: 0 / 0
30.11.2012, 16:28:24
    #38060104
nexoma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
это для работы с парами слов (задача 3):




Код: php
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.
#!/usr/bin/perl

#вводим весь текст в переменную
$txt = `cat 1.txt`;// linux
#$txt = `type 1.txt`;/dos-windows
$txt =~ s/\r|\n//;
%hash;
#print $txt;

#вносим в массив все слова
@words = split ('\s+', $txt);
#@words = $str =~ /(\w+\s+)/g;
print "words: $#words\n";



while( @words ) {
     # делаем пару
     my( $first, $second ) = splice @words, 0, 2;
     # создаем хэш пары и считаем встречаемость
     $hash{"$first $second"} += 1;
}
# сортируем по встречаемости
@keys_of_pairs = sort { $hash{$a} > $hash{$b} } keys %hash;
#print join("\n****** ", @keys_of_pairs);

# выводим на стандартный вывод
foreach ( @keys_of_pairs){
    print "$_: ",$hash{$_},"\n";
}
...
Рейтинг: 0 / 0
30.11.2012, 16:42:37
    #38060149
nexoma
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
perl: скрипт для анализа текста большого объема
очень примерно - убрать из списка слова:

Код: php
1.
2.
3.
4.
5.
6.
#!/usr/bin/perl

$txt = " в  без до из к  на  по о от перед при через с у за над об под про для а не и т.д g";
$txt =~ s/ в | без | до | из | к | на | по | о | от | перед | при | через | с | у | за | над | об | под | про | для | а | не | и | т.д /   /g;

print $txt;
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / perl: скрипт для анализа текста большого объема / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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