Как да се разпознае език/енкодинг на сайт?

primecode

Active Member
В последно време мисля над въпроса как може да бъде разпознат езика на сайта. Например сайт на български с кодировка UTF-8 как ще бъде разпознат? От гледна точка на роботите, разбира се. За човек няма значение, стига да може да го чете.
Та как един БГ сайт би се разпознал от руски ако кодировката и при двата е примерно utf-8?
 
От: Как да се разпознае език/енкодинг на сайт?

Когато от енкодинга не е ясно ще ползваш language detection api, примерно нещо такова: http://detectlanguage.com/

Анализират текста спрямо речници на най-използваните думи в определен език и много познават...
 
От: Как да се разпознае език/енкодинг на сайт?

Па то за тази цел, си има метатагове, друг е въпроса, че никой не ги ползва:

Код:
<meta name="language" content="bg" />
<meta name="geo.region" content="BG" />

Може и още да имаше, не съм сигурен. После с php и get_meta_tags(); дупчиш и ще го разбереш, ако ти трябва за php де.
 
От: Как да се разпознае език/енкодинг на сайт?

Определено не може да се разчита на мета таговете.
Ще поясня отново въпроса си по-ясно. И става дума за разпознаването на езика от програма а не от човек.
Приемаме, че имаме даден сайт със съдържание, при който липсва мета информация за езика. Можем да вземем друга мета информация като:
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
Но това не може да бъде основният ни критерий, защото charset-a може да бъде и utf-8. Също така, дори и Google понякога грешат и бъркат българският език с руски.
Мнения?
 
От: Как да се разпознае език/енкодинг на сайт?

Добре, ще споделя една от идеите си, но много се надявам да има и по-лесен начин за разпознаването на езика в даден сайт.
Приемаме, че сме взели съдържанието на сайта, премахнали сме ненужните неща (JS код, снимки, тагове, ...) и имаме чист текст. Лесно е да се вземе и/или промени кодировката му, затова взимаме пак като даденост, че текста е конвертиран във utf-8. Следващата задача е да разпознаем текста или по-скоро езика (това търсим все пак).
Това може да стане, като преобразуваме всеки намерен символ от дадения низ в ASCII и според стандартната таблица ще можем да различим буквата а (на латиница) от буквата а (на кирилица). Но това не е основание да се вярва, че текста е на български. За целта може да използваме променливи, които да броят колко от символите са на латиница и колко на кирилица.
Все пак това не е задоволително, защото един сайт на БГ може да има кратки описания с много цитати на английски или пък да имаме чиста кирилица но сайта да е руски.
Варианта да се прави някаква матрица, която да се използва за разпознаването на български сайт според намерените думи в него също не е задоволителна.
Дали някой няма друга идея?
 

Горе