Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парсинг файлов разных типов, htm, doc, pdf и др. для получения текста 
:(
    Опции темы
Softaz
Дата 11.7.2006, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Обладает ли кто регулярными выражениями для извлечения из файлов (html, doc, pdf и др.) текста.
Или есть в C# средства для извлечения теста из файлов.
Сразу скажу, что OLE не подходит smile
Заранее спасибо. 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 11.7.2006, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



RTFM:

namespace System.Text.RegularExpressions 


--------------------
user posted image
PM MAIL WWW   Вверх
Wanderer2019
Дата 11.7.2006, 10:46 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Не думаю что doc или pdf файлы можно считать регулярными выражениями =)))
Здесь нужно работать с соответствующими библиотеками. 
PM ICQ MSN   Вверх
mr.DUDA
Дата 11.7.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Softaz @  11.7.2006,  10:21 Найти цитируемый пост)
Сразу скажу, что OLE не подходит

Почему ? Только оле и подходит. Ну, если ещё поизвращаться хочется - пожалуйста линк:
http://www.syncfusion.com/Products/product...26&tab_id=0

Ещё есть такая штука как IFilters, позволяет получать текст вообще откуда угодно, даже без установленного офиса, акробат ридера и т.п. (должен быть установлен соотв. IFilter). Если очень нужно, могу подкинуть примеры. 


--------------------
user posted image
PM MAIL WWW   Вверх
Wanderer2019
Дата 11.7.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 937
Регистрация: 3.12.2004
Где: Санкт-Петербург/П рага

Репутация: 7
Всего: 17



Цитата(mr.DUDA @  11.7.2006,  10:55 Найти цитируемый пост)
Ещё есть такая штука как IFilters, позволяет получать текст вообще откуда угодно, даже без установленного офиса, акробат ридера и т.п. (должен быть установлен соотв. IFilter). Если очень нужно, могу подкинуть примеры.  


О! интересно было бы посмотреть! 
PM ICQ MSN   Вверх
Softaz
Дата 11.7.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(mr.DUDA @  11.7.2006,  10:55 Найти цитируемый пост)
Ещё есть такая штука как IFilters, позволяет получать текст вообще откуда угодно, даже без установленного офиса, акробат ридера и т.п. (должен быть установлен соотв. IFilter). Если очень нужно, могу подкинуть примеры.


Приведи, пожалуйста.



Цитата(mr.DUDA @  11.7.2006,  10:43 Найти цитируемый пост)
namespace System.Text.RegularExpressions

Я представил, СКОЛЬКО надо учесть, чтобы распарсить среднюю html-страницу в текст и решил поискать пути полегче. 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 11.7.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Пример взят с codeproject, поэтому выкладываю как есть, в виде архива. Тестовое приложение позволяет выдернуть текст из любого файла (где он есть, и для которого установлен IFilter).  

Присоединённый файл ( Кол-во скачиваний: 67 )
Присоединённый файл  IFilterExample.zip 17,42 Kb


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 11.7.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



mr.DUDA, спасибо.
Буду разбираться.
Сразу скажу, что текст из html-файла он выдернул гораздо медленнее, чем у меня есть.
С doc файлом справился отлично, с odt есть мелкие баги.

Все это для индексатора. Такой маленький поисковой движок будет.
Так вот, чтобы получить текст html-страницы (сделал через OLE, так как альтернативы не было), исключить ненужные символы и создать HashTable корней и приставок слов с  их типом (существо-действие-описание) в документе, потом сравнить его с уже имеющимися в базе и выкинуть из массива уже имеющиеся в базе, а новые внести (используя Prepare()), отобразить это в Grid-ах форме.
На это уходит в среднем 28 кБ/секунда и скорость постепенно падает с ростом БД.
Вот и ищу, как повысить быстродействие. 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 11.7.2006, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Softaz, а что для индексирования юзаем ? Случайно не Lucene .NET ? smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 11.7.2006, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Нет. Свой пишу. smile

Добавлено @ 19:49 
Вот пример функции разбора слов.
Два дня потратил.
Ошибки приведения пока есть, но мало. 
СУЩ. - существо, предмет, состояние, количество.
ГЛАГ. - действие
ПРИЛ. - описательное. 

Это сообщение отредактировал(а) Softaz - 11.7.2006, 19:54

Присоединённый файл ( Кол-во скачиваний: 27 )
Присоединённый файл  pwrd.7z 4,18 Kb


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 11.7.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Softaz, чем изобретать свой велосипед, советую обратить внимание сюда:

http://www.dotlucene.net
 


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 12.7.2006, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



mr.DUDA, спасибо.
Только я что-то не понял. Вроде русские в команде есть.
Буду разбираться.
Мне хочется, чтобы движок понимал морфологию. А в будущем части речи и релевантност 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
mr.DUDA
Дата 12.7.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Softaz @  12.7.2006,  08:04 Найти цитируемый пост)
 Вроде русские в команде есть.

Есть русские.

Цитата(Softaz @  12.7.2006,  08:04 Найти цитируемый пост)
Мне хочется, чтобы движок понимал морфологию. А в будущем части речи и релевантност

Чтобы сделать хороший и быстрый поисковый движок, нужны специальные знания в области оптимизации хранения и поиска данных. Где-то был сайт, на котором чел объяснял, с какими сложностями можно столкнуться даже делая простейший индексатор по ключевым словам: тут вам и большой объём базы, и необходимость использовать не обычные БД а двоичную древовидную структуру, и специальные алгоритмы, серьёзно ускоряющие поиск по сравнению с традиционными а-ля fast search, и т.п. Самому пришлось в своём проекте делать полнотекстовый поиск, поэтому предметом немного владею.  smile 

P.S. кстати, а в SQL Server есть свой full-text search, он только русского не понимает smile 


--------------------
user posted image
PM MAIL WWW   Вверх
Softaz
Дата 12.7.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Цитата(mr.DUDA @  12.7.2006,  08:38 Найти цитируемый пост)
в SQL Server есть свой full-text search, он только русского не понимает

Где-то читал, что понимает, если какой-то их аддон поставить.

Цитата(mr.DUDA @  12.7.2006,  08:38 Найти цитируемый пост)
Где-то был сайт, на котором чел объяснял, с какими сложностями можно столкнуться

А можешь вспомнить? Хотя бы ключевые слова, по которым искать можно. Пока неизвестен предмет поиска, его невозможно узнать.

Я скормил индексатору полное собрание сочинений Пушкина и других классиков - что под рукой было. Получилось около миллиона слов в индексе. Это с учетом обрезания окончаний и суффиксов. Поиск длится около секунды. Пока устраивает. Однако планируется хранить очень большой объем данных
 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Softaz
Дата 18.7.2006, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


wasm
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 16.1.2006

Репутация: 3
Всего: 16



Нашел хороший сайт. itman.narod.ru . Главное - куча ссылок на подобные сайты. Кому понравится, может скачать с зеркала: http://zaotzs.ru/admin/itman.tar.gz (15 МБ) 


--------------------
Разочарованный в .NET
PM MAIL WWW   Вверх
Butsa
Дата 11.7.2008, 15:11 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 6.6.2006
Где: Украина,Харьков

Репутация: нет
Всего: нет



Можно написать хранимку на MS SQL Server (использовать команду OPENROWSET(BULK...))  а потом вызывать в своем солюшене...
PM MAIL ICQ   Вверх
Dende-Soft
Дата 7.1.2010, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.3.2007

Репутация: нет
Всего: нет



Удалил.

Это сообщение отредактировал(а) Dende-Soft - 7.1.2010, 17:43
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0947 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.