Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Ассоциативно-семантический поиск с сугестией


Автор: ДокторТуамОсес 30.7.2011, 13:15
Ищу программу для поиска текстовой информации у себя на жёстком диске.
Таких программ до фига, скажете Вы.
Например Архивариус 3000, Search inform, ищейка, Google Desctop Search и т.п.
Да. Программ много. Но в них нет нужных мне фишек.
О каких "фишках" идёт речь?
Сейчас попробую рассказать. Прогу, которая должна иметь описанные ниже фишки
я условно буду называть ХХ.

1) Хочу чтобы была поддержка суггестии. Ну типа как в яндексе: пока ты набираешь
текст в строке поиска яндекс параллельно ищет и предлагает тебе варианты
поиска.

К примеру я набрал "мама мыла р" а ХХ мне показывает в выпадающем списке:
"мама мыла раму" (123 890)
"мама мыла руки" (23 433)
"мама мыла ребёнка" (12 444)
Где цифры показывают кол-во найденного в базе данных ХХ

2) Семантический поиск. Хочу чтобы можно было задать поиск близких по смыслу слов.
Например я ввёл "папа <#ушёл> домой".
То что слово "ушёл" написано в угловых скобках с префиксом # говорит о том, 
что в этой фразе вместо слово "ушёл" могут быть также и другие, близкие по 
смыслу, слова. Например, "уехал", "вернулся", "направился" и т.п.

3) Хочу чтобы можно было вместо конкретного слова написать <@глагол>, 
<@существительное> и т.д..
Например, если я введу "папа <@глагол> домой", то ХХ должна мне найти
все документы, которые содержат фразы где после "папа" следует
ЛЮБОЙ глагол, а потом слово "домой"

4) Поиск ассоциативно-связанной инфы.
Т.е. я ввожу некий запрос. ХХ анализируя свою базу данных находит
слова, словосочетания или фразы, которые чаще всего присутствуют в документе
вместе с указанным Вами запросом.
К примеру.
Вы ввели "Ошибка в Windows".
А ХХ в суггестии Вам показывает:
"Билл Гейтс" [78%][32][1,4]
"синий экран" [33%][39][1,9]
"мелкософт" [22%][22][3,01]
Что означают эти цифры?
Рассмотрим к примеру 1-ю строку.
- "78%" говорит нам, что 78% документов, в которых найдено "Ошибка в 
Windows", содержат также и фразу "Билл Гейтс". 
- "32" - это среднее расстояние (слов) в документах от фразы "Ошибка в Windows" 
до ближайшей к ней фразе "Билл Гейтс". 
- "1,4" показывает сколько раз (усреднёно по всем документам) в документе, 
содержащем "Ошибка в Windows" и "Билл Гейтс" повторяется Билл Гейтс"

5) Чтобы можно было задавать вес слов, словосочетаний и предложений.
К примеру если я хочу, чтобы документы и фразы, в которых встречается слово 
"форум", имели меньший вес в списке результатов поиска и вариантов суггестии, 
то я задаю ему нулевой вес. Напротив. Если я хочу, чтобы документы и варианты 
суггестии, содержащие, к примеру, слово OLAP имели больший вес, то я задаю
слову OLAP максимальный вес (10).

6) Чтобы можно было задавать то, что я ищу путём указания расстояния от 
известной фразы
К примеру запрос "папа /{2,3} [<@глагол>] маму" означает что нужно найти все
глаголы в документах, в которых глагол расположен справа от слова "папа"
на расстоянии от 2-х до 3-х слов и после которого следует слово мама.


Засим пока хватит.
Хотя описание получилось довольно путаным и сумбурным.
Но я надеюсь Вы поняли основные моменты.
Просто и так "много букафф" получилось, а если бы я описывал всё более детально 
и более понятно, что вообще текст бы немереный получился и вряд ли бы его кто-то
тогда "асилил" бы.

Поэтому это пока всё. А в дальнейшем я буду просто давать уточнения и 
дополнения.

_________________________________
13:58 30 июля 2011 г.
Доктор ТуамОсес inc.®

Автор: Dik0n 30.7.2011, 14:10
Них*ра себе требований smile берем клаву и кодим кодим кодим...

Автор: ДокторТуамОсес 30.7.2011, 14:34
Цитата(Dik0n @  30.7.2011,  14:10 Найти цитируемый пост)
Них*ра себе требований

 smile 

Дык я вроде ничего [сверхестественного]/[не реализуемого в принципе] не хочу.
Вполне себе естественные требования.
И алгоритм их реализации "на поверхности" лежат.
Неужели же нет людей, которые эти алгоритмы уже реализовали в какой-нить проге? smile

Добавлено через 4 минуты и 42 секунды
Тем более сейчас у меня это всё уже реализовано.
Но только с помощью нескольких программ.
Т.е. приходится "ручками" перегонять данные из одной проги в другую.  smile 
А это долго и муторно.
К примеру чтобы найти в своей базе данных самый популярный ассоциативно связанный с моим запросом запрос мне приходится тратить минут 30  smile  "перегоняя" и правя данные вручную в разных прогах

Автор: ДокторТуамОсес 31.7.2011, 21:32
Никто так и не ответил, млин  :facepalm: 
А я старался. Писал.
И всё впустую

Автор: ДокторТуамОсес 1.8.2011, 14:49
Блин! smile 
Этот форум вообще кто-нибудь читает? 
Или я разговариваю сам с собой? smile

Добавлено через 2 минуты и 9 секунд
Цитата(Dik0n @  30.7.2011,  14:10 Найти цитируемый пост)
Них*ра себе требований smile 

Это я даже 5-й части не перечислил от всех требований. Так как испугался, что букафф будет так много, что тему просто вообще никто читать не станет  smile 

Автор: ДокторТуамОсес 1.8.2011, 16:02
Чтобы вам, господа, понятней было что я хочу и что я понимаю под "ассоциативно связанной инфой" расскажу как я сейчас "вручную" (с помощью архивариуса 3000) это делаю .

К примеру, меня интересует насколько ассоциативно связаны в моей базе данных (точнее в базе данных архивариуса 3000) слова гайморит и насморк.
Сначала я ищу <гайморит*>. Получаю, что <гайморит*> содержится в 1073-х файлах.
Затем я ищу <насморк*>. Получаю, что <насморк*> содержится в 1845-ти файлах.
После этого я ищу <насморк* AND гайморит*>. Архивариус находит 374 файла.

После того я вычисляю степень ассоциативной связности.
100-374/1073*100=65,14%
100-374/1845*100=79.73%

О чём говорят эти цифры?
О том, что 65% документов, содержащих слово гайморит, не содержали слова насморк
И о том, что 80% документов, содержащих слово насморк, не содержали слова гайморит.

О чём МНЕ говорят эти цифры?

О том, что ассоциативная связь между "насморком" и "гайморитом" в моей базе данных весьма слабая. Ибо при сильная связь - это, ИМХО, когда менее 10% документов содержат слово и не содержат слова, ассоциативно связанное.

Так вот. Хотелось бы иметь у себя прогу, которая сама, автоматически, находила бы мне все слова, словосочетания или предложения (впо выбору), которые очень СИЛЬНО (или напротив очень слабо) ассоциативно связаны с введённым мной поисковым запросом.

Выше я описал самый простой алгоритм вычисления степени ассоциативной связности просто как иллюстрацию того, чего же мне хотелось. Реально алгоритм может быть гораздо более сложный и интеллектуальный с кучей настроек.

Автор: ДокторТуамОсес 9.8.2011, 23:53
Чо? Мне так никто и не хлэпнет что ли?? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)