Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Google, yandex и т.д.
Форумы портала PHP.SU » PHP » Регулярные выражения » Google, yandex и т.д.

Страниц (1): [1]
 

1. ALEN - 25 Августа, 2008 - 08:24:09 - перейти к сообщению
Кто подскажет на какких языках написаны поисковые алгоритмы поисковых систем. Я сомниваюсь, что на PHP - это было бы дольше, хотя кто знает. В общем хотелось бы об том знать больше.
(Добавление)
Немного не в вопрос, но объеденю.

"Морфология" - реально добится словоизменений без БД со словами? Т.е. простой обработкой например с помощью php.
2. pifon1989 - 25 Августа, 2008 - 12:56:06 - перейти к сообщению
ALEN пишет:
Кто подскажет на какких языках написаны поисковые алгоритмы поисковых систем. Я сомниваюсь, что на PHP - это было бы дольше, хотя кто знает. В общем хотелось бы об том знать больше.

PHP + Perl + JavaScript, если брать во внимание только алгоритмы.
Ну и, разумеется, поисковые роботы пишутся либо на PHP, либо на Perl, и, я слышал, на C. Точно вам никто не скажет, механизмы поисковиков не раскрываются по сей день.
И насчёт того, что php - дольше, это вы зря. Так же, как и в любом языке программирования. И причём учитывайте, что там, в поисковике, над алгоритмом работает не кодер-самоучка, группа людей малость побольше Улыбка
ALEN пишет:
"Морфология" - реально добится словоизменений без БД со словами? Т.е. простой обработкой например с помощью php.

В каком смысле словоизменений со словами?
3. ALEN - 25 Августа, 2008 - 13:29:18 - перейти к сообщению
pifon1989 пишет:
группа людей малость побольше

Если учитывать сумму инвестиций то уже все понятно.

pifon1989 пишет:
В каком смысле словоизменений со словами?

Например слово "МИР"
Без словарей и дополнительных данных из БД, т.е. по падежам можество существующих слов склонят слова.
МИР, МИРУ, МИРА,МИРОМ и т.д.
4. pifon1989 - 25 Августа, 2008 - 13:34:20 - перейти к сообщению
ALEN пишет:
Например слово "МИР"
Без словарей и дополнительных данных из БД, т.е. по падежам можество существующих слов склонят слова.
МИР, МИРУ, МИРА,МИРОМ и т.д.

А, собственно, зачем это нужно? Однако
Если нужно просто вставлять в текст, объявляете несколько переменных, в которых содержатся слова в разных падежах.
Если проверить, правильный ли укзан падеж в слове, применяете функцию ereg(). Если найти в большом тексте слова в нужном падеже - preg_match().
Само по себе вряд ли такое есть. Нужно либо самому писать, либо гуглить. Да и, опять же, повторюсь, для того, чтобы написать класс, нужно ещё знать сначала, нафиг он нужен, ибо применений могут быть иногда и тысячи.
5. ALEN - 25 Августа, 2008 - 13:39:27 - перейти к сообщению
На счет регулярных выражения я то и сам понимаю.

Использовать в поиске. Т.е. пользователь пишет фразу, каждая фраза склоняется и т.д. на основе всего я формирю запрос к БД и выдаю результат более релевантный нежели при использовании просто слов, которые существуют во фразе.

Например если пользователь введен слово МИР из сто страниц будет только на одной, но есть пользователи которые не граматно состовляют запросы (как я))))!), поэтому качественней более объемней я получу результат после обработки.

Использовать словари чего-то не хочется - запросы будут дольше!
6. pifon1989 - 25 Августа, 2008 - 14:00:16 - перейти к сообщению
ALEN пишет:
Использовать в поиске. Т.е. пользователь пишет фразу, каждая фраза склоняется и т.д. на основе всего я формирю запрос к БД и выдаю результат более релевантный нежели при использовании просто слов, которые существуют во фразе.

Например если пользователь введен слово МИР из сто страниц будет только на одной, но есть пользователи которые не граматно состовляют запросы (как я))))!), поэтому качественней более объемней я получу результат после обработки.

Использовать словари чего-то не хочется - запросы будут дольше!

Видите ли, тут есть ряд сложностей, как то: откуда скрипту, пусть зашибись умному, знать, как просклонять слово "мир"? Нет, ну предположим, что мы зададим ряд условий.
Получится:
мир - введено юзером
Дополнительно также в запрос будет вставлено:
мирНЫЙ;
ВСЕмирНЫЙ;
мирА;
мирУ;
Но предположим, что юзер введёт не слово "мир", на которое мы рассчитывали, а, скажем, "гора".
И тогда БД спросят:
гораНЫЙ
ВСЕгораНЫЙ
гораА
гораУ.
И в результате мы получаем не только лишние запросы, но и куда больший нагруз, чем от словарей!
А если юзер введёт "никотинамидадениндинуклеотидфосфат"?
В общем, тут без словарей никак. Разве что применять короткие или урезанные. Но я бы вообще то посоветовал вам не заморачиваться. Если вы не решили в одиночку делать поисковик, а просто нуждаетесь в поиске по сайту или форуму, ограничтесь запросом юзера, и уверяю, всё, что ему нужно, он найдёт и без словарей.
А если уж хотите чтобы прямо как поисковик искало, воспользуйтесь сайтовым поисковиком от гугла, яндекса или другой системы. И себе легче сделаете, и задачу выполните.
7. ALEN - 25 Августа, 2008 - 14:21:11 - перейти к сообщению
Я прекрасно это понимал и понимаю, тему создал для того, чтоб малоли кто-то или я сам сделав вывод, додумался до определенного деяния.

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

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

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

Да не буду спорить - сильно решил прыгнуть и выше головы, т.к. граматика руского языка достаточно сложна, чтоб ее довести до логики, без неких исключений никак не обойтись, но данный топик должен довести меня и таких же, как я до определенного решения, чтоб потом не вести все по новой. Поэтому хочется услышать еще мнения, кто и что думает по этому поводу.
8. pifon1989 - 25 Августа, 2008 - 14:36:49 - перейти к сообщению
Если вы думаете, что всё так реально просто, то призадумайтесь также: почему ещё никто не сел и такого не сделал? А если и сделал и сел, что не распространил?
Я брал ещё простые существительные, не составные, это ещё не глаголы, не причастия, не деепричастия, не прилагательные, не местоимения, не наречия и не междометия. Вспомните ещё союзы и предлоги.
Для того, чтобы создать такую систему нужно море свободного времени, отнюдь не один доброволец и более-менее решительная цель такого убивания времени.
И, прикидывая в уме, уже представляю, сколько будет весить такой скрипт и сколько будет тянуть памяти. Улыбка
Бросьте, если это не бессмысленно, то по крайней мере бесполезно.
Тем паче что простые запросы великолепно справляются со своей работой.
9. ALEN - 25 Августа, 2008 - 15:30:06 - перейти к сообщению
Я не говорю, что конкретно сяду и буду писать. Изначально все нужно сделать логически, а логически еще все на словарях. Вот быо бы удобно, если бы определить не сложную функцию по определению к какой части речи относится слово. ЕСли этого не узнать, то действительно это безсмыслено, но кто знает, что нам готовят другие версии того же php.
10. pifon1989 - 25 Августа, 2008 - 16:12:09 - перейти к сообщению
ALEN пишет:
но кто знает, что нам готовят другие версии того же php.

мнхмн...)) Вы правда думаете, что у php сообщества мало работы кроме как создавать анализаторы части речи на РУССКОМ языке? Голливудская улыбка
11. ALEN - 25 Августа, 2008 - 16:30:10 - перейти к сообщению
pifon1989 пишет:
мнхмн...)) Вы правда думаете, что у php сообщества мало работы кроме как создавать анализаторы части речи на РУССКОМ языке?


Я же естественно "грубо" высказал. Множество библиотек придумывается и т.д.

 

Powered by ExBB FM 1.0 RC1