Giter Site home page Giter Site logo

malakhovks / docsim Goto Github PK

View Code? Open in Web Editor NEW
5.0 4.0 0.0 54.88 MB

UkrVectōrēs (former docsim) – an NLU-powered tool for knowledge discovery, classification, diagnostics and prediction. Entities similarity tool. Інструмент, "когнітивно-семантичний калькулятор", що працює на основі NLU, для виявлення, класифікації, діагностики та прогнозування знань.

Home Page: https://ukrvectores.e-rehab.pp.ua

License: MIT License

Python 0.84% JavaScript 97.40% HTML 0.66% TypeScript 0.84% Sass 0.26%
computational-linguistics ukrainian-language gensim word2vec fasttext word-embeddings embeddings ukrainian ukraine nlp

docsim's Introduction

docsim / UkrVectōrēs

docsim/UkrVectōrēs – An NLU-powered tool for knowledge discovery, classification, diagnostics and prediction.

You can preview a completed latest version of the UkrVectōrēs app here: https://ukrvectores.e-rehab.pp.ua

💳 Funding

This study would not have been possible without the financial support of the National Research Foundation of Ukraine (Open Funder Registry: 10.13039/100018227). Our work was funded by Grant contract:

  • Development of the cloud-based platform for patient-centered telerehabilitation of oncology patients with mathematical-related modeling, application ID: 2021.01/0136.

🚀 Sponsor this project

Please support @malakhovks. Despite the Wartime in Ukraine, R&D in the field of Digital Health are being resumed. https://send.monobank.ua/jar/5ad56oNAcD

DOI

DOI

Important note

UkrVectōrēs project and documentation are in active development. For any technical clarifications and questions contact us via email: [email protected] or via Issues. The recent Russian's rocket shelling on critical infrastructure in Ukraine and Kyiv led to the shutdown of the https://ukrvectores.e-rehab.pp.ua server.

Choose your language / Оберіть мову


docsim/UkrVectōrēs – інструмент, "когнітивно-семантичний калькулятор", що працює на основі NLU, для виявлення, класифікації, діагностики та прогнозування знань.

Сервіс docsim/UkrVectōrēs обчислює семантичні відношення між сутностями української мови в рамках обраної дистрибутино-семантичної моделі векторного представлення сутностей.

Ви можете переглянути актуальну версію додатка UkrVectōrēs за посиланнями: https://ukrvectores.e-rehab.pp.ua

Увага

Проєкт та документація знаходяться в активній розробці! За будь-якими технічними роз'ясненнями та питаннями зв'яжіться з нами електронною поштою [email protected] або через розділ Issues.

Поняття векторного представлення сутностей

Векторне представлення (англ. Word embedding) – це техніка, яка розглядає сутності (слова, терміни, документи та інше) як вектори, відносна схожість між якими корелює з семантичною подібністю. Така техніка є одним із найуспішніших прикладів застосування навчання без учителя (unsupervised learning). Векторні представлення – техніка для опрацювання природної мови, альтернативна до традиційної, яка дозволяє відображати сутності (слова, словосполучення, терміни або документи зі "словника" на вектори дійсних чисел в малому щодо розміру "словника" просторі, а подібність між векторами корелює з семантичною подібністю між сутностями.

Застосування векторних представлень

Сучасні векторні моделі дозволяють обчислити семантичну подібність між словами, реченнями чи документами, і саме на цих можливостях ґрунтується їхнє використання для розв’язання завдань опрацювання природної мови. Векторні представлення використовують безпосередньо, а також як ознаки для розв’язання насамперед завдань класифікації та кластеризації: розпізнавання іменованих сутностей, морфологічний аналіз слів, аналіз тональности текстів, класифікація/кластеризація документів, класифікація/кластеризація пошукових запитів, класифікація веб-сторінок, ранжування документів, кластеризація заголовків веб-сторінок. Також із використанням векторних представлень вирішують завдання ґенерації текстів, машинного перекладання, виявлення парафраз, моделювання текстів.

Зміст


Призначення та функції

Мережевий засіб docsim/UkrVectōrēs (у вигляді веб-сервісу з API) – це інструмент, який дозволяє досліджувати семантичні відношення між словами в рамках прогностичних моделей дистрибутивної семантики, з використанням програмної бібліотеки з відкритим вихідним кодом для передової обробки та математичного моделювання природної мови gensim (яка включає інтерфейс прикладного програмування для роботи з алгоритмами Word2vec, fastText та інші).

Можна образно назвати Мережевий засіб docsim/UkrVectōrēs "когнітивно-семантичним калькулятором". Користувач може вибрати одну або кілька з ретельно підготовлених (або використовувати інші векторні представлення для слів Word Embeddings, які вільно поширюються) прогностичних моделей дистрибутивної семантики, навчених на різних корпусах текстів, зокрема, таких наборів даних:

  • «Біла Книга з Фізичної та Реабілітаційної Медицини (ФРM) в Європі» (розроблена чотирма Європейськими Органами ФРМ і є довідником для лікарів ФРМ у Європі);
  • проблеми поетики творчого доробку Олеся Гончара;
  • художня література;
  • книга «Серце віддаю дітям».

Мережевий засіб docsim/UkrVectōrēs охоплює наступні елементи дистрибутивно-семантичного аналізу:

  • обчислювати семантичну схожість/близькість між парами слів в рамках обраної прогностичної моделі дистрибутивної семантики;
  • знаходити слова, найближчі до заданого (з можливістю фільтрації за алфавітом і коефіцієнтом косинусної схожості/близькості) в рамках обраної прогностичної моделі дистрибутивної семантики (обчислення семантичних асоціатів). Коефіцієнт косинусної близькості патентів може приймати значення в проміжку [-1 ... 1]. Якщо коефіцієнт косинусної схожості/близькості сутностей – слів приймає значення в проміжку [-1 ... 0,5] – це свідчить про відсутність схожих контекстів в наборі даних та найменшу семантичну близькість слів. Якщо коефіцієнт косинусної схожості/близькості сутностей – слів приймає значення в проміжку [0,5 ... 1] – це свідчить про наявність схожих контекстів в наборі даних та більшу семантичну близькість слів. Чим більше коефіцієнтом косинусної схожості/близькості наближається до 1, тим більша семантична близькість слів та більше схожих контекстів в наборі даних;
  • виконувати над векторами слів алгебраїчні операції (додавання, віднімання, пошук центру лексичного кластера і відстаней до цього центру) в рамках обраної прогностичної моделі дистрибутивної семантики;
  • генерувати семантичні карти (з використанням програмного інструментарію з відкритим початковим кодом TensorFlow, а саме – TensorBoard) відношень між словами (це дозволяє виявляти семантичні кластери або тестувати гіпотези на таких кластерах);
  • отримувати вектор (у вигляді масиву чисел) та його візуалізацію для заданого слова в рамках обраної прогностичної моделі дистрибутивної семантики;
  • завантажити для подальшого використання обрану прогностичну модель дистрибутивної семантики;
  • використовувати інші прогностичні моделі дистрибутивної семантики, які вільно поширюються, за допомоги налаштування конфігураційного файлу.

Програмні залежності

  • Python 3.8.6+ – інтерпретатор та стандартні бібліотеки;
  • gensim – програмна бібліотека з відкритим вихідним кодом для передової обробки та математичного моделювання природної мови;
  • Flask – мікрофреймворк для веб-додатків;
  • Flask-CORS – розширення Flask для обробки спільного використання ресурсів з різних джерел (англ. Cross-Origin Resource Sharing, CORS);
  • uWSGI – веб-сервер і сервер веб-додатків, спочатку реалізований для запуску додатків Python через протокол WSGI (і його бінарний варіант uwsgi);
  • Pandas – програмна бібліотека, написана для мови програмування Python для маніпулювання даними та їхнього аналізу. Вона, зокрема, пропонує структури даних та операції для маніпулювання чисельними таблицями та часовими рядами;
  • nginx – вільний веб-сервер і проксі-серверl;
  • Angular – написаний на TypeScript front-end фреймворк з відкритим кодом для розробки односторінкових застосунків (англ. Single-page application, SPA). В програмній інженерії терміни «front-end» та «back-end» розрізняють за принципом розділення відповідальності між рівнем представлення та рівнем доступу до даних відповідно. Front-end – це інтерфейс для взаємодії між користувачем і back-end. Front-end та back-end можуть бути розподілені між однією або кількома системами. В програмній архітектурі може бути багато рівнів між апаратним забезпеченням та кінцевим користувачем. Кожен з цих рівнів може мати як front-end, так і back-end. Front – це абстракція, спрощення базового компоненту через надання користувачу зручного інтерфейсу взаємодію з SPA.
  • Docker – інструментарій для управління ізольованими Linux-контейнерами.

docsim/UkrVectōrēs - An NLU-Powered tool for knowledge discovery, classification, diagnostics and prediction.

You can preview a completed latest version of the UkrVectōrēs app here: https://ukrvectores.e-rehab.pp.ua

Donation/Funding

https://send.monobank.ua/jar/5ad56oNAcD

Important note

UkrVectōrēs project and documentation are in active development. For any technical clarifications and questions contact us via email: [email protected] or via Issues. The recent Russian's rocket shelling on critical infrastructure in Ukraine and Kyiv led to the shutdown of the https://ukrvectores.e-rehab.pp.ua server.

Table of Contents


Features

You can think about docsim/UkrVectōrēs as a kind of "cognitive-semantic calculator". The online toolkit docsim/UkrVectōrēs covers the following elements of distributional analysis:

  • calculate semantic similarity between pairs of words;
  • find words semantically closest to the query word;
  • apply simple algebraic operations to word vectors (addition, subtraction, finding average vector for a group of words and distances to this average value);
  • draw semantic maps of relations between input words (it is useful to explore clusters and oppositions, or to test your hypotheses about them);
  • get the raw vectors (arrays of real values) and their visualizations for words in the chosen model;
  • download default models;
  • use other prognostic models distributive semantics freely distributed, by adjusting the configuration file.

Dependencies

  • Python 3.8.6+;
  • gensim 3.8.3;
  • Flask 1.1.2;
  • Flask-CORS 3.0.9;
  • uWSGI 2.0.19.1;
  • Pandas latest;
  • nginx latest;
  • Angular latest;
  • Docker latest;
  • docker-compose.

Building and running under UNIX (Linux/MacOS) with Docker

Clone from GitHub repository:

git clone https://github.com/malakhovks/docsim.git

Or clone from the specific branch/tag of GitHub repository:

git clone --depth=1 --branch=<tag_name> <repo_url>

Checkout the branch you want to use:

git checkout <branch_name>

Build an docker image from Dockerfile-nginx, Dockerfile-docsim with docker-compose:

docker-compose up -d

docsim's People

Contributors

alexlug avatar malakhovks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.