<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="uk">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">ПОШУКОВА СИСТЕМА НАУКОВИХ МАТЕРІАЛІВ УКРАЇНСЬКОЮ МОВОЮ ІЗ СОЦІАЛЬНОЮ СКЛАДОВОЮ</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">А</forename><forename type="middle">М</forename><surname>Глибовець</surname></persName>
							<email>andriy@glybovets.com.ua</email>
						</author>
						<title level="a" type="main">ПОШУКОВА СИСТЕМА НАУКОВИХ МАТЕРІАЛІВ УКРАЇНСЬКОЮ МОВОЮ ІЗ СОЦІАЛЬНОЮ СКЛАДОВОЮ</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">99987BD8021E8F60E91D20931D688A41</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T05:17+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>академія»</term>
					<term>04655</term>
					<term>Київ</term>
					<term>вул. Г. Сковороди</term>
					<term>2. Тел.: 425 0245</term>
					<term>факс.: 425-02-45</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Описується архітектура пошукової системи наукових матеріалів українською мовою із соціальною складовою. Розглянуто та обґрунтовано вибір технологій для створення такої системи, описано її функціональність. Представлено алгоритм для виділення з PDF документів наукових статей логічних частин.</p><p>The paper describes the architecture of search engine scientific materials in Ukrainian language with the social component. The choice of technologies to develop a system described by its functionality is considered. The algorithm for the selection of scientific articles logical parts in the PDF documents is proposed.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="uk">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Вступ</head><p>За умов інформаційного перенасичення сучасного суспільства надзвичайно важливими є фільтрування та пошук релевантної інформації відповідно до потреб особи. Саме тому пошукові системи (ПС) набули такої популярності. Однак ПС загального призначення нині уже недостатньо <ref type="bibr" target="#b0">[1]</ref>. Для вирішення певних задач до наявних систем додаються уточнюючі функції, або ж створюються спеціалізовані системи: для пошуку за форматом файлів, за певною категорією знань тощо. Одним з видів таких систем є ПС наукових матеріалів.</p><p>На сьогодні існує декілька потужних систем пошуку цього типу: Google Scholar, Scirus, ScienceDirect. Однак, більшість з них не підтримує пошуку українською мовою, а інші не мають соціальної складової, яка б дозволила користувачам системи спілкуватись між собою, обмінюватись інформацією, додавати нові матеріали, рецензії тощо.</p><p>Зважаючи на ці зауваження, поставлено задачу розробки багатофункціональної моделі ПС наукових матеріалів українською мовою з соціальною складовою (ПСНМУМ), а також реалізація алгоритму поділу документу на логічні зони (заголовок, автор, використана література та УДК), що дозволить перейти до створення робочого прототипу такої ПС.</p><p>Уточнимо постановку задачі. Окрім моделі потрібно: підібрати технології реалізації та обгрунтувати переваги і недоліки вибору; визначити список необхідних функцій системи, а також описати логіку їх реалізації; розробити та реалізувати алгоритм для розбору матеріалів наукових статей у форматі PDF на логічні зони.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Архітектура та вибір технологій реалізації</head><p>Пошукова система наукових матеріалів складається з серверної та клієнтської частини. Серверна частина містить спеціалізовані модулі, кожен з яких відповідає за окрему функцію пошукової системи, а саме: індексації, класифікації, збору посилань, клієнтський модуль (front end).</p><p>Клієнтська частина, разом із клієнтським модулем на сервері, відповідає за взаємодію з користувачем на стороні клієнта. Вона надає доступ до функцій пошуку, обміну повідомленнями, соціальних функцій тощо і містить інтерфейс для реєстрації та аутентифікації користувачів у системі.</p><p>При виборі технологій для реалізації проекту враховувалось кілька основних вимог до майбутньої системи: масштабованість, ефективність, надійність. З огляду на вищезазначені вимоги, обрано такий стек технологій.</p><p>Серверна частина буде реалізована на мові Java. Серед переваг можна видылити: легкість у підтримці та розвитку проекту; наявність рішень з відкритим кодом для організації пошукової системи (Hadoop, Lucene, Nutch, Solr); наявність готових модулів, реалізованих силами автора роботи та інших студентів НаУКМА, що будуть використані для майбутнього проекту. Очевидним недоліком бачиться відносно низька швидкодія.</p><p>Для хостингу ми обираємо Google App Engine [2], а індексацію та основні функції інформаційного пошуку будемо робити на базі бібілотеки Lucene [3]. Основними чинниками обрання останньої були висока швидкодія, можливий пошук за полями (заголовок, автори), відкритий код і здатність індексувати PDF документи (більшість наукових матеріалів саме в цьому форматі).</p><p>Проведення фронт-енду на сервері нам бачиться на базі JSF (JavaServer Faces) за можливості прямого доступу до сервера (збільшує швидкодію) та наявності детальної документації.</p><p>Багата функціональність, велика кількість готових рішень широка спільнота розробників javascript/jQuery визначила її обрання для клієнтської частини.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Функціональність системи</head><p>Початкова база документів для майбутньої пошукової системи буде відібрана з найпотужнішої на сьогодні онлайн бібліотеки наукових матеріалів українською мовою -Національної бібліотеки України імені І. В. Вернадського <ref type="bibr" target="#b1">[4]</ref>. Надалі ця база поповнюватиметься за допомогою спеціального модуля (робота). Він діятиме за таким алгоритмом:</p><p>1) подібно до звичайних Web-браузерів, робот відвідує сторінку за посиланням і копіює її вміст;</p><p>2) в отриманому html-коді знаходить внутрішні та зовнішні посилання, шляхом пошуку входжень «http://», «href=» тощо. Отримані посилання робот вносить в базу даних;</p><p>3) виділяє серед html-коду власне текст, шляхом видалення усіх тегів та іншого не релевантного «сміття». Отриманий текст зберігається для подальшого використання.</p><p>Окрім, робот має проводити циклічну перевірку уже доданих документів на наявність змін. З певним часовим інтервалом, він має повторно відвідувати сторінки-джерела кожного документа. Якщо сторінка більше не доступна, або матеріал за посиланням був видалений, робот має через деякий час видаляти посилання з бази системи. Або ж, якщо контент сторінки змінився, він має проводити його повторну обробку, тобто знову копіювати вміст, знаходити посилання та обробляти текст.</p><p>Очевидно, що для роботи даного модуля, адміністратор має створити початкову базу посилань на популярні наукові ресурси. Варто зазначити, що даний пункт не є обов'язковим для прототипу системи і може бути реалізований пізніше, під час розширення системи.</p><p>Завдання індексації документів ми перекладаємо на бібліотеку Lucene. Вона надає широкий набір засобів для створення інвертованого індексу. Ця бібліотека допускає розширення функціональності через перевизначення функціональних одиниць. Розширюючи функціональність бібліотеки, розроблено клас ScientifícWorklndexator, що відповідає за процес індексації <ref type="bibr" target="#b2">[5]</ref>.</p><p>Для створення індексу за зонами, необхідно мати інструмент для виділення окремих полів у документах (в першу чергу імена авторів та назви статті). Основна проблема полягає у тому, що не існує єдиного стандарту для оформлення документів, а тому така задача не є тривіальною. Алгоритм розбиття документа на логічні зони, а також його реалізацію представлено далі.</p><p>Завданням майбутньої пошукової системи є пошук саме наукових матеріалів. Тому перед індексацією документа, він має бути перевірений на науковість і за результатами цієї перевірки або доданий до бази, або відкинутий як такий, що не відповідає вимогам системи і потребам користувача. Для цього буде використаний алгоритм, описаний у <ref type="bibr" target="#b3">[6]</ref>.</p><p>Також кожен документ має бути віднесений до однієї або кількох категорій знань (зокрема для реалізації функції пошуку за категоріями). Для вирішення цієї задачі буде використано підхід із <ref type="bibr" target="#b3">[6]</ref>.</p><p>Бібліотека Lucene здатна проводити зважене зонне ранжування, що і буде використовуватись у алгоритмі пошуку майбутньої системи.</p><p>Система має надавати можливість пошуку статей за автором. Логіка реалізації даної функції відносно тривіальна. Користувач повинен мати змогу при пошуку задавати ім'я автора/авторів, і отримувати у результатах публікації вказаного автора/авторів. Також, при перегляді кожної статті, система повинна рекомендувати інші статті того ж автора/авторів, якщо такі є. Оскільки імена авторів -це окрема зона індексу системи, ця функція є частково реалізованою у бібліотеці Lucene.</p><p>У системі має бути реалізована функція пошуку документів за УДК та категорією/категоріями знань. Для цього база системи має містити повний список категорій (зокрема, для виведення підказок під час пошуку). Також кожен документ має бути віднесений до однієї або більше категорій під час класифікації. Як і пошук за автором, ця функція є частиною зонного пошуку в Lucene.</p><p>Під час перегляду результатів пошуку та статей, користувачеві має надаватись рекомендації щодо схожих матеріалів. Схожими вважатимуться матеріали, що мають спільного автора, спільні терміни в заголовку, спільні джерела або ж належать до однієї категорії знань. Також має бути реалізована окрема функція пошуку, що дозволить переглядати усі схожі статті до даної.</p><p>При перегляді певної статті користувач має мати можливість перейти до статей, що зазначені у списку посилань до даної (якщо вони наявні у базі системи). Також має бути реалізована можливість переходу до статей авторів, що зазначені у цьому списку.</p><p>Бувають випадки, коли різні автори працюють над однією темою, не здогадуючись про це. Система має допомогти таким користувачам знайти одне одного для подальшої співпраці. Для цього має бути реалізований модуль обміну повідомленнями між користувачами. Має бути можливість вказування поточних тем діяльності користувачів (і відповідно їх перегляду). Роботодавцям або інвесторам, що шукають спеціалістів для виконання того чи іншого завдання, система має запропонувати авторів, що працювали або працюють над відповідними темами. Має бути реалізований пошук користувачів, що працюють за певною (або схожою) темою.</p><p>Якщо система набуде потрібної популярності, необхідно буде реалізувати можливість самостійного додавання своїх робіт користувачами системи. Такий спосіб поповнення колекції має ряд переваг. Автор зможе чітко зазначити атрибути своєї роботи при додаванні (назву, дату, використану літературу, категорію знань тощо), водночас як система могла зробити це з помилками.</p><p>Зареєстрованим користувачам системи має надаватись можливість оцінювати роботи інших користувачів. До того ж, рейтинг статей автора має впливати на вагу його голосу при оцінюванні чужих статей. За допомогою таких оцінок, має визначатись якість матеріалу, яка має враховуватись при видачі результатів на пошукові запити (при ранжуванні документів).</p><p>Користувачі мають мати змогу визначати актуальність та цікавість обраної ними теми для інших користувачів. Зокрема, система надаватиме функціональність для зручного рецензування статей. Рецензії мають відображатися поряд із самими статтями у результатах пошуку, що допоможе користувачам оцінити якість, повноту та відповідність статті їх потребам ще до переходу на сторінку.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Розбір PDF-документів</head><p>Важливою частиною індексації та зваженого зонного ранжування наукових матеріалів у форматі PDF є їх розбиття на логічні частини (зони). Для дослідження обрано саме формат PDF, оскільки на даний момент він є найпопулярнішим у сфері наукових публікацій. Крім того, база документів, що буде використовуватись у прототипі системи, складається саме з матеріалів цього формату.</p><p>Основною проблемою розбору PDF документів є те, що цей формат не розрахований на програмну обробку. Він орієнтований на відображення, а не на збереження та передачу текстової інформації. Крім того, не існує єдиного стандарту для оформлення наукових публікацій, і навіть тих стандартів, що розроблені, рідко дотримуються.</p><p>Наш алгоритм має виділяти у PDF документі такі зони: заголовок, УДК (універсальний десятковий класифікатор), автори та використана література (список посилань). Однак, є і інші важливі частини такі як: анотація, видавництво, дата публікації, вступ тощо (ці зони в даній роботі не розглядатимуться).</p><p>Формат PDF (Portable Document Format) створено для представлення документів у незалежному від пристрою виведення та роздільної здатності вигляді. Доступ до тексту та легкість програмного розбору не входили до списку пріоритетів його розробки. Тому під час програмної обробки файлів цього формату виникають певні труднощі. Файли формату PDF складаються з директив для відображення контенту, що не групуються за розташуванням. Одне слово, або навіть буква, яку потрібно відобразити, може задаватися кількома директивами. Саме тому першочерговою задачею під час програмної обробки PDF документів є виділення тексту та групування його за абзацами.</p><p>Існує декілька готових бібліотек, що здатні виділяти текст з документів PDF (iText, PDFBox, PDF Clown), але вони здебільшого подають текст сторінками і без форматування. Тому прийнято рішення розширити функціональність однієї з бібліотек (iText) <ref type="bibr" target="#b4">[7]</ref> таким чином, щоб текст виділявся абзацами з однаковим або схожим форматуванням (розмір і жирність шрифтів, вирівнювання тексту тощо).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Реалізовано такий алгоритм:</head><p>• за допомогою бібліотеки iText виділяються окремі прямокутники з текстом.</p><p>• визначаються та об'єднуються прямокутники, що лежать в одному рядку. Два прямокутники вважаються такими, що лежать в одному рядку, якщо їх вертикальний перетин складає не менше 80% висоти найнижчого з них. Крім цього має виконуватись одна з умов: а) горизонтальна відстань між ними не має бути більшою, ніж висота найнижчого з них; б) простір між цими прямокутниками рядком нижче повинен містити текст.</p><p>• визначаються та об'єднуються рядки, що належать до одного абзацу. Два рядки вважаються такими, що належать до одного абзацу, якщо виконуються такі умови:</p><p>1) жирність шрифтів в обох рядках однакова;</p><p>2) регістр символів цих рядків однаковий;</p><p>3) нехай:  l -горизонтальна відстань між лівими краями рядків,  r -горизонтальна відстань між правими краями рядків,  c -горизонтальна відстань між центральними точками рядків,  w -максимальна ширина пробілу шрифтів обох рядків (white space width),</p><formula xml:id="formula_0">    , ,</formula><p>-деякі додатні константи. Тоді виконується твердження:</p><formula xml:id="formula_1">  ) ( ) (            w c w r w l .</formula><p>Експериментальним чином було підібрано:</p><formula xml:id="formula_2">1   , 5 . 1   , 5 . 4   ;</formula><p>4) Вертикальна відстань між рядками не перевищує половину висоти лінії (line height) верхнього рядка. Алгоритм поділу на логічні зони включає виділення заголовку, УДК, авторів та посилань. Нехай X -множина абзаців першої сторінки документу;</p><p>x font -нормалізований розмір шрифта абзацу x (тут і надалі X x  );</p><p>x lineheight -нормалізована висота лінії абзацу x ;</p><p>x centered -1, якщо текст абзацу x відцентрований, 0 -якщо ні;</p><p>x bold -1, якщо шрифт абзацу x жирний, 0 -якщо ні;</p><p>x uppercase -1, якщо абзац x верхнього регістру, 0 -якщо ні;</p><p>Визначимо функцію:</p><formula xml:id="formula_3">uc uppercase bc bold cc centerd lc lineheight fc font x h x x x x x           ) ( , де uc bc cc lc fc , , , , -<label>певні константи.</label></formula><p>Заголовком статті вважатимемо текст того абзацу, для якого функція h прийматиме найбільше значення. Експериментальним шляхом підібрано такі значення констант:</p><formula xml:id="formula_4">25 . 0 , 1 , 75 . 0 , 1 , 1      bc uc cc lc fc .</formula><p>Пошук УДК зводиться до знаходження першого (за розташуванням зверху вниз, зліва направо) абзацу першої сторінки документа, текст якого починається з літер "УДК" та містить крім них лише цифри та знаки "-" і ".".</p><p>Визначення авторів статті зводиться до знаходження абзацу, найближчого за розташуванням до абзацу заголовку, що містить текст формату "І.І. П" або "П І.І.", де І -ініціали, П -прізвище. Для цього створено окремі регулярні вирази для кожного формату.</p><p>Пошук списку посилань полягає у знаходженні нумерованого списку, що починається з певних ключових слів ("Використана література", "Список посилань" тощо) на одній із останніх сторінок документа. Алгоритм проходить по черзі сторінки документа, починаючи з останньої, доки не знайде абзац, що містить одне з ключових слів. Знайшовши його, алгоритм за допомогою регулярних виразів виділяє нумерований список, що розташований нижче цього абзацу. Якщо такого списку немає, продовжується пошук абзацу з ключовими словами.</p><p>Далі приведемо UML діаграму класів реалізації алгоритму (рис. 1, 2, 3). </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Висновки</head><p>В даній роботі представлено архітектуру пошукової системи наукових матеріалів українською мовою з соціальною складовою. Запропоновано таку структуру та технології для реалізації, за допомогою яких можна розробити масштабовану, ефективну та надійну систему.</p><p>Запропоновано та реалізовано алгоритм виділення у PDF документах наукових статей чотирьох основних логічних зон. Описано сильні та слабкі сторони алгоритму. Проведений статистичний аналіз експериментальних випробувань реалізації алгоритму показали його практичну придатність, хоча втручання експертів для перевірки даних на перших етапах буде необхідно.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Рис. 1 .</head><label>1</label><figDesc>діаграма класів: package guess Рис. 2. Діаграма класів: package guess Рис. 3. Діаграма класів: package tests, visualization</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="5,66.48,81.66,462.24,353.70" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="5,123.30,472.62,376.98,262.68" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">М</forename><forename type="middle">М</forename><surname>Глибовець</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">А</forename><surname>Жигмановський</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Заболотний</surname></persName>
		</author>
		<idno>-212с</idno>
		<title level="m">.О. Веб сервіси оброблення документів, Національний університет &quot;Києво-Могилянська академія</title>
				<editor>
			<persName><forename type="first">П</forename><surname>Захоженко</surname></persName>
		</editor>
		<imprint>
			<publisher>НаУКМА</publisher>
			<date type="published" when="2012">2012</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="http://nbuv.gov.ua/" />
		<title level="m">Національна бібліотека України імені В</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">М</forename><surname>Глибовець</surname></persName>
		</author>
		<title level="m">Сітмамбетов Н. Создание специализированной поисковой системы на базе облачных технологий // Пр. міжнар. конф. KDS 2012</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="10" to="14" />
		</imprint>
	</monogr>
	<note>Knowledge-Dialog-Solution</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">// Наукові праці МДУ ім. Петра Могили. Комп&apos;ютерні технології</title>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">М</forename><surname>Глибовець</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">С</forename><surname>Шабінський</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Р</forename><surname>Ольшевський</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Побудова пошукового робота україномовних наукових матеріалів</title>
				<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">130</biblScope>
			<biblScope unit="page" from="81" to="87" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="http://itextpdf.com/" />
		<title level="m">ITEXT Programmable PDF Software</title>
				<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
