Xpoint
   [напомнить пароль]

определение плотности фраз в тексте

Метки: [без меток]
2007-03-11 01:25:25 [обр] Andrey Vorobyov[досье]
Подскажите алгоритм определения плотности фраз в тексте(phrase density) если фраза состоит из N слов.
спустя 2 минуты [обр] Andrey Vorobyov[досье]
Хотел через regexp но не осилил.
спустя 40 минут [обр] arto(2/497)[досье]
что это такое?
спустя 8 минут [обр] Andrey Vorobyov[досье]
regexp = regular expressions = регулярные выражения
спустя 6 часов [обр] Dennis F. Latypoff aka funky_dennis(0/84)[досье]
а что такое плотность фразы?
спустя 50 минут [обр] Andrey Vorobyov[досье]

"Леша ел кашу в столовой, а Сергей ела кашу в ресторане, а Саша не ел кашу вообще"

Всего 2 словных фраз - 16

"ел кашу" - встречается в тексте 3 раза

плотность фразы 3/16 = 18,75%

спустя 3 часа 36 минут [обр] Dennis F. Latypoff aka funky_dennis(0/84)[досье]
Andrey Vorobyov[досье]
спасибо, понятно. к сожалению помочь с "Подскажите алгоритм определения плотности фраз в тексте(phrase density) если фраза состоит из N слов" не смогу...
спустя 3 часа 31 минуту [обр] arto(2/497)[досье]

"Сергей ела" — ?

все равно не понятно, по каким критериям выбрана "ел кашу"

спустя 1 час 46 минут [обр] Andrey Vorobyov[досье]

Cергей ел...

а критериев нету...

нужно чтобы алгоритм сам находил все фразы из N слов в тексте и выводил их + общее кол-во таких фраз.

Пример:
=======================================
"ел кашу" - встречается в тексте 3 раза
"Саша не" - встречается в тексте 1 раз
"а Сергей" - встречается в тексте 1 раз
=======================================
Плотность мне мой друг из 5 класса потом посчитает... :)

Неужели я так туго объясняю? довольно распространненый пример

спустя 51 секунду [обр] Andrey Vorobyov[досье]
!!! Этот пример был для фраз из 2 слов !!!
спустя 8 минут [обр] Andrey Vorobyov[досье]
сообщение промодерировано

короче... так будет лучше
===========================
надо написать функцию get_phrase_occurrence и get_total_phrase_occurrence.
========================================

Дано:

<?
$text = "There was a very good time for hunting in the woods when my father was alive. I like very good wine";

$how_many_words_in_phrase_do_you_want = 2;

$array = get_phrase_occurrence($how_many_words_in_phrase_do_you_want);
$total_phrases = get_total_phrase_occurrence($how_many_words_in_phrase_do_you_want);


echo "Total : ".$total_phrases;
print_r($array);
?>
Total: <посчтанное значение>

Array
(
    ['There was'] => 1,
    ['very good'] => 2,
    ['hunting in'] => 1,
.......
)
спустя 1 час 44 минуты [обр] Alexander O(17/469)[досье]

perl

$text = "There was a very good time for hunting in the woods when my father was alive. I like very good wine";

$NWORDS = 2;

my $re = '(\w+)(?=' . ( '\W+(\w+)' x ($NWORDS - 1) ) . ')';
my $count = 0;
while ($text =~ m/$re/g) {
   my $ph = join ' ', map {lc(${$_})} 1 .. $NWORDS;
   $PH{$ph}++;
   $count++;
}

print "total phrases: $count\n";
print map {"$_ => $PH{$_}\n"} keys %PH;

Результат

total phrases: 20
there was => 1
a very => 1
was alive => 1
in the => 1
father was => 1
for hunting => 1
was a => 1
i like => 1
my father => 1
time for => 1
good wine => 1
very good => 2
hunting in => 1
good time => 1
when my => 1
like very => 1
the woods => 1
alive i => 1
woods when => 1
спустя 15 минут [обр] Andrey Vorobyov[досье]

Зачет. Снимаю шляпу.

Мораль:
\d{4,4}-\d{2,2}-\d{2,2} это еще не самый сложный regexp в моей жизни

Powered by POEM™ Engine Copyright © 2002-2005