Определение языка страницы. [PHP]

rbbumfirst
На сайте с 03.04.2009
Offline
87
3714

Доброго времени суток.

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

язык страницы средствами PHP?

То есть хочется максимально ближе подобраться к результату Гугл Хром, который определяет язык документа и предлагает его перевести на Русский (к примеру).

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

Может есть проще реализация или грамотнее или сложнее... верри спасибо заранее всем, кто умнее меня. )

Web developer (http://rudov.com). разработка на Go, ReactJS, React Native
V
На сайте с 27.04.2009
Offline
46
#1

Может быть на это обратить внимание?

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU">

Мое детище, которое холю и лелею (http://quicktuts.ru/) Беспроводной интернет, антенны Yota (http://skylink.ws/Yota/) Профессиональный хостинг. Бесплатный домен. Безлимитный трафик. (http://goo.gl/MMvWNj)
rbbumfirst
На сайте с 03.04.2009
Offline
87
#2
vaggah:
Может быть на это обратить внимание?
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ru-RU">

Думал об этом, но не всегда в доктайпе указывается язык документа, да и заголовки могут быть не по стандарту составлены

Жаль, но точность тут не большая.

n0name
На сайте с 22.12.2006
Offline
54
#3

неправильно прочитал

Сервис сравнения цена на VPS (http://vpska.com/)
[umka]
На сайте с 25.05.2008
Offline
456
#4
rbbumfirst:
Первое, что приходит на ум - из общего числа символов на страницы искать русские и в процентном соотношении (тут уж я не знаю сколько нужно процентов русских символов) принимать решение, что страница русская.

Нужно определять не по превышению процента, а просто по бòльшей доле.

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

Взять кириллицу.

Если на странице присутствует текст:

20% на русском

30% на украинском

50% на болгарском

То вы простым подсчётом символов не определите, что бòльшая часть текста на болгарском.

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

Лог в помощь!
PR
На сайте с 30.12.2007
Offline
140
#5
rbbumfirst
На сайте с 03.04.2009
Offline
87
#6

Не подумал про славянские != русские символы (

Спасибо за наводку и за ссылку.

Alex_Pol
На сайте с 15.02.2011
Offline
8
#7

Сделать небольшую базу русскоязычных корней.

"Список 5000 наиболее частых слов" вот здесь:

http://bokrcorpora.narod.ru/frqlist/frqlist.html - весит кстати в архиве всего 45кб

Я думаю это самое оптимальное решение.

Alex_Pol добавил 16.02.2011 в 12:39

Кстати забыл упомянуть: "5000 наиболее частотных лемм покрывают 82.0604% текста. "

Я бы сделал еще систему "веса". Т.е. если в title странице есть русские слова, то к русскому языку прибавляется несколько баллов. Если в ссылке на страницу были русские слова - еще несколько баллов... И сам текст добавляет баллы относительно количество найденных слов....

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

rbbumfirst
На сайте с 03.04.2009
Offline
87
#8

Копал в сети и остановился на http://abrdev.com/phplangdetect/source.html

Проверил на базе урлов - фунциклирует весьма даже очень . при желании расширяем (что и сделал) и будет весь даже "ДА".

Создателю мысленно желаю долгих лет жизни.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий