Научная статья на тему 'О ВЫДАЧАХ ПРИ ПОИСКОВОМ ЗАПРОСЕ'

О ВЫДАЧАХ ПРИ ПОИСКОВОМ ЗАПРОСЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
28
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОИСКОВЫЕ СИСТЕМЫ / КОНТЕНТ / ПОИСКОВАЯ ВЫДАЧА / ИНДЕКСАЦИЯ / ПОИСКОВЫЕ ЗАПРОСЫ / РАСПРЕДЕЛЕННЫЙ ПОИСК / ШИНГЛ / РЕЛЕВАНТНОСТЬ / SEARCH ENGINE / SEARCH RESULTS / INDEXING / RELEVANCE / CONTENT / SHINGLE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Часов Е.А., Марина М.А., Киптенко А.В., Сахнов В.С., Ивлиев А.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ABOUT SEARCH ISSUES

In this article, raises the question about the quality of the search engines, conducted an overview of mathematical models and algorithms used by the search engines is considered a Boolean and vector models. Because in today's issue of the search engines for the query contains hundreds of thousands of results and the criteria for selecting useful content tightened, it proposed a new principle of organizing searches, complement existing mechanisms, thereby improving the quality of search engines. The principle is to organize 'secondary index "useful documents, which was formed earlier with the direct participation alive users, thereby avoiding the need to resort to the classifiers, and machine learning. It is noted the need for a criterion of similarity between the queries are, what method can be used Shingles.

Текст научной работы на тему «О ВЫДАЧАХ ПРИ ПОИСКОВОМ ЗАПРОСЕ»

УДК 004

Часов Е.А. старший преподаватель кафедры информатики и вычислительной техники

Марина М. А. старший преподаватель кафедры информатики и вычислительной техники

Киптенко А. В. студент Сахнов В. С.

студент Ивлиев А. А. студент ФГБОУ ВО ПГУТИ Россия, г. Самара О ВЫДАЧАХ ПРИ ПОИСКОВОМ ЗАПРОСЕ Аннотация: В статье ставится вопрос об эффективности работы существующих поисковых систем и алгоритмов их работы, рассматриваются популярные математические модели для реализации их работы, обсуждаются критерии оценки качества поисковой выдачи и предлагается новая концепция организации выдачи при поисковом запросе, которую можно применить как дополнительный алгоритм для обеспечения качества поисковой выдачи, основанная на дополнительном индексе документов, которые специальном образом характеризуются как полезные, удовлетворяющие запросу пользователя в системе. Такой индекс не нарушил бы работы привычных поисковых систем, но дополнил бы их работу, делая их работу качественнее. При этом рассматриваются нюансы и задачи, которые предстоит решить при разработке и внедрении подобного механизма.

Ключевые слова: поисковые системы, контент, поисковая выдача, индексация, поисковые запросы, распределенный поиск, шингл, релевантност ь.

Chasov E. A., Lecturer of Department Marina M. A., Lecturer of Department Kiptenko A. V.

Student Sakhnov V. S.

Student Ivliev A. A.

Student

Povolzhskiy State University of Telecommunications and Informatics

Russia, Samara

ABOUT SEARCH ISSUES

Abstract: In this article, raises the question about the quality of the search engines, conducted an overview of mathematical models and algorithms used by the search engines is considered a Boolean and vector models. Because in today's issue of the search engines for the query contains hundreds of thousands of results and the criteria for selecting useful content tightened, it proposed a new principle of organizing searches, complement existing mechanisms, thereby improving the quality of search engines. The principle is to organize 'secondary index "useful documents, which was formed earlier with the direct participation alive users, thereby avoiding the need to resort to the classifiers, and machine learning. It is noted the need for a criterion of similarity between the queries are, what method can be used Shingles.

Keywords: search engine, search results, indexing, relevance, content, shingle.

Как утверждают крупнейшие сетевые операторы, структура глобального трафика в интернете меняется. В настоящее время основным генератором трафика становится потоковое видео, системы конференцсвязи и игровые сервисы. Тем не менее, обращения к поисковым системам по-прежнему генерируют львиную долю мирового трафика. Поскольку глобальная сеть в целом непрерывно развивается, то развитие поисковых механизмов также необходимо. При этом увеличение объемов трафика не влияет на качество контента, поэтому задача выборки нужной полезной информации из поисковых систем усложняется с течением времени.

Формируя запрос в поисковой системе, мы неизбежно столкнемся с задачей «фильтрации» нужного контента из поисковой выдачи. Эта проблема существенно замедляет получение полезной информации по запросу: современные поисковые системы на среднестатистический запрос формируют выдачу в размере нескольких сотен тысяч результатов, нередко миллионов. Например, выдача поисковой системы Google по запросу "search engine" содержит более 365 млн. результатов.

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

Став основным источником получения справочной информации для пользователей, поисковые системы стали основным источником трафика для интернет-сайтов. Как следствие, они немедленно подверглись «атакам» недобросовестных авторов, желающих любой ценой оказаться в первых

страницах результатов поиска. Искусственная генерация входных страниц, насыщенных популярными словами, техника клоакинга, «слепого текста» и многие другие приемы, предназначенные для обмана поисковых систем, быстро заполонили Интернет.

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

Приблизительно 3 из 5 поисковых систем и модулей функционируют безо всяких математических моделей. Однако, как только речь заходит о повышении качества поиска, о большом объеме информации, о потоке пользовательских запросов, кроме эмпирически проставленных коэффициентов, полезным оказывается оперировать теоретическим аппаратом. Модель поиска - это некоторое упрощение реального процесса, на основании которого получается формула, позволяющая программе принять решение: какой документ считать найденным и как его ранжировать. После получения модели коэффициенты приобретают физический смысл.

Все многообразие моделей традиционного информационного поиска (IR) принято делить на три вида:

1. Теоретико-множественные (булевская, нечетких множеств, расширенная булевская) модели;

2. Алгебраические (векторная, обобщенная векторная, латентно-семантическая, нейросетевая) модели;

3. Вероятностные модели.

Булевское семейство моделей используется программистами для реализации полнотекстового поиска. Есть слово - документ считается найденным, нет - не найденным. Классическая булевская модель - это связь теории информационного поиска с теорией поиска и манипулирования данными.

Недостатки булевской модели - это ее крайняя жесткость и непригодность для ранжирования. Поэтому в 1957 году Джойс и Нидхэм предложили учитывать частотные характеристики слов, чтобы «... операция сравнения была бы отношением расстояния между векторами...».

Векторная модель и была реализована в 1968 году Джерардом Солтоном в поисковой системе SMART (Salton's Magical Automatic Retriever of Text). Ранжирование в этой модели основано на естественном статистическом наблюдении. Чем больше локальная частота термина в документе (TF) и больше «редкость» (т.е. обратная встречаемость в документах) термина в коллекции (IDF), тем выше вес данного документа по отношению к термину. Обозначение IDF ввела Карен Спарк-Джоунс в 1972 в

1594

статье про различительную силу (term specificity). С этого момента обозначение TF*IDF широко используется как синоним векторной модели.

В 1977 году Робертсон и Спарк-Джоунз обосновали и реализовали вероятностную модель (предложенную в 1960), также положившую начало целому семейству. Релевантность в этой модели рассматривается как вероятность того, что данный документ может оказаться интересным пользователю. При этом подразумевается наличие уже существующего первоначального набора релевантных документов, выбранных пользователем или полученных автоматически при каком-нибудь упрощенном предположении. Вероятность оказаться релевантным для каждого следующего документа рассчитывается на основании соотношения встречаемости терминов в релевантном наборе и в остальной, «нерелевантной» части коллекции.

В настоящее время векторные модели являются самыми распространенными и применяемыми на практике моделями поиска. Векторные модели, в отличие от булевых, без труда позволяют ранжировать результирующее множество документов запроса. Суть таких моделей сводится к представлению документов и запросов в виде векторов. Каждому терму ti в документе dj и запросе q сопоставляется некоторый неотрицательный вес wij (wi для запроса). Таким образом, каждый документ и запрос может быть представлен в виде k мерного вектора:

~dj d (w1J,w2J,...wkJ) (1)

где k- общее количество различных термов во всех документах. Согласно векторной модели, близость документа di к запросу q оценивается как корреляция между векторами их описаний. Она может быть получена, например, как скалярное произведение соответствующих векторов описаний. Существуют различные подходы к выбору указанных весов. Одним из самых простых является использование нормализованной частоты данного терма в документе:

Wij = ^ (2)

Ч N. V /

где пу - количество повторений данного терма в документе; N - общее количество всех термов в документе.

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

Формирование выдачи при поисковом запросе в общих чертах схоже в различных системах. Как и любая программа, поисковая система оперирует со структурами данных и исполняет алгоритм.

Существует четыре класса поисковых алгоритмов. Три алгоритма из четырех требуют «индексирования», предварительной обработки документов, при котором создается вспомогательный файл - «индекс», призванный упростить и ускорить сам поиск. Это алгоритмы инвертированных файлов, суффиксных деревьев, сигнатур. В вырожденном случае предварительный этап индексирования отсутствует, а поиск происходит при помощи последовательного просмотра документов. Такой поиск называется прямым. У прямых алгоритмов есть принципиально беспроигрышные отличительные черты. Например, неограниченные возможности по приближенному и нечеткому поиску, т.к. любое индексирование всегда сопряжено с упрощением и нормализацией терминов, а, следовательно, с потерей информации. Прямой же поиск работает непосредственно по оригинальным документам без всяких искажений.

Хотя размер базы в интернете на первый взгляд не кажется критическим фактором, это не так. Недаром рост посещаемости таких машин, как Google и Fast хорошо коррелируется именно с ростом их баз. Основная причина: «редкие» запросы, то есть те, по которым находится менее 100 документов. Они составляют в сумме около 30% от всей массы поисков - весьма значительную часть. Этот факт делает размер базы одним из самых критичных параметров системы.

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

Для того, чтобы решить эту проблему, индекс разбивают на части и раскладывают по десяткам, сотням и даже тысячам компьютеров. Сами компьютеры, начиная с 1997 года (поисковая система Inktomi) представляют собой обычные 32-битные машины (Linux, Solaris, FreeBSD, Win32) с соответствующими ограничениями по цене и производительности. Исключением из общего правила осталась лишь AltaVista, которая с самого начала использовала относительно «большие» 64-битные компьютеры Alpha.

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

Pruning (от англ. отсечение, сокращение), состоит в том, чтобы динамически прекращать обработку запроса после накопления достаточного количества релевантной информации. Бывает еще статический pruning, когда на основании некоторых допущений индекс сокращается за счет таких документов, которые заведомо никогда не будут найдены.

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

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

' *

Client

Actor2

Actor 1: Cr с ni:: search rcsucil 'Alpha"

Server Add itioonal

Server

1 1

2: Define useful results "Alpha'

1.1: Send request "Alpha"

1.2: С reate end return search Result

reate search request "Alpha*

5: D: f ne useful results "A'+'Useful "A"

2.1: Send user activity statistic

3.1: Send request 'Alpha"

4: Send request "Alpha"

3.2: С reate end return search lesult

4.1: Create end return useful searcdh result ----------------1----

5.1: Send request 'Alpha'

Рисунок 1. Схема работы системы с пользовательскими выборками

В общих чертах подход можно описать следующим образом:

1. В поисковую систему поступает запрос. Система, основываясь на известных алгоритмах, обрабатывает запрос и формирует выдачу.

2. Пользователь выбирает из предложенных документов именно те, которые в действительности удовлетворяют его запросу и решают его задачу; и отмечает эти документы как полезные. На этом этапе должен начинать работу алгоритм, который формирует дополнительный индекс полезных документов: документы, помеченные как полезные, заносятся в этот индекс, находясь в жесткой связи с сформулированным ранее запросом

и располагаются, в зависимости от реализации алгоритма, либо на локальном узле, либо на удаленном.

3. Следующий запрос, поступивший от нового пользователя, в точности совпадающий с запросом, полученным ранее или очень на него похожий; и данные о котором есть в дополнительном индексе, так же будет обработан и по нему будет сформирована выдача, но при этом дополнительный алгоритм сформирует дополнительную выдачу, состоящую из документов, ранее помеченных как "полезные".

При этом отдельно стоит определить критерии "похожести" запросов. Очевидно, что с полными повторами проблем особых нет, достаточно сохранять в индексе контрольную сумму текста запроса и при новых запросах с такой же контрольной суммой выдавать ранее сформированный индекс "полезных документов". Однако этот метод не работает для выявления хотя бы чуть-чуть измененных документов.

Для решения этой задачи Уди Манбер (автор известной программы приближенного прямого поиска agrep) в 1994 году предложил идею, а Андрей Бродер в 1997 разработал алгоритм «шинглов» (от слова shingles, «черепички, чешуйки»).

Для каждого десятисловия текста рассчитывается контрольная сумма (шингл). Десятисловия идут внахлест, с перекрытием, так, чтобы ни одно не было упущено из обработки. А затем из всего множества контрольных сумм (очевидно, что их столько же, сколько слов в документе минус 9) отбираются только те, которые делятся на, скажем, 25. Поскольку значения контрольных сумм распределены равномерно, критерий выборки никак не привязан к особенностям текста. Ясно, что повтор даже одного десятисловия - весомый признак дублирования, если же их много, скажем, больше половины, то с определенной (несложно оценить вероятность) уверенностью можно утверждать: копия запроса найдена, т.к. один совпавший "шингл" в выборке соответствует примерно 25 совпавшим десятисловиям в полном тексте запроса. Алгоритм шингла изображен на рис. 2.

Очевидно, что так можно определять процент перекрытия текстов,

выявлять все его источники и т.п. л говора, устал, устал, отпусти, не iorv. говоо>. vcran. отпусти, устал, не отпускает, ив слушает -ЬВс54Г54ГЬЗТа2 лшнмп;-1 i

-И5бЬ9в34ГВвЗВВ(1В9ИБГГа1]-

-eeBaa7;4tBeTSaBbZ4TaL5aG-

-П]465с19аа9с5вЬЕБа£бсв7<1а

Рисунок 2. Алгоритм "шинглов" При подобной обработке запросов для выборки из дополнительного индекса и формирования дополнительной выдачи вероятность эффективной работы поисковой системы в целом увеличивается. Более того, в качестве одного из вариантов реализации подобной системы, можно использовать для работы пиринговые (Р2Р) сети: в случае хранения полезных документов или ссылок на них на локальных машинах использование подобных сетей позволяет распределить нагрузку трафика.

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

^ = (3)

где геН - количество релевантных документов, которое содержит терм с индексом ц пгеН - соответственно, количество нерелевантных документов; d - учебная выборка документа рассматривается как множество слов; q -множество слов, входящих в запрос, q П d означает множество общих термов в запросе и документе.

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

Если допустить, что описанную выше систему строить по вероятностной модели с ее улучшениями типа PageRank и/или BackRank, то использование теоремы Байеса позволит построить Байесовский классификатор, что позволит обучать систему «на лету», сразу во время ее использования пользователями, и, тем самым, устранить указанный недостаток.

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

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

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

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

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

Решающее значение приобретает проектирование архитектуры всего комплекса с самого начала, так как любые изменения, например, добавление необычного фактора при ранжировании или сложного источника данных, становится исключительно сложной процедурой. Но инертность пользователей весьма высока, так, например, требуется 2-4 года, чтобы сформированная многомиллионная аудитория сама, пусть и медленно, но перешла на непривычную поисковую систему, даже при наличии у нее неоспоримых преимуществ.

Использованные источники:

1.Дударь, З.В. Метаконтекстный поиск в internet / З.В. Дударь, В.С. Хапров, А.В. Мусинов // Восточно-Европейский жур-нал передовых технологий. -2005. - С. 104-107.

2. Кузнецов, М. А. Основные принципы ранжирования Web-ресурсов / М.А. Кузнецов, Т.Т.А. Нгуен // Инновационные технологии в управлении, образовании, промышленности "АСТИН-ТЕХ-2010". - Астрахань, 2010. - С. 42-44.

3. Ландэ, Д.В. Интернетика: Навигация в сложных сетях: модели и алгоритмы / Д. В. Ландэ, А.А. Снарский, И. В. Безсуднов. - Москва: Книжный дом «ЛИБРОКОМ», 2009. - 264 с.

4. Сегалович, И.В. Как работают поисковые системы / И.В. Сегалович. -Режим доступа: http://download.yandex.ru/company/iworld-3.pdf (дата обращения: 30.01.2013), свободный. - Загл. с экрана. - Яз. рус.

5. The Anatomy of a Large-Scale Hypertextual Web Search Engine, S.Brin and L. Page WWW7, 1998 www7.scu.edu.au/programme/ fullpapers/1921/com1921.htm

6. Алгоритмы: построение и анализ, Т. Кормен, Ч. Лейзерсон, Р.Ривест МЦНМО, 2000

7. M.E. Maron and J.L. Kuhns On relevance, probabilistic indexing and information retrieval, Journal of the ACM, 1960

8. Dudar Z. V., Khaprov V. S., Musinov A. V. Metakontekstnyy poisk v internet [Metacontextual search in internet]. Vostochno-Yevropeyskiy zhurnal peredovykh tekhnologiy [East European Journal of Advanced Technologies], 2005, pp. 104107.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9. Kuznetsov M. A., Nguen T. T. A. Osnovnye pritsipy ranzhirovaniya Web-resursov [Main principles of Web resources ranking]. Innovatsionnye tekhnologii v upravlenii, obrazovanii, promysh-lennosti "ASTINTYeKh-2010" [Innovative Technologies in Management, Education, Industry "ASTINTEH-2010"]. Astrakhan, 2010, pp. 42-44.

10. Lande D. V., Snarskiy A. A., Bezsudnov I. V. Internetika: Navigatsiya v slozhnykh setyakh: modeli i algoritmy [Internet: Navigation in difficult networks: models and algorithms]. Moscow, Book House "LIBRO-KOM", 2009. 264 p.

11. Segalovich I. V. Kak rabotayut poiskovye sistemy [How do search systems work]. Available at: http://download.yandex.ru/company/iworld-3.pdf (accessed 30 January 2013).

12. The Anatomy of a Large-Scale Hypertextual Web Search Engine, S.Brin and L. Page WWW7, 1998 www7.scu.edu.au/programme/ fullpapers/ 1921/com1921. htm

13. M.E. Maron and J.L. Kuhns On relevance, probabilistic indexing and information retrieval, Jour-nal of the ACM, 1960

УДК 004

Часов Е. А. старший преподаватель кафедры информатики и вычислительной техники

Марина М. А. старший преподаватель кафедры информатики и вычислительной техники

Киптенко А. В. студент гр. ПО-73 Слепнев Д. А. студент гр. ИСТ-62 ФГБОУ ВО ПГУТИ Россия, г. Самара РАЗРАБОТКА МЕТОДОВ ПОИСКА ЗАИМСТВОВАНИЙ В ИСХОДНОМ КОДЕ НА ЯЗЫКАХ ПРОГРАММИРОВАНИЯ Аннотация: В данной статье описывается анализ методов поиска заимствований в исходном коде, их достоинства, недостатки, поиск оптимального подхода к решению задачи, сравнение с задачей поиска заимствований в тексте на естественном языке.

Ключевые слова: Java, плагиат, заимствование, синтаксический анализ, графы, семантический анализ.

Chasov E. A. Lecturer of Department Marina M. A. Lecturer of Department Kiptenko A. V. Student

i Надоели баннеры? Вы всегда можете отключить рекламу.