![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
я практически в отчаянии,т.к. мне как совершенно начинающему надо написать "Inverted file indexer" для списка текстов (без HTML тегов).
Даже не знаю, с какой стороны мне подойти к этой проблеме...может быть кто-то посоветует, что где почитать или идеи для алгоритма. Нашла в инете много теории, ну и также знаю, что есть Perlfect Search, кот. индексирует веб страницы. |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Пожалуйста подробнее изложите суть проблемы
|
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
Имеется корпус текстовый(архив):http://www.cis.uni-muenchen.de/~heller/docs/corpora/heise-newsticker.tar.gz Мне надо написать программу, кот. индексирует этот корпус (http://en.wikipedia.org/wiki/Inverted_file_index), подробностей больше в задании не указано, только написать "inverted file indexer" |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
МНе кажется что здесь очень хорошо было бы использовать базу данных. например MySQL. И проводить индексацию ее средствами, благо там они очень хорошо развиты. Вынимать и засовывать информацию из базы- одно удовольствие. Так что советую, если возможно, сделать именно с ней. И тогда дополнительная, ручная индексация не потребуется
Добавлено @ 16:23 А если вам так необходимо сделать индексацию вручную, то для начала неплохо бы разработать алгоритм индексации. |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
чуть оффтоп:
А можно привести примерчик импортирования из xls в БД (mysql) (xls - Excel 2.0) |
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
В Databases я вообще полный ноль, еще хуже чем в Perl. Вот тут нашла примерно, что мне надо сделать в виде алгоритма (http://web.cs.wpi.edu/~cs4241/2000d/invfile.pdf), но как это сделать
![]() Я думаю, для начала мне надо удалить все стоп слова+знаки препинания и нормализировать все слова (стемминг). |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
ПО моему с базой данных легче разобраться
![]() Тем более что она вам еще не одну сотню рас пригодится потом Добавлено @ 07:18 Давайте поясним зачем вам индексация. Вы хотите производить поиск по тексту? Или как? У вас один текстовый файл для индексации или множество? Как планируется выводить результаты после поиска, если это все для поиска? |
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
у меня просто такая нагрузка сейчас, что совсем нет времени заниматся ДБ, но месяца через 2-3 придется освоить. Для чего будут в дальнейшем использоваться индекс. файлы, я не знаю, но по дефолту скорее всего для поиска. Файлов множество и все они сохранены в директории.как выводить результаты, пока не знаю, скорей всего просто список, где слева слово-токен, а справа, номера документов, в кот. оно встречается, наверное в виде key- value. Написала сегодня преподавателю письмо, он ответил, что мол напишите сначала Tokenizer а потом усовершенствуйте его так, чтобы для каждого token создавался отдельный файл в директории (+указать в этом созданном файле номер документа из кот. проишодит этот token) Это вроде первой ступени- час от часу не легче. остались все те же вопросы: как считывать все файлы в директории и в дальнейшем при чтении токена записывать каждый в отд. файл??? |
|||
|
||||
BlackLFL |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 15.9.2005 Где: Москва Репутация: 8 Всего: 12 |
Дерево каталогов |
|||
|
||||
rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: 1 Всего: 2 |
Считать файл
open (MYFILE, "1.txt"); $/ = undef; $content = <MYFILE>; close (MYFILE); Или можно считать построчно. Каждая строка текста в файле станет элементом массива- по моему очень удобно! open (MYFILE, "1.txt"); @content = <MYFILE>; close (MYFILE); Ну а запись так open (MYFILE, ">>1.txt"); print MYFILE $text; close (MYFILE); Это добавляет в конц файла новые данные open (MYFILE, ">1.txt"); print MYFILE $text; close (MYFILE); Это очищает полностью файл перед записью, а потом записывает. |
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
Спасибо большое за ссылку "дерево каталоговь, попытаюсь осилить tokenizer
|
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
Кое-что обнаружила в интернете у "совместными усилиями" пытаюсь написать tokenizer. Этот код выдает ошибку readline() on closed filehandle FILE at indexer1.pl line 17, в чем проблема? как записать каждый токен в отдельный файл, где также указан номер(=название) документа из которого он происходит
![]() И еще вопрос, что обозначает ? не после блока , а в начале в regular expressions? спасибо
|
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
еще одна проблема, загрузила CPAN модуль, установила его, как написано в readme, при компиляции ошибка: can't locate Text/German.pm in @INC (@INC contains: usr/lib/perl5/5.8/cygwin/usr/lib/per5/5.8 ....и так еще 5 раз, потом Lingua/Stem/De.pm line 39
Compilation failed in require at indexer1.pl line 3 Я модулями еще никогда не пользовалась, что я делаю неверно?
|
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
введи >perl -MCPAN -e 'install Text::German'
|
|||
|
||||
LisaST |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.4.2006 Где: Munich Репутация: нет Всего: нет |
ввела, не компилируется пишет:
Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/site_perl/5.8/Lingua/Stem/De.pm line 94 т.е. что-то в самом пакете не так, а что я могу сделать? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |