Forum Webscript.Ru

Программирование => Perl => Тема начата: Error202 от 29 Апреля 2008, 16:34:47

Название: Стоп-слова
Отправлено: Error202 от 29 Апреля 2008, 16:34:47
Здравствйте!

Как оптимальнее всего хранить стоп-слова
и как оптимальнее всего удалять их из текста?



        our %stop_hash;
        our @stop_words = qw/i in a to the it have haven\'t was but is be from/;
        foreach @stop_words {$stop_hash{$_}++ };

        sub get_words {

                # теперь с поддержкой стоп-листа!

                my ( $text ) = @_;
                return map { $_ => 1 }
                       grep { !( exists $stop_hash{$_} ) }
                       map lc,
                       map { /([a-z\\-\']+)/i }
                       split /\\s+/s, $text;
        }



Это правильный подход?
Название: Стоп-слова
Отправлено: Yaroslav от 06 Мая 2008, 18:21:28
лично у меня и слова и фразы есть, поэтому
храню в файле разделенными запятыми


  open (BAN, "ban.txt");
  while () {
    $search=$text; #сохраняю оригинальный текст
    $search=~tr/A-ZА-Я/a-zа-я/;
    $_=~tr/A-ZА-Я/a-zа-я/;
    if ($search =~ /$_/i) { print "сам дурак"; }
  }
  close (BAN);
Название: Стоп-слова
Отправлено: Green Kakadu от 13 Мая 2008, 00:58:28
вот уже готовый вариант стоп-слов
Lingua::StopWords::RU http://search.cpan.org/~creamyg/Lingua-StopWords-0.08/lib/Lingua/StopWords.pm
Название: Стоп-слова
Отправлено: Error202 от 14 Мая 2008, 17:55:39
Спасибо!