Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] словоформы



> Просто - это как?  Как эти хеши вообще устроены - это где-то описано или
> надо в исходниках htdig-а разбираться?
> 

Хэш - пара (ключ-значение), htdig сохраняет их в файлах, в нескольких
форматах. Самый удобный - Berkeley DB. Смотреть документацию на gdbm -
/gdbm/ в любом GNU архиве, Berkeley DB - http://www.sleepycat.com/.

Когда пользователь дает слово, список словоформ можно получить, выбрав
из word2root нормальную форму и выбрав из root2word все модификации:
my @words = $root2word{word2root{$word}};

Плохо, что хэши большие, в них не все  слова, поэтому полезнее уметь
получать словоформы по какому-то алгоритму. Если товариши сделают
общедоступным алгоритм, им надо поставить памятник при жизни. Но как
рабочее средство хэши можно использовать.

Вот пример чтения и распечатывания хэша для Berkeley DB ( для остальных
хэшей, а их много, практически такой же текст, за исключением строки
tie).

#!perl
use DB_File;
use strict;
my %h;
  tie %h, 'DB_File', "root2word", O_RDONLY, 0644, $DB_HASH;
  my ($key, $val);
  while ( ($key, $val) = each %h ) {
   print "$key -> $h{$key}\n";
  }
untie %h;



-- 
Konstantin Tokar (http://www.mpei.ac.ru/tokar)
=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.