Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Информационный поиск. 
:(
    Опции темы
les
Дата 22.4.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день/ночь/вечер/утро. Есть такая затея... создать что то наподобие мобильного поисковика новостей и статей. Тоесть с помощью заранее установленных шаблонов-запросов получать информацию с rss, новостных сайтов, блогов....  Но хотелось бы использовать не просто regexp`ы а чтото более "умное",  тоесть как то классифицировать ту информацию кот обрабатываетсяы... либо это новость о политикт, либо из мира искусства и т.д. Помогите пожпалуйста, "наставить на путь истинный"
PM MAIL   Вверх
les
Дата 22.4.2008, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Даже так ...
К примеру есть несколько запросов, у разных пользователей, все обращються к лента.ру...  к примеру rss. Эти запросы задаються на первоначальном этапе. В последствии с каждым обновлением новостей, происходит выборка на основе запросов, и если результат удачный - то конктретный пользователь получает результат... 
PM MAIL   Вверх
Akina
Дата 22.4.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



А каков у вас опыт построения систем подобного уровня? Одного "хочу" в таком деле катастрофически мало...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
les
Дата 22.4.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



опыта нет... Но скажем так .. выбора у меня нет... и делать мне это нужно. И любому совету буду очень благадарен.
PM MAIL   Вверх
SoWa
Дата 23.4.2008, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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





--------------------
Всем добра smile
PM MAIL ICQ   Вверх
VictorTsaregorodtsev
Дата 26.4.2008, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



les, по первому посту (по вопросу КЛАССИФИКАЦИИ ИНФОРМАЦИИ) - есть куча коммерческих реализаций программ агрегирования и автоматической рубрикации новостевых лент. У русских разработчиков есть по меньшей мере пара таких коробочных продуктов для компов. Я подобное делал для патентных баз данных (когда запрос пересылается к нескольким источникам, а потом собранная кучка текстов делится на группы так, чтобы патенты внутри одной группы были более похожи друг на друга, чем на патенты из других групп). Из всей математики-алгоритмики для КЛАССИФИКАЦИИ-авторубрикации - оцифровка текстов с некоторой нормализацией окончаний-словоформ и с отбрасыванием малоинформативных союзов-предлогов, далее построение частотных словарей, ну и обычный статистический алгоритм автоматической классификации. Даже комбинаторных алгоритмов нигде не возникает - например, не нужно использовать расстояние Левенштейна. Хотя да, накрутить-то при желании можно еще много чего сложного, в том числе и обучение по эталонным текстам и их делению на темы.
Подробнее рассказывать не буду - я на подобных проектах деньги зарабатываю ;)

PM MAIL WWW   Вверх
HistoryEarth
Дата 28.4.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



"Просто так" эту задачу не решить, ею сейчас плотно занимаются многие, и коммерческий потенциал таких алгоритмов не очень мал smile Так что за просто так тебя в рынок не пустят
PM MAIL   Вверх
les
Дата 2.5.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так... с помощью пары советов уже нашел направление в кот. надо думать...
Классификация, кластеризация...
И выделил один из этапов постороения...
Есть несколько наборов небольших текстов (А). Есть набор из категорий (С)... Есть пополняющаяся база текстов, которые заранее определены на эти группы (Б). И нужно набор А раcкидать по набору С. Идея в чем... Собрать статистику по текстам из Б для ВАЖНЫХ слов (либо выкинуть союзы, местоимения, слова связки, и вообще, слова которые "не зависят" от категории, и чем больше таких выкину тем лучше, либо наоборот иметь базу "важных" слов).

Можно ли это както организовать, т.е. существуют ли уже готовые алгоритмы, базы таких слов?

Так или иначе ... таким способом получиться огромнейшая размерность... Как ее можно понизить? Есть методы факторного анализа - для сокращения чила переменных... но как уменьшить размерность, где каждый "размер" - слово.... ??? Нужно найти что типа зависимости между некотороми из них и объединять в одну....

Это сообщение отредактировал(а) les - 3.5.2008, 13:21
PM MAIL   Вверх
les
Дата 3.5.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так... я застрял... 
Вся сложность пока что как раз в создании "индекса"/"вектора" для текста... Тоесть набора пар ("слово","количество слова в тексте ").
(А) надо или как то "нормализовать" формы слов, или (Б) вытащить что то типа корней ( или частей слова,несущих смысловую нагрузку ).

(Б) мне кажеться более компактное.. но менее точно (причем намного), (А) подрузумевает большую базу...

Существует ли аналог алгоритма Портера для русского?

У кого есть какие мыслишки?

Это сообщение отредактировал(а) les - 3.5.2008, 13:54
PM MAIL   Вверх
VictorTsaregorodtsev
Дата 3.5.2008, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ничего, "лобовое" решение будет достаточно приемлемым.
"Индекс/вектор" надо просто превратить в частотный словарь - список извлеченных из корпуса текстов слов (за исключением союзов-предлогов-...) надо просто отсортировать и затем НЕ ПОПОЛНЯТЬ при поступлении новых текстов (кроме как при полной перенастройке системы). Тогда сразу каждому слову можно будет поставить в соответствие просто уникальный элемент вектора. И вместо количества слов лучше взять относительную частоту слова именно в этом тексте.
Ну, будет каждый текст в итоге закодирован парой тысяч чисел в плавающем формате - так там большинство чисел будет нулевыми и, при необходимости, действительно можно будет сократить размерность факторным анализом анализом главных компонент (principal component analysis, PCA - почти в каждом учебнике по прикладной статистике должно быть описание).
Делить по эталонным группам - ну, берете учебник по статистике и вперед. Проще всего считать расстояние (лучше в метрике Махаланобиса) от нового, поступившего на классификацию текста, до "центра тяжести" текстов каждой группы (и считать, что текст будет относиться к ближайшей группе). Можно байесовским классификатором побаловаться. Если группы не будут относительно компактными - то либо непараметический байес, либо метод ближайших соседей.
В общем, всё будет упираться в то, насколько хорошо будут отличаться друг от друга группы эталонных текстов. Если предполагать, что им соответствуют существенно разные используемые слова и относительные частоты этих слов в тексте - то надо просто это проверить, т.к. делается быстро. А вот более сложную гипотезу отличия текстов друг от друга придумать гораздо труднее.
PM MAIL WWW   Вверх
W4FhLF
Дата 3.5.2008, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(VictorTsaregorodtsev @  26.4.2008,  15:04 Найти цитируемый пост)
 есть куча коммерческих реализаций программ агрегирования и автоматической рубрикации новостевых лент.


Можно пару примеров?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
les
Дата 3.5.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



2VictorTsaregorodtsev..... 

Так... Категории (классификация) у меня есть - это будет категории с Лента.ру (число постоянное). Есть достаточное часто пополняющееся (ну плюс уже и существующее) множество с уже наперед заданной категорией (классификацией).
Мне нужно собрать приличную статистику по этим текстам/репортажем/заметкам.

как я это видел.... 
-Отбросить стоп-слова, слова-шумы, 
-нормализовать формы слов (нашел коечто для этого snowball), 
-пройтись по ВСЕМ текстам в каждой категории, составить частоту выпадения "слов" для ВСЕЙ категории в общем (тут по идеи можно и в относительную сразу перевести, но при этом тогда оставив общее количество слов на случай пополнения, либо абсолютную )
-таким образом вроде бы как и получаются координаты "центра тяжести" для каждой категории.
-Так как в новостных категориях (очень причем условных - так например новости о катастрофе в какой-нибудь республикке СНГ можно  отнести и "Страны СНГ", к "Международное новости" так и "Природа" - не очень хороший пример, но суть ясна), по тут можно как раз использовать метод к-соседей (который в моем случае скрестился с к-медианой - вроде так), и тут уже по ближненму расстоянию выбирать категории для "неопределившегося" текта.

У меня появились вопросики..... 
- Опять же.. Где найти словарь стоп-слов? самому составить - это не один мясец наверное.
- Правильно ли делать уровниловку для текстов в категории... или оставить для каждого текста свой вектор...? Тут тогда и к-соседи выплывут.
- Мне кажеться, что просто отностительную частоту в качества значения компонента вектора использовать не достаточно. Есть ли другой алгорит его вычисления.
- В противовес стоп-слов не плохо было бы иметь базу "гоу"-слов  smile - это название стран (не трудног составить), аббревиатур  (ну тут регэкспами справиться мона), фамилии и имена (тоже не знаю как это вытащить  smile ) и наделить бы их как нибудь большим весом.

Это сообщение отредактировал(а) les - 4.5.2008, 10:08
PM MAIL   Вверх
dereyly
Дата 4.5.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
-пройтись по ВСЕМ текстам в каждой категории, составить частоту выпадения "слов" для ВСЕЙ категории в общем (тут по идеи можно и в относительную сразу перевести, но при этом тогда оставив общее количество слов на случай пополнения, либо абсолютную )

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

Цитата
- В противовес стоп-слов не плохо было бы иметь базу "гоу"-слов  smile - это название стран (не трудног составить), аббревиатур  (ну тут регэкспами справиться мона), фамилии и имена (тоже не знаю как это вытащить  smile ) и наделить бы их как нибудь большим весом.
 
для аббревиатур попробуйте использовать анафоры хотя это чуть о другом, но для анализа текста это будет полезно, правда, это не первостепенно а только может улучшить алгоритм. Имена и Фамилии вполне могут быть гоу словами, хотя зачастую они имеют большой вес сами по себе.
PS: естественно для анализа надо использовать только существительные 
PSS: Можете посмотреть книгу Харламова А.А. или сайт analyst.ru
PM MAIL   Вверх
les
Дата 4.5.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот только хотел по пповоду существительных спросить  smile . Спасибо.

Вот только как эти существительные выдернуть?

Вот что получилось при отбрасывании некоторых стоп слов и обработки алгоритмомом Портера

Код

абхаз =>3
абхазск =>1
апрел =>1
дан =>1
дополнительн =>3
достоверн =>1
глав =>1
госминистр =>1
государств =>1
груз =>2
грузин =>1
грузинск =>3
имеющ =>1
информац =>1
источник =>1
издан =>1
количеств =>1
конфликт =>2
контингент =>2
лимит =>1
ма =>1
мид =>1
министерств =>1
миротворц =>1
миротворческ =>2
назва =>1
немедлен =>1
непризна =>1
незакон =>1
новост =>1
оборон =>1
обостр =>1
объяв =>1
охарактеризова =>1
онлайн =>1
опроверг =>1
очередн =>1
план =>1
полтор =>1
потребова =>1
предшествова =>1
превыша =>1
якоб =>1
якобашв =>1
рамк =>1
ран =>1
раз =>1
регион =>1
реинтеграц =>1
республик =>1
решен =>1
рф =>1
ри =>1
росс =>1
российск =>1
руководств =>1
сил =>2
ситуац =>1
сми =>1
снг =>1
сообща =>1
совет =>1
сторон =>1
сведен =>1
связ =>1
темур =>1
территор =>1
установлен =>1
утвержда =>2
увелич =>2
участник =>1
журналист =>1
власт =>1
военнослужа =>1
вопрос =>1
введ =>1
ввел =>1
ввод =>1
вывест =>1
зон =>1
частност =>1
числ =>1
числен =>1


PM MAIL   Вверх
les
Дата 4.5.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ох....Чем дальше в лес, тем больше партизан  smile 
С существительными поступил как: нашел словарик русского для ispell и к нему suffixes (prefixes не нашел  smile )
С помощью скриптика сгенирировал несколько существительных....

Код

......
авианосец
авианосца
авианосцу
авианосце
авианосцы
авианосцам
авианосцами
авианосцах
авианосцев
авианосцем
авиаопрыскивание
авиаопрыскивания
авиаопрыскиванию
авиаопрыскиванием
авиаопрыскивании
авиаотряд
авиаотряда
авиаотряду
авиаотрядом
авиаотряде
авиаотряды
авиаотрядов
авиаотрядам
........

Словарик обошелся в 4 метра, это явно еще не предел...
Теперь делема....  Может эти слова в таком виде и использовать как оси для векторов (резмерность впечатляет  smile ) и положить его за неизменяемый базис, или все-таки пройтись по ним Портером?



Это сообщение отредактировал(а) les - 4.5.2008, 18:05
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




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


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

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