Автор Тема: Словоформы для поиска  (Прочитано 4390 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Словоформы для поиска
« : 12 Сентября 2002, 20:14:01 »
Кто подскажет как лучше и эффективней сделать образование словоформ при поиске?
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Словоформы для поиска
« Ответ #1 : 13 Сентября 2002, 00:54:11 »
Взять словарь от ispell, затем либо посмотреть как сделано в mnogosearch, либо придумать свой формат хранения словаря и свой алгоритм его обработки.

Также, если очень хорошо поискать, в сети можно найти словарь Зализняка.

Компактный и быстрый модуль требует некоторых усилий. Я свой неделю вылизывал, пока не получил более менее приличную скорость работы (писалось все не Перле).

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
Словоформы для поиска
« Ответ #2 : 13 Сентября 2002, 03:26:06 »
Цитировать
посмотреть как сделано в mnogosearch

Вот именно! Это целый раздел информатики и лингвистики этим занимаются вот уже несколько десятков лет не последние умы человечества. Так что, возьми что-то готовое, а если это тебя не устраивает - начни с того чтоб поступить в какой-нить филологический факультет одного из отечественных университетов :)
программист должен все сделать так, чтоб потом ничего не делать

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Словоформы для поиска
« Ответ #3 : 13 Сентября 2002, 09:35:24 »
> поступить в какой- нить филологический факультет

В корне не согласен. Для написания профессионального морфологического анализатора неплохо иметь под рукой профессионального лингвиста. Но в вебприложениях данная задача обычно возникает при написании поисковых систем, а там требования к морфологии упрощены: нужно уметь определять нормальную форму для любой словоформы и выдавать все словоформы для нормальной формы. Есть морфологические словари (Зализняка и Тихонова), где уже есть вся информация о словоформах различных слов (вот для составления этих словарей нужен лингвист). Кроме того, есть бесплатный словарь от ispell, который не совсем морфологический, но для поисковика его хватает. Дальше нужно только вычленить из словарей нужную информацию в нужном формате, придумать структуру данных для ее хранения (хэш-таблицу или конечный автомат), запрограммировать все это дело. Тут уже никакой лингвист не нужен.

Оффлайн rembo

  • Больной
  • Постоялец
  • ***
  • Сообщений: 219
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.v4.ru
Словоформы для поиска
« Ответ #4 : 13 Сентября 2002, 10:07:25 »
Цитировать
Так что, возьми что-то готовое
Это то что я имел ввиду, а на счет поступления в университет - это как бы "образно говоря".
Цитировать
морфологического анализатора... ...нормальную форму для любой словоформы и выдавать все словоформы для нормальной формы...

Во всяком случае и твои знания не из бульварной газетки взяты. :)
программист должен все сделать так, чтоб потом ничего не делать

глебушка

  • Гость
Словоформы для поиска
« Ответ #5 : 13 Сентября 2002, 21:05:34 »
КшЫуфксрук, а ну-ка колись:-). как ты организовал словарь
Цитировать
ispell
, просто рассортировал по алфавиту в отдельные файлы? Или ещё чего похитрее. А то я тоже написал поиск, да толлько когда я запускаю индексирование на своём П166, страшно становиться, дико тормозит:-).
Цитировать
можно найти словарь Зализняка

если кто найдёт, плиз киньте ссылку! (я не нашёл:-)

Оффлайн КшЫуфксрук

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://risearch.org/
Словоформы для поиска
« Ответ #6 : 15 Сентября 2002, 23:02:01 »
> Во всяком случае и твои знания не из бульварной газетки взяты.

Несколько часов вместе с Яндексом и чтение различных сайтов. Это все же ближе к бульварной газетке. Хотя, те кто занимается этим серьезно и знания получает в другом месте.

> а ну-ка колись:-). как ты организовал словарь

На моем сайте есть обрезанная демо-версия. При желании можно понять, как все это работает. Правда, это самая первая версия, очень медленная - порядка 100-200 слов в секунду. Последняя в режиме нормализации дает 3000-4000 слов в секунду. Но даже с такой скоростью это все еще самое узкое место при индексации.

Формат словаря может быть самым разным. У меня сделано на основе ternary-tree. У Коваленко (рекомендую полистать описание его алгоритма) особое дерево. Сегалович делал на основе разряженной хэш-таблицы (perfect minimal hashing), на сайте Комтека была статья с описанием. Используют также конечные автоматы.

 

Sitemap 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