Извличане на ключови думи/фрази от текст
Този текст е част от един мой проект по Компютърна лингвистика. Смятам, че може да е полезен за някой. До известна степен има общо с тематиката на блога. За останалите - не му обръщайте особено внимание.
Необходимост и приложения
Извличането на ключови думи от текст е една реална лингвистична задача, която няма еднозначно решение. Ключова дума/фраза е до известна степен относително понятие, което характеризира дума/фраза, която има значителна тежест в текста. Ключовите думи са ни необходими при решаването на редица задачи, ето някои от тях:
- синтезиране на текст
- търсене на текст от търсачки
- оптимизация на текст за търсачки
- преразказване на текст
- смяна на основните думи на текст с техни синоними
и т.н. …
Често срещани проблеми
Обикновено ключовите думи/фрази са тези думи/фрази, които се повтарят най-често в текста. Но това не е достатъчно условие за тяхното разпознаване. Тук фактор се оказва авторът на текста, като неговият стил може да е такъв, че той да не повтаря достатъчен брой пъти обектите, които целим. Също така авторът може да използва синоними и различни форми и членуване на думите.
При създаването на система, която да извлича ключовите думи от текст, трябва да се имат предвид тези и други факти (специални случаи). Текстовете се различават по размер, тематика, гъстота и разпределение на ключовите думи, и др. показатели. Много често ключовите думи и фрази са именувани обекти от думи или словосъчетания, които не се срещат като думи в речник или някаква база данни.
Примери:
- “Киров ООД”
- “Байкал пропърти груп”
- “Asus EEE PC 1000 H”
- “Историята на Google”
и т.н. …
Една система за извличане на подобни обекти трябва да разпознава и такива думи/словосъчетания. Друг често срещан проблем е кодировката на файла, от който ще бъде извличан текста, както и кодировката на знаците във файла. Ако документът е в Интернет, което е най-често срещаният пример, възможни кодировки за България са: UTF-8,CP1251,KOI8R … общо 12 кодировки само на Кирилица.
Основни принципи и технологии
В общия случай приемаме, че ключовите думи са такива думи/фрази, които се повтарят повече или поне един път в текста. Също така приемаме, че думите/фразите в заглавието на текста са ключови думи, ако те в оригиналната си и/или друга форма се съдържат в самия текст. Задължително подлагаме на подробен анализ и думи/фрази в текста, които са форматирани по различен начин.
Различните видови маркировки са: удебелен шрифт, наклонен шрифт, подчертаване, текст на връзка (при xHTML документи), “текст в кавички” (може да са единични, двойни, Word формат или общо над 8 вида), текст от подзаглавие (независимо от нивото на подзаглавието) и т.н. Често текстовете имат и синтезиран индекс на съдържанието, който съдържа предимно ключови думи.
Психологическият фактор
От психологическа гледна точка е доказано, че ключовите думи имат най-голяма гъстота в началото и в края на текста. Причината е, че често, когато авторът започне да пише по дадена тема, той излага фактите и термините в началото, които най-често са ключовите думи. Към средата на текста обикновено настъпва “разсейване”, при което тематиката частично убягва.
Следователно, средната част на текста най-малко ни интересува при един подробен анализ. Към края на текста, авторът, в общия случай, се връща към основната тематика на текста и отново и несъзнателно увеличава честотата на повтаряне на ключови думи/фрази. Най-важната част на текста обаче си остава началото, където трябва да се съсредоточат най-много ресурси при анализ.
Този принцип важи само при обемни текстове - над 800 думи. При малки текстове се приема, че ключовите думи са разпределени равномерно из целия текст. Разбира се, логично е в началото на текста те да са повече. Възможно е текстът да съдържа въвеждащ увод, който при всяко положение е богат на ключови думи.
Психологически е доказано и, че всяка ключова дума се среща поне два пъти в едно или две съседни изречения. Хората пропускат използването на местоимения и това спомага за този факт. Тоест, за да докажем, че една дума е ключова, тя не само трябва да се повтаря в началото на текста, но задължително трябва да има такова повторение, че думите да са в непосредствена близост.
Hamali.bg и Kyrti.com изчезнаха от резултатите
Днес се случи нещо много необичайно и изненадващо за мен. Два от сайтовете ми, на които поддържам SEO-то, изчезнаха заедно от резултатите. Става въпрос за hamali.bg и kyrti.com. Странното в случая е, че двата сайта изчезват едновременно, а в същото време всичките ми други сайтове се класират по старо му.
Сайтовете не са баннати, защото вътрешните им страници се класират добре. Просто началните им страници не се класират по най-релавентните си ключови думи. Тематиките им са близки и имат разменени връзки по между си. Не съм купувал връзки към никой от сайтовете и по никакъв начин не са нарушавани правилата на Гугъл.
За сега не смятам да предприемам нищо. Изчакването е най-доброто решение за момента, според мен. И друг път ми се е случвало да изчезне някой сайт за известно време, но се е оправял бързо. Сега сайтовете са два, което ме притеснява. Притеснява ме и това, че не отчитам никаква промяна в алгоритъма на търсачката последните дни.
Ако някой има някакви идеи и опит - ще съм му благодарен.
Как търсачката “вижда” уеб страниците
Търсачките на практика “виждат” страниците в Интернет подобно на хората, разбира се, когато умишлено не е представено друго и/или скрито съдържание на търсачката. Има обаче няколко различия относно това как хората и търсачките отсяват ценната информация от страницата. Ще се опитам да представя процеса структуриран във времето.
1. Търсачката сваля файла на страница.
Това най-често е файл с HTML структура, но може и да е използван друг език за форматиране, като XML, примерно. Възможно е търсачката да индексира и други видове файлове (документи), но в тази статия ще говоря за страници, форматирани с markup езици.
2. Извличане на съдържанието от страницата.
Общо взето всички markup езици са създадени с цел съдържанието от тях лесно да бъде извлечено. В общия случай това е текстът между символите “>” и “<”. Всичко останало се смята за код или “meta” данни. В зависимост от търсачката може да се извличат и данни от “meta” данните.
3. Премахване на специалните символи от съдържанието.
До тук от страницата е останал само текстът и то форматиран на един ред. Следващата стъпка е търсачката да се отърве от всички специални символи, които не носят никаква полезна информация. Такива са, примерно: точки, тирета, удивителни, въпросителни, знак за процент и т.н. Специалните символи се заместват с интервали при някои търсачки.
4. Премахване на “Stop Words”.
До тук имаме съдържание на един ред, което представлява само думи, разделени с интервали. Време е да се отървем от думите, които не носят никаква информация. Такива са, примерно, английските: and, or, if, about и т.н. В зависимост от търсачката могат да се премахват и “Stop Words” на кирилица.
5. Определяна на ключовите думи от текста.
До тук имаме само подбрани думи, разделени с интервали. Време е да се определи кои от тях са ценни и кои по-малко. За целта се сравняват думите всяка със всяка и се създава списък на повтарящите се думи, като тези, които се срещат най-често, са в началото на списъка.
В зависимост от търсачката, може да се изследват думите за положение, гъстота, подчертаване и т.н. Също така при сайтове с много страници, се отделя уникалната за всяка страница информация от тази, която се повтаря. Същото се прави и с изходящите връзки от страницата.
Оттук нататък всяка търсачка подхожда индивидуално с информацията, с която разполага. Един ефикасен метод е всички думи да се сортират в списък спрямо повторенията им. Така съдържанието на всяка страница ще е един вертикален списък с думи, всяка с индекс на повторенията й в текста.
Подобна структура е много лесно да бъде представена в релационна база данни. Оттам релационния модел подпомага бързото и лесно структуриране на информацията. Процеси, като търсене и сортиране при подобен списък в релационна база данни, са максимално бързи.
Някъде между всички тези точки се анализират изходящите връзки на страницата, за да може роботът да стигне и до други страница от конкретния или друг сайт. Този процес е по-сложен от процесът на “Data Mining” (отсяване на ценното в съдържането) и ще бъде предмет на друга статия.
