![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
Обладает ли кто регулярными выражениями для извлечения из файлов (html, doc, pdf и др.) текста.
Или есть в C# средства для извлечения теста из файлов. Сразу скажу, что OLE не подходит ![]() Заранее спасибо. -------------------- Разочарованный в .NET |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
RTFM:
namespace System.Text.RegularExpressions -------------------- ![]() |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
Не думаю что doc или pdf файлы можно считать регулярными выражениями =)))
Здесь нужно работать с соответствующими библиотеками. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Почему ? Только оле и подходит. Ну, если ещё поизвращаться хочется - пожалуйста линк: http://www.syncfusion.com/Products/product...26&tab_id=0 Ещё есть такая штука как IFilters, позволяет получать текст вообще откуда угодно, даже без установленного офиса, акробат ридера и т.п. (должен быть установлен соотв. IFilter). Если очень нужно, могу подкинуть примеры. -------------------- ![]() |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: 7 Всего: 17 |
||||
|
||||
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
Приведи, пожалуйста. Я представил, СКОЛЬКО надо учесть, чтобы распарсить среднюю html-страницу в текст и решил поискать пути полегче. -------------------- Разочарованный в .NET |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Пример взят с codeproject, поэтому выкладываю как есть, в виде архива. Тестовое приложение позволяет выдернуть текст из любого файла (где он есть, и для которого установлен IFilter).
Присоединённый файл ( Кол-во скачиваний: 67 ) ![]() -------------------- ![]() |
|||
|
||||
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
mr.DUDA, спасибо.
Буду разбираться. Сразу скажу, что текст из html-файла он выдернул гораздо медленнее, чем у меня есть. С doc файлом справился отлично, с odt есть мелкие баги. Все это для индексатора. Такой маленький поисковой движок будет. Так вот, чтобы получить текст html-страницы (сделал через OLE, так как альтернативы не было), исключить ненужные символы и создать HashTable корней и приставок слов с их типом (существо-действие-описание) в документе, потом сравнить его с уже имеющимися в базе и выкинуть из массива уже имеющиеся в базе, а новые внести (используя Prepare()), отобразить это в Grid-ах форме. На это уходит в среднем 28 кБ/секунда и скорость постепенно падает с ростом БД. Вот и ищу, как повысить быстродействие. -------------------- Разочарованный в .NET |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Softaz, а что для индексирования юзаем ? Случайно не Lucene .NET ?
![]() -------------------- ![]() |
|||
|
||||
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
Нет. Свой пишу.
![]() Добавлено @ 19:49 Вот пример функции разбора слов. Два дня потратил. Ошибки приведения пока есть, но мало. СУЩ. - существо, предмет, состояние, количество. ГЛАГ. - действие ПРИЛ. - описательное. Это сообщение отредактировал(а) Softaz - 11.7.2006, 19:54 Присоединённый файл ( Кол-во скачиваний: 27 ) ![]() -------------------- Разочарованный в .NET |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
-------------------- ![]() |
|||
|
||||
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
mr.DUDA, спасибо.
Только я что-то не понял. Вроде русские в команде есть. Буду разбираться. Мне хочется, чтобы движок понимал морфологию. А в будущем части речи и релевантност -------------------- Разочарованный в .NET |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Есть русские.
Чтобы сделать хороший и быстрый поисковый движок, нужны специальные знания в области оптимизации хранения и поиска данных. Где-то был сайт, на котором чел объяснял, с какими сложностями можно столкнуться даже делая простейший индексатор по ключевым словам: тут вам и большой объём базы, и необходимость использовать не обычные БД а двоичную древовидную структуру, и специальные алгоритмы, серьёзно ускоряющие поиск по сравнению с традиционными а-ля fast search, и т.п. Самому пришлось в своём проекте делать полнотекстовый поиск, поэтому предметом немного владею. ![]() P.S. кстати, а в SQL Server есть свой full-text search, он только русского не понимает ![]() -------------------- ![]() |
|||
|
||||
Softaz |
|
||||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
Где-то читал, что понимает, если какой-то их аддон поставить.
А можешь вспомнить? Хотя бы ключевые слова, по которым искать можно. Пока неизвестен предмет поиска, его невозможно узнать. Я скормил индексатору полное собрание сочинений Пушкина и других классиков - что под рукой было. Получилось около миллиона слов в индексе. Это с учетом обрезания окончаний и суффиксов. Поиск длится около секунды. Пока устраивает. Однако планируется хранить очень большой объем данных -------------------- Разочарованный в .NET |
||||
|
|||||
Softaz |
|
|||
![]() wasm ![]() ![]() Профиль Группа: Участник Сообщений: 373 Регистрация: 16.1.2006 Репутация: 3 Всего: 16 |
Нашел хороший сайт. itman.narod.ru . Главное - куча ссылок на подобные сайты. Кому понравится, может скачать с зеркала: http://zaotzs.ru/admin/itman.tar.gz (15 МБ)
-------------------- Разочарованный в .NET |
|||
|
||||
Butsa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 6.6.2006 Где: Украина,Харьков Репутация: нет Всего: нет |
Можно написать хранимку на MS SQL Server (использовать команду OPENROWSET(BULK...)) а потом вызывать в своем солюшене...
|
|||
|
||||
Dende-Soft |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 10.3.2007 Репутация: нет Всего: нет |
Удалил.
Это сообщение отредактировал(а) Dende-Soft - 7.1.2010, 17:43 |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |