IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   определения языка сайта (https://www.imho.ws/showthread.php?t=73088)

nemra 09.11.2004 10:08

определения языка сайта
 
Привет всем!
Профи, у меня вот такой вопрос. Как можно, например с пмощью PERL или PHP, определить язык сайта, а так же его кодировку, если его нет в мета-тэге? Возможно ли такое или нет? Например, нужно найти, открывая сокеты перлом по заданным адресам, к слову, сайты только на украинском или грузинском. А, если сайт на русском языке, то его кодировку... реально это или нет?
Заранее всем спасибо!

dyr_farot 09.11.2004 12:13

делается это довольно легко ( алгоритмически )
береш словарь ( сколько языков / кодировок -- столько и словарей )
а потом выделяеш слово и ищеш его в словаре ( нашел -- знаеш язык / кодировку ( операцию повторить для увеличения вероятности ) )
как бы все

BetDeD 09.11.2004 23:14

Можно и подругому. Не знаю,как в Перле, но в ПХП можно это организовать с помощью переменных окружения.
Например вот-так:_SERVER["HTTP_ACCEPT_CHARSET"]

RaZEr 10.11.2004 02:44

Язык сайта определить можно, но далеко не точно и далеко не всегда. Теоретически можно проанализировать ответ сервера на предмет заголовка Content-Type. Если там windows-1251, то с большой вероятностью сайт русский. А если там UTF-8? Будем смотреть на порядковые номера символов, чтобы определить из какого они поддиапазона? А есть хитрые сайты, которые реагируют на Accept-Language, и подсталяют разные кодировки, а порой и разные языковые версии сайта. Неговоря уже о случайностях когда русские веб-мастера делают англ. сайты выводя всё в привычной им windows-1251...

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

HoverHell 12.11.2004 15:25

Если сделать высоковероятное предположение что в google сделано наиболее лучшим возможным способом, то получится что в большинстве случаев язык определить можно, но чуществуют и исключения (встречались напр. немецкие сайты которые гугл признал английскими)

RaZEr 12.11.2004 15:57

Гугл роется в контенте. Это ресурсоемко, но для поисковика просто неизбежно. Заполучив тысячи ключевых слов не сложно определить язык.

nemra 13.11.2004 12:56

а в какой базе данных хранят информацию поисковики?

RaZEr 13.11.2004 13:01

В разных.

nemra 13.11.2004 13:08

в разных?... да, но не во всех. например не в MySQL и не в Oracle... честно говоря сам не знаю почему, но как-то давно прочитал что SQL базы не подходят для работы в нормальных и немаленьких поисковых системах.

RaZEr 13.11.2004 13:15

Логично. MySQL не предназначен для больших баз, а Oracle довольно медлителен. Рамблер например использует PostgreSQL. Монстры вроде Google, используют свои, адаптированные под конкретные нужды.

Al-x 13.11.2004 13:39

А что мешает использовать Google для выяснения языка сайта? :) Смотрим как формируется запрос на странице расширенного поиска (по сути нужно вынуть параметр языковых ограничений и site:www.xxx.yy), формируем таой запрос скриптом, запрашиваем Google. Если язык не угадан, имеем зелёную подпись на верху страницы. Вот только грузинского и украинского я там не нашёл :) Не очень быстро, зато не надо проверять по словарям, искать хитрый алгоритмический подход.

RaZEr 13.11.2004 13:53

И яндекс и гугл могут пробанить подобных роботов. Прийдется использовать прикси, обновлять прокси-листы ... будет ли оно того стоить?...

antonprk 13.11.2004 19:46

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

Цитата:

Сообщение от nemra
в разных?... да, но не во всех. например не в MySQL и не в Oracle... честно говоря сам не знаю почему, но как-то давно прочитал что SQL базы не подходят для работы в нормальных и немаленьких поисковых системах.

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

nemra 13.11.2004 20:02

Цитата:

Здрасте, Oracle ему медленный
я не говрил что он медленный :) я сказал, что я где-то, когда-то читал, для в поисковиков не очень подходят базы SQL.

А какой принцип хранения и выдачи информации в поисковой сисеме Yandex?

antonprk 13.11.2004 21:40

Цитата:

nemra:
для в поисковиков не очень подходят базы SQL.
Глупости, базы данных для этого и делают, чтобы структурировать информацию и иметь удобные средства для работы с данными.
Причем Oracle для этого очень неплохая база, хотя DB2 мне кажется подошла бы больше. Хотя все зависит от конкретной реализации.


На яндексе стоит несколько (точную цифру не помню, но явно больше 10) серверов с Ораклом и при каждом посещении центральная машина сама решает какой сервер будет выдавать ответ.

RaZEr 14.11.2004 09:52

Цитата:

На яндексе стоит несколько (точную цифру не помню, но явно больше 10) серверов с Ораклом и при каждом посещении центральная машина сама решает какой сервер будет выдавать ответ.
- Яндекс имеет около 50 серверов на поиске.
- Яндекс не использует Oracle.

antonprk 14.11.2004 12:03

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

nemra 14.11.2004 13:02

ну а всё-таки, какой серевер самый удобный для работы в поисковых? А где можно почитать о хранении и выборке данных в поисковиках? кто поможет ссылочкой?

RaZEr 14.11.2004 13:07

http://www.citforum.ru/database/dbguide/index.shtml

antonprk 14.11.2004 13:19

Цитата:

nemra:
ну а всё-таки, какой серевер самый удобный для работы в поисковых? А где можно почитать о хранении и выборке данных в поисковиках? кто поможет ссылочкой?
А всетаки лучше расскажите какая у Вас цель?

nemra 14.11.2004 13:44

цель? вот такая: :)
сделать поисковую систему, но понятно что не глобальную, а для работы, так сказать в определёных сетях. так вот, сайты нахожу, релевантность определяется, одним словом всё обрабатывается и последний вопрос, как мне их получше и где хранить, чтобы их можно было быстро и правльно потом находить. То есть к слову, обработано, ну например, 100 сайтов где слово ВАСЯ счиается ключевым, то есть это релевентное слово для этих сайтов, но они имеют разный вес. Скажем так, что ВАСЯ для первого сайта релевантно на 50%, для второго 10%, для тертьего 5% и т.д. И если задан поиска слова ВАСЯ нужно выдать сайты по релевантности. Но к слову ещё в том сайте что релевантно на 50% со словом ВАСЯ, оно релевантно со словом ПЕТЯ на 3%, то есть один сайт может иметь несколько разных слов, по которым можно его находить, но просто эти солва имеют различную важность. Не могу понять, как мне их хранить в базе, в какой структуре, чтобы их можно было быстро находить и выдавать по релевантнсоти. Повторю ещё раз, что нахожу сайты, обрабтку слов и определения релевантсрти ключевых слов уже сделал, а хранить и находить по правильному не получается.
вот например так:
www.xxx.ru - ВАСЯ 20%, ПЕТЯ 3%, ДИМА 1% и т.д.
www.yyy.ru - Петя 15%, ДИМА11%, МАША 2% и т.д.
www.zzz.ru - МАША 35%б ИВАН 31%, АЛЕКСЕФ12% и.т.д.
и так далее

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

хочу добавить, что сайтов будет много, и ещё может быть что релевантных слов будет больше, то есть может быть что для одного сайта может быть и ВАСЯ и ПЕТЯ и ДИМА по 10%, то есть несколько слов с одинаковй значимостью.

antonprk 14.11.2004 13:45

все зависит от того какая будет логика при внесении данных.
Т.е. еслим индексы строить сразу при добавлении, то и MySQL подойдет. а если половину работы взвалить на БД то лучше DB2 или Oracle, думаю что многие вспонят еще PostgreSQL но он не долтягивает по интелектуальности до Oracle, но по простоте на одном уровне с MySQL

nemra 14.11.2004 13:53

вот меня и интересует, какя нужна логика? :) я этого не знаю. Всё что я знаю и имею, это адреса и их ключевые слова с весом их значимости.. а как лучше и всё остальное для меня вопрос :( не пойму какую структуру это всё должно иметь в базе... :idontnow: :help: :confused:

правда это уже другой вопрос..... не касающийся темы, но всё же... Вроде с базой определился :)

antonprk 14.11.2004 14:28

За логику нужно платить, если согласен, дам тебе свою аську, там обсудим.

А какую базу выбрал, какой сервер бдет - публичный или выделенный?

nemra 14.11.2004 14:44

платить? :) пока рано платить :)

выбрал PostgreSQL. Почему? потому что MySQL простенький для такой задачи, с болшими базами postgre лучше раотает. оракл слишком тяжёлый для компа... PostgreSQL думаю более подходящее. Хотя вот было написано на другом форуме:

- реляционные бд НЕ используются в СЕРЬЕЗНЫХ поисковиках
- про ЛЮБЫЕ SQL СУБД забыть раз и навсегда.

не знаю почему и не знаю что тогда?

antonprk 14.11.2004 14:53

Про PosgreSQL согласен, он полегче, но и менее интелектуальный чем Oracle.

А адресочек форума не подкинете?

nemra 14.11.2004 15:14

:beer: вот я там http://portal.sysadmins.ru/board/viewtopic.php?p=425986 тоже постюсь

antonprk 14.11.2004 15:26

Я так и думал, ничего конкретного.

RaZEr 14.11.2004 15:58

Цитата:

но понятно что не глобальную, а для работы, так сказать в определёных сетях
В сетях ... например для сети 1.2.3.[0-255] это будет ~256 узлов. Даже если на каждом есть серьозный ресурс на 80-ом порту, то это в среднем 1000 страниц. Итого 256000 страниц. Индексируешь каждую в поле text того же MySQL и используешь встроенный fulltext search.

nemra 14.11.2004 16:20

Цитата:

Я так и думал, ничего конкретного
наврено тоже денег хотят :) :rolleyes:

RaZEr 14.11.2004 18:03

Цитата:

Я так и думал, ничего конкретного.
...
наврено тоже денег хотят
На том форуме очень правильно сказали:
Цитата:

Вам нужна глубокая теория?
Вы не по адресу... Ее ищут не на форуме, а в книжках.
...
Поисковая система не так проста, что бы рассказать о ней в двух словах. Это не чат.
Это серьезная, научная разработка, и полное устройство своего поисковика никто Вам не откроет.

nemra 14.11.2004 20:31

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

всем СПАСИБО и удачи!!!


Часовой пояс GMT +4, время: 13:28.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.