SEO-СОФТ И СЕРВИСЫ |
Фильтрация семантики является одним из самых трудоёмких этапов при составлении качественного семантического ядра сайта. Проблемы возникают как при сборе строк из ПС, так и при работе с базами готовых ключевых слов. Например, в базе Пастухова значительная часть фраз содержит опечатки того или иного вида, которые бесполезны в современном SEO и лишь увеличивают время поиска в базе и дальнейшей ручной обработке результатов. К сожалению, использование готовых словарей в целях фильтрации сильно осложнено, так как современная разговорная лексика постоянно эволюционирует и невозможно сохранить запросы с живой речью содержащей вариации написания трендовых иностранных слов кириллическими буквами, различных названий, аббревиатур и современных акронимов. Ввиду выше сказанного, было решено попробовать отфильтровать мусор в семантике методом поиска строк с невозможными сочетаниями букв русского алфавита, которые при всем желании язык сказать не повернётся. Для этого необходимо было составить список всех сочетаний букв (аа, аб, ав... яя)
и прогнать его через словарь современной русской речи. В результате этой операций мы бы получили частоту упоминаний того или иного сочетания букв, где все сочетания имеющие нулевое или близкое к нулю количество вхождений - это те невозможные сочетания букв русского языка, которые нам нужны.
Не один словарь по отдельности не прошёл проверки на современную лексику по заготовленному мозговым штурмом списку слов и аббревиатур, поэтому пришлось объединять различные словари в один список. Надо заметить, что не один словарь также не справился адекватно с буквой «ё», хотя некоторые содержали «ё» в одних словах, но не содержали в других, в частности, только в одном словаре присутствовало «её» остальные содержали только «ее». В любом случае, после получения первичного списка, все полученные наборы букв пришлось проверять вручную.
В итоге получился следующий список:
ёё|ёщ|ыё|ёу|йэ|гъ|кщ|щф|щз|эщ|щк|гщ|щп|щт|щш|щг|щм|фщ|щл|щд|дщ|ьэ|чц|вй|ёц|ёэ|ёа|йа|шя|шы|ёе|йё|гю|хя|йы|ця|гь|сй|хю|хё|ёи|ёо|яё|ёя|ёь|ёэ|ъж|эё|ъд|цё|уь|щч|чй|шй|шз|ыф|жщ|жш|жц|ыъ|ыэ|ыю|ыь|жй|ыы|жъ|жы|ъш|пй|ъщ|зщ|ъч|ъц|ъу|ъф|ъх|ъъ|ъы|ыо|жя|зй|ъь|ъэ|ыа|нй|еь|цй|ьй|ьл|ьр|пъ|еы|еъ|ьа|шъ|ёы|ёъ|ът|щс|оь|къ|оы|щх|щщ|щъ|щц|кй|оъ|цщ|лъ|мй|шщ|ць|цъ|щй|йь|ъг|иъ|ъб|ъв|ъи|ъй|ъп|ър|ъс|ъо|ън|ък|ъл|ъм|иы|иь|йу|щэ|йы|йъ|щы|щю|щя|ъа|мъ|йй|йж|ьу|гй|эъ|уъ|аь|чъ|хй|тй|чщ|ръ|юъ|фъ|уы|аъ|юь|аы|юы|эь|эы|бй|яь|ьы|ьь|ьъ|яъ|яы|хщ|дй|фй
Небезопасные малочастотные буквосочетания выделены оранжевым цветом, иначе говоря есть некоторое количество слов или аббревиатур которые их содержат, нужные можно удалить с помощью следующего списка:
ёё - игрушка, салон-парикмахерская в Гродно (Беларусь)
ёщ - тёща, тёщин
ыё - выёживайся
ёу - ёу
йэ - йэх
гъ - гъиба (ислам)
буква + ъ - окончание слов в устаревшей кириллице
----
кщ - КЩС - кислотно-щелочное состояние (крови), маскщит
щф - щелочная фосфатаза (кровь)
----
щз - щиты, щитки, заводы, здоровье
эщ - относящееся к электрике
щк - щиты, щитки
гщ - главные щиты, пожогщики
щп - щебеночно-песчаная, щит пожарный, щётка подметальная
щт - щит токораспределительный
щш - щит шкафный, вящшее
щг - щит гарантированного питания
----
щм - вещьми, вещмешок, ЩМ - измерительный прибор, щиток метал., щётка метал.
фщ - типографщик, телеграфщик, кинематографщик, ФЩЛ - модель устройства регистрации силы тока
щл - ЩЛЗ - Щербинский лифтовой завод
----
щд - дробилка щековая, вещдок
дщ - алебардщик, дщерь (устар. дочь), Дщица (фам.), ДЩМ - дробилки-измельчители, подщелкивание, подщелачивание
ьэ - регион + энерго (компании), бельэтаж
чц - ЧЦЗ - Челябинский цинковый завод, волчцы, древоточцы, начцеха
вй - *вйс - различные компании
ёц - клёцки, Ёцуги, Ёцуба, Шлёцер
ёэ - ёэлектроника
ёа - Ёаки - ресторан доставки сущи
----
йа - аллилуйа, экзотические имена, райадминистрация (укр.), ЙАР - Йеменская Арабская Республика, арабская буква, сура Корана, ресторан роллов в Набережных Челны, сленг (йа креведко)
шя - Шяуляй (Литва)
шы - Шымкент (Казахстан), Шынгыс (имя), Шым (псевдоним рос. рэп-исполнителя)
ёе - замок Вильгельмсгёе в Германии
йё - Йёнчёпинг - город в Швеции, Йёнс (имя)
----
гю - имена и фамилии, редкие азиатские названия, МГЮА, УрГЮА
хя - экзотические имена и фамилии, Хягас (древнее царство), ХЯС - холодный ядерный синтез, Хямеенлинна - финский муницип. и город, Хяргас-Нуур (озеро в Монголии), Хямекоски (дер. в Карелии)
йы - экзотические фамилии и различные названия за пределами России
ця - китайские имена и фамилии, цянь (историческая денежная единица Китая)
гь - экзотические фамилии, иностранная мифология
сй - сйабуч - юмор (Задорнов), экзотические имена,
хю - экзотические имена и названия, ХЬЮЛЯ - экомашина для дома (марка), Хютте - справочник для инженеров (не издается)
хё - азиатские имена
----
ёи - Ёити (японское имя), Ёи - инди-группа (рус)
ёо - Ёон - правило из японской грамматики
яё - японские имена
Для более качественной фильтрации текстовых данных удалим также наборы букв, которые начинаться на Ь, Ъ и Ы. Для этого прибегнем к языку регулярных выражений RegExp, добавив следующее условие (высокосовместимый синтаксис):
(\n|^| )(ь|ъ|ы)[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]
Кроме невозможных сочетаний букв кириллицы, в текстовых данных могут присутствовать также сочетания русских и английских букв, например как в слове Кieв
, которое невозможно идентифицировать как украинское слово простым поиском по уникальным буквам украинского языка. Поэтому, добавим к нашему списку следующие RegExp условия:
[a-z][абвгдеёжзийклмнопрстуфхцчшщъыьэюя]|[абвгдеёжзийклмнопрстуфхцчшщъыьэюя][a-z]
Таким образом, полный набор условий для фильтрации невозможных сочетаний букв выглядет следующим образом:
[a-z][абвгдеёжзийклмнопрстуфхцчшщъыьэюя]|[абвгдеёжзийклмнопрстуфхцчшщъыьэюя][a-z]|(\n|^| )(ь|ъ|ы)[абвгдеёжзийклмнопрстуфхцчшщъыьэюя]|ёё|ёщ|ыё|ёу|йэ|гъ|кщ|щф|щз|эщ|щк|гщ|щп|щт|щш|щг|щм|фщ|щл|щд|дщ|ьэ|чц|вй|ёц|ёэ|ёа|йа|шя|шы|ёе|йё|гю|хя|йы|ця|гь|сй|хю|хё|ёи|ёо|яё|ёя|ёь|ёэ|ъж|эё|ъд|цё|уь|щч|чй|шй|шз|ыф|жщ|жш|жц|ыъ|ыэ|ыю|ыь|жй|ыы|жъ|жы|ъш|пй|ъщ|зщ|ъч|ъц|ъу|ъф|ъх|ъъ|ъы|ыо|жя|зй|ъь|ъэ|ыа|нй|еь|цй|ьй|ьл|ьр|пъ|еы|еъ|ьа|шъ|ёы|ёъ|ът|щс|оь|къ|оы|щх|щщ|щъ|щц|кй|оъ|цщ|лъ|мй|шщ|ць|цъ|щй|йь|ъг|иъ|ъб|ъв|ъи|ъй|ъп|ър|ъс|ъо|ън|ък|ъл|ъм|иы|иь|йу|щэ|йы|йъ|щы|щю|щя|ъа|мъ|йй|йж|ьу|гй|эъ|уъ|аь|чъ|хй|тй|чщ|ръ|юъ|фъ|уы|аъ|юь|аы|юы|эь|эы|бй|яь|ьы|ьь|ьъ|яъ|яы|хщ|дй|фй
Этот список можно вставлять прямо в таком виде в поле быстрого поиска в Key Collector с активированным режимом регулярных выражений RegExp или переделать под список стоп-слов.
Для фильтрации базы Пастухова и других текстов можно использовать следующий скрипт на PHP, который не пропускает на запись нового файла всю строку хотя бы с одним найденным вхождением:
<?php
//UTF-8
$handle=fopen ("Keywords.txt", "r");
if ($handle)
{while(($s=fgets ($handle, 800)) !== false)
{ $s=trim($s);
$s=preg_replace('/ {2,}/', ' ', $s);
$s=strtolower($s);
В результате обработки этим скриптом было удалено около 11% строк в уже очищенной другими методами базе Пастухова.
Надо заметить, что использование PHP с таким пусть и наглядным, но не оптимизированным регулярным выражением не самое быстрое решение: построчное чтение функцией fgets
и обработка миллиарда строк, а также запись нового очищенного файла займёт всю ночь, а то и дольше.
Аналогично можно создать словарь трёхбуквенных сочетаний букв, однако список получается настолько громоздким, что возможность его практического применения в плане производительности сводится к нулю, кроме того, стоит не забывать что все сочетания букв ещё необходимо проверить вручную. Также сложно создать подобный универсальный фильтр невозможных сочетаний латинских букв из-за обилия самых разнообразных технических обозначений и названий, которые содержат несочетаемые последовательности букв и просто читаются как аббревиатуры.