LINUX.ORG.RU

Поиск по маске слов на perl


0

0

Идея о том, как сделать "релевантность" или поиск по маске(степень похожести текста) для автоматического выстраивания текста в каталоги по тематике. Информация специализированная, но может быть кому-нибудь будет интересно...

>>> Подробности

☆☆

Проверено:

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

а где можно по-подробнее почитать по поводу синтаксического и семантического разбора текстов на русском (теорию, алгоритмы)?

Lucky ★★
()

я это все сам придумал.

что почитать? я читал теорию построения баз данных, а перед этим года полтора споры об искственном интеллекте из fido7.su.science. Интерференция и дала этот текст.

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

vilfred ☆☆
() автор топика

книжка "Базы данных, разработка и управление", Гэри Хансен и Джеймс Хансен, Изд-во БИНОМ, 1999, 704 стр.

А вообще на написание сего скрипта сподвигло прочтение постинга на ixbt:

http://forum.ixbt.com/0026/014351.html

и сам думал над такими вещами(всетки чтение fido7.su.science как-то определяет ход мысли): вот ссылка http://ims98.nw.ru/cgi-bin/GET_TEZ0.exe?NUM_LINK=107 (дня два назад нашел через яндекс) и сам написал летом прошлого года: http://www.pereplet.ru/nauka/perl/base.shtml#fast

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

Нахождение частот вхождений слов описано в библиотеке программиста Perl(Натал Торкингстон, Том Кристиансен, O'REILLY Питер-пресс)

Компиляция всего вышеописанного и дала идею программы.

vilfred ☆☆
() автор топика

а вообще, это все самому нужно придумывать, как это ни странно звучит. Вообще на ВМиК МГУ есть программа, умеющая отличать приставки и предлоги...

По поводу разбора предложений - это не знаю как сделать... потому как ход мышления у человека, когда он делает разбор предложения и составляет фразы, просто разговаривая и базы данных, когда она ищет разные. Но по идее можно составить матрицу, она она будет тем более точной , чем большая выборка текста... короче не знаю, но поломать голову над этим можно. я вот сейчас не знаю, что важнее, начать собирать условия типа "яблоко зеленое, яблоко спелое" определить область яблок, груш и т.д., к которым применительна область прилагательных тпа спелое и дальше плясать от этого, либо надеятся на то, что эти матрицы сами определят что может быть спелым и зеленым, но вовсе не недовинченным.

Хотя человек обучается снизу, т.е. яблоко спелое, арбуз красный, и т.д. т.е; из частностей состоит целое, вобщем не знаю, может слинковать это как-то, а потом суммой или разницей определять вес вклада той или иной идиомы в общий резульат.

короче муторно все это. Еще годик надо над эти неспеша помозговать.

vilfred ☆☆
() автор топика

наткнулся вот еще на:

http://www.infoscope.forth.ru//string_search/Stephen-92/index.html

почитал, посмотрел, там задачи вида нахождение расстояния между последовательностями символов, одна строчка length $2 m&$first(.*?)$end&...

Т.е. ликвидность этой книжки можно сократить раза в 4-ре... всмысле что самому все придумать проще. А разбор слов - имхо чисто техническая задача, правильная релизация в учебнике русского языка. Хотя не знаю, сложно это. Заставить машину думать как думаешь ты, выражая мысль словом wazzup скажем.

vilfred ☆☆
() автор топика

А вообще на перле ничего более сложного чем Lingua::EN::Inflect
ты не сделаешь - это не язык для больших NLP систем, думай ты хоть
год, хоть 2.

singerschucher
()

Ей богу бред сумасшедшего. Скажи, какое отношение твоя приблуда имеет к поиску по маске?
А где учат так выделять слово: $m[$i]=~m!((\w[\w-]*){4,30})!g ?
И что за чушь вот это:
"Для отладки пишется подпрограмма rrand(), которая переставляет случаным образом элементы массива."

И последнее, каков смысл этой статьи? Показать как _не_ работают реальные поисковики? ;)
Такие вещи называются "мысли в слух", и интерес представляют обычно если их автор
какой-нибудь известный ученый, писатель, политик...

anonymous
()

2 anonymous (*) (2002-05-29 03:43:52.475)
А ты собственно кто? Что ты сделал, кроме того, что обосрал автора? По-моему ты просто пи..обол!

PitStop
()

(2002-05-29 03:43:52.475) да успокойся ты...

"А где учат так выделять слово" perldoc perlre

а че такое поиск по маске? потому как все что тут написано, все сам придумал, идею всмысле и название к ней, может и есть такое понятие, но я просто не знаю....

"_не_ работают реальные поисковики" - конечно не работают. www.nature.ru сидят и вбивают вручную перекрестные ссылки на файлы(надо сказать тупая работа). А это могла бы сделать программа. Поисковики действительно так не работают.

p.s. найди себе девушку, помогает.

vilfred ☆☆
() автор топика
Ответ на: комментарий от vilfred

> "А где учат так выделять слово" perldoc perlre
Ну тогда грепни там на предмет "word boundary".

> может и есть такое понятие, но я просто не знаю....
Поиск по маске - конечно есть такое понятие...
Например, поиск файлов по маске. Никогда не слышал?
Помнится была такая книжка Фигурнова про ОS MS DOS...

anonymous
()

блин

вот тебе 4-ре способа поиска слов, сходу:

m&\b(.*?)\b&g;

m![^\s](.*?)[\s$]!g

m%(\xE0-\xFF\xB3)%ig; - это для заглавных в koi-8

$count++ for split;

потом идем и смотрим на стр 296, "Perl, библ. программиста", O'Reilly:

m!((\w[\w-]*){4,30})!g

яж знал что пнут... тут дело-то в идее. блин. плевать как написано, и на каком языке, ох...

вот веришь - неверишь, perldoc perlre я даже не читал... т.к. английского вообще не знаю...

здесь имеется ввиду другое, поиск по маске внутри файла...

сорри если что не так.

vilfred ☆☆
() автор топика

не, конечно понимаю, что все это лажа... на уровне интересно...

vilfred ☆☆
() автор топика

Вильфред, хочу дать тебе пару ламерских советов :-))))

1) Отделяй алгоритм от реализации. Как только ставится задача, сразу же лезут в голову умные мысли типа "этот кусок я сделаю так, а вот этот - эдак.." и т.п. Надо гнать их из головы поганой метлой :-)))) Они все равно потом приползут, когда надо будет делать реализацию. Сначала надо алгоритм полностью и четко продумать.

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

LamerOk ★★★★★
()

Да, забыл добавить - таки базы данных обычно строят обычно скармливая системе как можно больший объем тематической инфы. Ну а потом уже напильничком :-))))))

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.