Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Поиск с учетом морфологии русского языка

20.07.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
Семантический поиск текста с учетом морфологии - серьезная задача, с которой даже крупные поисковики справились с разной степенью успеха. Но частично реализовать поиск с учетом разных форм слов русского языка вы можете самостоятельно. Для этого лучше всего воспользоваться PHP-классом phpMorphy. Это очень удобное средство для организации поиска с учетом морфологии русского, английского, украинского, эстонского или немецкого языков. Словари для каждого языка суммарно занимают около 10 Мб, а сам подключаемый скрипт - чуть меньше 30 Кб. При этом не требуется устанавливать на сервер дополнительное программное обеспечение, все будет работать на самом обычном хостинге. Обновленные версии phpMorphy с поддержкой современных версий PHP7 и PHP8 можно скачать с репозитория.

Начнем с подключения phpMorphy. Это делается очень просто. Сперва скачайте дистрибутив, словари, распакуйте все это в отдельную папку, соблюдая структуру вложенных каталогов. Словари разместите в папке dict. Теперь откроем файл примера из папки examples и посмотрим настройки:
  1. // подключение движка phpMorphy
  2. require_once('src/common.php');
  3.  
  4. // настройки движка
  5. $opts = array(
  6.     ...
  7. );
  8.  
  9. // подключение словарей русского языка
  10. $dir 'dicts';
  11. $dict_bundle = new phpMorphy_FilesBundle($dir'rus');
  12.  
  13. // создание класса
  14. $morphy = new phpMorphy($dict_bundle$opts);
В настройках используется важный параметр storage, он может принимать одно из трех значений: PHPMORPHY_STORAGE_FILE (не загружать файлы словарей в память целиком, это самый медленный вариант, но самый экономный в плане работы с ресурсами сервера), PHPMORPHY_STORAGE_SHM (загружать файл словаря целиком в shared-память, требуется расширение PHP shmop) или PHPMORPHY_STORAGE_MEM (также загружать файл в память целиком если не используется shmop, по скорости работы ничем не отличается от предыдущего). На виртуальном хостинге, скорее всего, придется использовать первый вариант, а на выделенном сервере для большей скорости лучше применять варианты с использованием памяти. Выберите вариант под свои задачи. Остальные настройки и их значения подробно расписаны в официальной документации.

Читать статью целиком »
Просмотров: 22144 | Комментариев: 18

Исследование защиты программы AWicons Pro

18.07.2011 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы AWicons Pro

AWicons Pro - лучшая, на мой взгляд, программа для создания и редактирования иконок и курсоров. Она включает в себя множество профессиональных инструментов, таких как прозрачность и многоцветный градиент, функции модификации (Контрастность, Яркость, Размытие, Поворот, 3D тень, Aqua и другие), импорт иконок из исполняемых файлов и графических файлов, сохранение готовых изображений в разные форматы, работа с библиотеками иконок и мультииконками, и еще много-много других полезных возможностей. Но почему-то стоимость программы превышает предельно допустимый уровень в ноль рублей, значит будем смотреть на нее поближе и желательно изнутри.

Читать статью целиком »
Просмотров: 6818 | Комментариев: 24

Выставка фарфоровых кукол "От Руси до России"

15.07.2011 | Категория: Жизнь в оффлайне | Автор: ManHunter

Выставка фарфоровых кукол "От Руси до России"

В Коломенском музей кукол "Галерея Анастасии Чижовой" проводит выставку костюмированной фарфоровой скульптуры "От Руси до России". "Знай прошлое, живи настоящим и думай о будущем", - эти крылатые слова можно считать эпиграфом выставки, которая с помощью необычных экспонатов - кукол рассказывает о важнейших этапах становления государства - от древней Руси до Российской империи. Выставка разделена на два зала, которые отражают два периода в жизни страны: "детство, когда все определяет чувство, и возмужание, когда главным становится разум" (С.М. Соловьев). Более 40 авторских кукол в костюмах изготовлены в единственном экземпляре, вручную, с использованием антикварных тканей и аксессуаров. За каждым художественным образом - яркая историческая личность. Особый колорит придает экспозиции место ее размещения: Коломенское по праву считалось царской вотчиной, его расцвет связан с царствованием государя Алексея Михайловича. Здесь нередко бывал и юный Петр I, другие деятели государства Российского.

Читать статью целиком »
Просмотров: 9367 | Комментариев: 1

Расчет хеша Adler-32 на Ассемблере

12.07.2011 | Категория: Образ мышления: Assembler | Автор: ManHunter
Adler-32 - хеш-функция, разработанная Марком Адлером, хорошо известным по его работам в области компрессии данных. Этот хеш используется в библиотеке zlib, соавтором которой и является Марк Адлер. По скорости работы Adler-32 превосходит CRC32, однако уступает ей по качеству обнаружения ошибок контрольной суммы, особенно на коротких строках. Есть несколько вариантов реализации алгоритма на разных языках и с разной степенью эффективности, мой вариант на Ассемблере такой:
  1. ;-----------------------------------------------------------------------
  2. ; Функция вычисления хеша Adler-32
  3. ; by ManHunter / PCL
  4. ; http://www.manhunter.ru
  5. ;-----------------------------------------------------------------------
  6. ; Параметры:
  7. ;       lpData - указатель на строку
  8. ;       dSize  - длина строки
  9. ; На выходе:
  10. ;       EAX = полученный хеш
  11. ;-----------------------------------------------------------------------
  12. proc    Adler32 lpData:DWORD, dSize:DWORD
  13.         push    ebx ecx edx esi edi
  14.  
  15.         ; Инициализация
  16.         mov     edi,1           ; s1 = 1
  17.         xor     esi,esi         ; s2 = 0
  18.  
  19.         ; Длина строки
  20.         cmp     [dSize],0
  21.         je      .loc_ret
  22.  
  23.         mov     ebx,65521       ; base
  24.         xor     ecx,ecx
  25. @@:
  26.         ; Получить символ из строки
  27.         mov     eax,[lpData]
  28.         movzx   eax,byte [eax+ecx]
  29.  
  30.         add     eax,edi         ; s1 = (s1 + buf[i]) % 65521
  31.         xor     edx,edx
  32.         div     ebx
  33.         mov     edi,edx
  34.  
  35.         add     edx,esi         ; s2 = (s2 + s1) % 65521
  36.         mov     eax,edx
  37.         xor     edx,edx
  38.         div     ebx
  39.         mov     esi,edx
  40.  
  41.         ; Следующий символ
  42.         inc     ecx
  43.         cmp     ecx,[dSize]
  44.         jb      @b
  45. .loc_ret:
  46.         mov     eax,esi        ; adler32 = (s2 << 16) + s1
  47.         rol     eax,16
  48.         add     eax,edi
  49.  
  50.         pop     edi esi edx ecx ebx
  51.         ret
  52. endp
Пример использования:
  1. ; Сегмент данных
  2. section '.data' data readable writeable  
  3. ...
  4. somedata db 'Yeah! I like Flat Assembler!',0 ; Исходные данные для хеширования
  5.  
  6. ; Сегмент кода
  7. section '.code' code readable executable
  8.         ...
  9.         ; Расчет длины строки. Для бинарных данных lstrlen лучше не использовать
  10.         invoke  lstrlen,somedata
  11.         ; Расчет Adler-32 
  12.         stdcall Adler32,somedata,eax
  13.         ; EAX = 82E0095Dh
Как указано в описании, самый эффективный по скорости способ расчета Adler-32 представлен авторским алгоритмом в исходниках библиотеки zlib. Но для небольших объемов данных вполне сгодится и приведенный выше вариант.

Читать статью целиком »
Просмотров: 5324 | Комментариев: 0

Рулетики из красной рыбы с плавленым сыром

10.07.2011 | Категория: А еще я туда ем! | Автор: ManHunter

Рулетики из красной рыбы с плавленым сыром

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

Читать статью целиком »
Просмотров: 8868 | Комментариев: 12

01 ... 350 351 352 353 354 355 356 ... 437
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0304 сек.) / Память: 4.5 Mb
Наверх