Skip to content

Commit

Permalink
Update to v3.1.0 ✨ spaCy updates (#45)
Browse files Browse the repository at this point in the history
Update to v3.1.0 ✨ spaCy updates

- update spaCy up to 2.3.5;
- update spaCy model (English) up to 2.3.1;
- fix of xml declaration (updated to python 3.7.9 elementTree API);
- add test for api endpoints with Requests library;
  • Loading branch information
malakhovks committed Mar 2, 2021
1 parent 650ce10 commit 5e64230
Show file tree
Hide file tree
Showing 125 changed files with 52,897 additions and 5,543 deletions.
329 changes: 329 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,334 @@
## v3.1.0, 2021-03-02

### 👍 Покращення

- оновлено бібліотеку spaCy до версії 2.3.5;
- оновлено модель бібліотеки spaCy `en_core_web_sm` до версії 2.3.1;
- elementTree API оновлено до версії python 3.7.9;

### 🔴 Виправлення помилок

- виправлено xml declaration (elementTree API оновлено до версії python 3.7.9);
- дрібні виправлення.

## v3.0.3, 2020-10-16


### 🔴 Виправлення помилок

- Дрібні виправлення.

## v3.0.2, 2020-10-16

### 👍 Покращення

- Оновлено платформу `Python` до версії `Python 3.7.9`.

### 🔴 Виправлення помилок

- Дрібні виправлення.

## v3.0.1, 2020-10-16

### 🏭 Нові можливості

- UKR🇺🇦 Додано функцию заповнення контекстів в онтологічному шаблоні (вхідні структури: `allterms.xml` та `structure.xml`).

### 🔴 Виправлення помилок

- Дрібні виправлення.

## v3.0.0-beta-6, 2020-08-21

### 📚 Документація

- UKR🇺🇦 Створено окрему документацію по API та використанню API-ендпоентів - `HELP.md`.

### 🔴 Виправлення помилок

- Дрібні виправлення.

## v3.0.0-beta-5, 2020-08-20

### 🏭 Нові можливості

- UKR🇺🇦 Додано API для обробки/аналізу текстів у вигляді повідомлень. Приклад вхідних даних:
```json
{
"message": "Не зважаючи на стрімкий розвиток індустрії інформатики протягом останніх кількох десятків років, процес самовизначення інформатики як науки все ще не можна вважати завершеним."
}
```
Кінцева точка: `http://IP:PORT/kua/api/task/message/queued`

## v3.0.0-beta-4, 2020-05-19

### 🏭 Нові можливості

- UKR🇺🇦 ENG🇬🇧 Додано можливість завантаження таблиці з зовнішнього XLSX документу.

## v3.0.0-beta-3, 2020-05-14

### 🔴 Виправлення помилок

- UKR🇺🇦 ENG🇬🇧 Виправлено помилку при збереженні таблиці в формат EXCEL (встановлено формат файлу `xlsx` замість `xls`) з використанням [FileSaver.js](https://github.com/eligrey/FileSaver.js) та [xlsx.full.min.js](https://github.com/SheetJS/sheetjs).

## v3.0.0-beta-2, 2020-05-14

### 🔴 Виправлення помилок

- UKR🇺🇦 ENG🇬🇧 Виправлено помилку при збереженні таблиці в формат EXCEL (встановлено розширення файлу `xls` замість `xlsx`).

## v3.0.0-beta-1, 2020-05-07

### 🏭 Нові можливості

- UKR🇺🇦 ENG🇬🇧 Здійснено перехід проекту на актуальну версію Python 3 та відповідне оновлення початкового коду.

### 👍 Покращення

- ENG🇬🇧 Здійснено перехід на актуальну версію бібліотеки spaCy та її моделей.

-----

## v2.0.0-beta-73, 2020-04-16

### ⚠️ Зауваження

- UKR🇺🇦 ENG🇬🇧 Встановлені постійні залежності в `requirements.txt` (для підтримки Python 2.7.17).

## v2.0.0-beta-72, 2020-04-16

### 🔴 Виправлення помилок

- ENG🇬🇧 Виправлено помилку при збереженні локально файлів `allterms.xml`, `parce.xml`.

### 👍 Покращення

- UKR🇺🇦 Прискорено аналіз документів розміром від 50000 до 100000 байт.

## v2.0.0-beta-71, 2020-03-08

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлено помилку інтерактивного підсвічування термінів (при виборі терміна в елементі `#term-tree`).

## v2.0.0-beta-70, 2020-02-27

### 🔴 Виправлення помилок

- UKR🇺🇦 Протестовано та виправлено роботу бібліотеки Konspekt.exe (для української мови версії від 03-11-2018) з файлами великого розміру.
- UKR🇺🇦 Вимкнено режим налагодження `wine` (додано змінну середовища `export WINEDEBUG=-all`).
- UKR🇺🇦 Виправлено помилку інтерактивного підсвічування термінів (якщо частота появи терміна в тексті перевищує 300 разів, в цьому випадку буде відключене інтерактивне підсвічування терміна задля коректного роботи інтерфейсу веб-застосунку).

## v2.0.0-beta-67, 2020-02-24

### 👍 Покращення

- UKR🇺🇦 ENG🇬🇧 На головну веб-сторінку додатка додано номер бета-версії.

## v2.0.0-beta-66, 2020-02-22

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлено список змін.

## v2.0.0-beta-65, 2020-02-22

### ⚠️ Зауваження

- UKR🇺🇦 Додано обмеження на розмір оброблюваного файлу, яке становить 2 мб.
- UKR🇺🇦 Протестовано роботу бібліотеки Konspekt.exe (для української мови версії від 03-11-2018) з файлами великого розміру.
- UKR🇺🇦 Змінено специфікацію `JSON`-файлу проекту (Konspekt.exe для української мови версії від 03-11-2018).
Результати роботи Konspekt.exe (для української мови версії від 03-11-2018), а саме файли `allterms.xml` та `parce.xml` відтепер зберігаються як `blob` в IndexedDB, з використанням бібліотеки localforage; унікальні ідентифікатори на ці `blob` містяться у структурі `JSON`-файлу проекту, відповідно `"alltermsxmlAlias": ""` - аліас для `allterms.xml` та `"parcexmlAlias": ""` - аліас для `parce.xml`.
<details><summary>Специфікація `JSON`-файлу проекту (Konspekt.exe для української мови версії від 03-11-2018):</summary>
<p>

```json
{
"project": {
"name": "",
"notes": "",
"content": {
"documents": [
{
"names": {
"original": "",
"unique": ""
},
"results": {
"alltermsxmlAlias": "",
"parcexmlAlias": "",
"alltermsjson": {},
"parcejson": {}
}
},
{
"names": {
"original": "",
"unique": ""
},
"results": {
"alltermsxmlAlias": "",
"parcexmlAlias": "",
"alltermsjson": {},
"parcejson": {}
}
}
]
}
}
}
```
</p>
</details>

### 👍 Покращення

- UKR🇺🇦 ENG🇬🇧 Додана стартова сторінка вибору мови Конспекту (для обробки документів української або англійською).
- UKR🇺🇦 Зменшено час аналізу файлів бібліотекою Konspekt.exe (для української мови версії від 03-11-2018).
- UKR🇺🇦 При виборі терміна в елементах `<select>` `#uploadResultList` (спиcок термінів) та `<select>` `#term-tree` (дерево термінів), якщо обчислення займає тривалий час, то інтерфейс відображає процес завантаження.

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлені функції сортування в елементі `<select>` `#uploadResultList`.
- UKR🇺🇦 Виправлені технологія та функції підсвічування термінів (`function mark(text)`, `function markTerms(term)`) в елементі `#text-content`.

## v2.0.0-beta-47, 2020-01-08

### ⚠️ Зауваження

- UKR🇺🇦 Змінено специфікацію `JSON`-файлу проекту (Konspekt.exe для української мови версії від 03-11-2018):
<details><summary>Специфікація `JSON`-файлу проекту (Konspekt.exe для української мови версії від 03-11-2018):</summary>
<p>

```json
{
"project": {
"name": "",
"notes": "",
"content": {
"documents": [
{
"names": {
"original": "",
"unique": ""
},
"results": {
"alltermsxmlCompressed": "",
"parcexmlCompressed": "",
"alltermsjson": {},
"parcejson": {}
}
},
{
"names": {
"original": "",
"unique": ""
},
"results": {
"alltermsxmlCompressed": "",
"parcexmlCompressed": "",
"alltermsjson": {},
"parcejson": {}
}
}
]
}
}
}
```

</p>
</details>

### 🔴 Виправлення помилок

- UKR🇺🇦 ENG🇬🇧 Видалено невикористовувані `JavaScript`-бібліотеки, зокрема, `tippy.js`.

## v2.0.0-beta-41, 2019-12-25

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлено проблему з попередньо визначеними об'єктами XML `r'&|>|<|_|"|\.\.+|\s\s+'` (Konspekt.exe для української мови версії від 03-11-2018).
- UKR🇺🇦 Виправлені проблеми з кодиваннями utf-8/windows-1251.

### 👍 Покращення

- UKR🇺🇦 Додана функція динамічного визначення часу на тривалість роботи Konspekt.exe для української мови версії від 03-11-2018:
```python
if len(args['body']) <= 50000:
time_for_analyzing = 65
elif len(args['body']) > 50000 and len(args['body']) <= 100000:
time_for_analyzing = 125
elif len(args['body']) > 100000 and len(args['body']) <= 200000:
time_for_analyzing = 185
elif len(args['body']) > 200000:
time_for_analyzing = 300
```

## v2.0.0-beta-15, 2019-12-21

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлено помилки при decode()/encode().

## v2.0.0-beta-12, 2019-12-20

### 👍 Покращення

- UKR🇺🇦 Додана детекція кодування бібліотекою chardet.

## v2.0.0-beta-11, 2019-12-20

### 🔴 Виправлення помилок

- UKR🇺🇦 Виправлено помилку роботи утиліти [Xvfb](https://en.wikipedia.org/wiki/Xvfb) (Xvfb or X virtual framebuffer is a display server implementing the X11 display server protocol) та програми Konspekt.exe для української мови (версії від 03-11-2018).
- UKR🇺🇦 Виправлено помилки при кодуванні: decode the file as CP1251 ignoring any errors.

## v2.0.0-beta-5, 2019-12-19

### 👍 Покращення

- UKR🇺🇦 Оновлено Konspekt.exe для української мови до версії від 03-11-2018.
- UKR🇺🇦 Оновлено документацію та список змін.

## v2.0.0-beta-4, 2019-12-18

### 🔴 Виправлення помилок

- ENG🇬🇧 Виправлені помилки англійської локалізації інтерфейсу користувача англомовної частини.
- ENG🇬🇧 Дрібні виправлення `JavaScript` на клієнті.

## v2.0.0-beta-3, 2019-12-18

### 👍 Покращення

- ENG🇬🇧 Додана англійська локалізація інтерфейсу користувача англомовної частини.

### 🔴 Виправлення помилок

- Дрібні виправлення на серверній частині.

## v2.0.0-beta-2, 2019-12-17

### 🔴 Виправлення помилок

- Дрібні виправлення на серверній частині.

## v2.0.0-beta-1, 2019-12-17

### 🏭 Нові можливості

🌟 Багатомовна версія ENG🇬🇧, UKR🇺🇦

🌟 Initial commit for multilingual version ENG🇬🇧, UKR🇺🇦

-----

## v1.0.5, 2019-12-11

### 🔴 Виправлення помилок

- Виправлено помилку при нумерації в тегах `<relup>`/`<reldown>` файлу `allterms.xml`.
Нумерація в тегах `<relup>`/`<reldown>` файлу `allterms.xml` починається з `0`.
- Виправлення `JavaScript` на клієнті згідно нової нумерації в тегах `<relup>`/`<reldown>`, `<sentpos>` файлу `allterms.xml`.
Expand All @@ -11,6 +339,7 @@

- Виправлено помилку при нумерації речень в тегу `<sentpos>` файлу `allterms.xml`. Нумерація речень в тегу `<sentpos>` файлу `allterms.xml` починається з `0`.
Для індексації речень з використанням `spaCy` (в цій бібліотеці відсутня індексація речень) за основу використано [приклад](https://stackoverflow.com/questions/58197863/how-to-get-sentence-number-in-spacy):

```python
for sent_i, sent in enumerate(doc.sents):
for token in sent:
Expand Down
43 changes: 34 additions & 9 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,22 +1,47 @@
FROM python:2.7-slim
FROM python:3.7.9-slim-stretch
# FROM python:3.7.7-slim-stretch
# FROM python:2.7-slim-stretch

# https://linuxhint.com/install_wine_debian_10/
# Resolving dependencies for Debian 10 Buster
# If you are using Debian 10 Buster first you need to install the package Libsdl2-2.0-0


LABEL maintainer "Kyrylo Malakhov <malakhovks@nas.gov.ua> and Vitalii Velychko <aduisukr@gmail.com>"
LABEL description "KEn (konspekt English) is a natural language processing API service for contextual and semantic analysis with document taxonomy building feature (python:2.7-slim + Nginx + uWSGI + Flask)"
LABEL description "KEn v3 is a natural language processing API service for contextual and semantic analysis with document taxonomy building feature (python 3.7 + Nginx + uWSGI + Flask + wine). English and Ukrainian languages are supported."

COPY . /srv/ken
WORKDIR /srv/ken

RUN apt-get -y clean \
RUN chgrp -R www-data /srv/ken/deploy/konspekt \
&& chmod -R g+w /srv/ken/deploy/konspekt \
&& chgrp -R www-data /var/tmp \
&& chmod -R g+w /var/tmp \
&& apt-get -y clean \
&& apt-get -y update \
&& apt-get -y install wget \
&& apt-get -y install nginx \
&& apt-get -y install python-dev \
&& apt-get -y install build-essential \
# openjdk-8-jdk-headless, 3to2, man1 for language_check
# && mkdir -p /usr/share/man/man1 \
# && apt-get -y install openjdk-8-jdk-headless \
# && pip install -U 3to2 \
&& pip install -r ./deploy/requirements.txt --src /usr/local/src \
&& python -m textblob.download_corpora \
# install app dependencies
&& pip install -r ./deploy/requirements.txt --src /usr/local/src \
# && python -m textblob.download_corpora \
# install wine stable
&& apt-get install -y software-properties-common apt-transport-https \
&& dpkg --add-architecture i386 \
&& wget -nc https://dl.winehq.org/wine-builds/winehq.key \
&& apt-key add winehq.key \
&& apt-add-repository https://dl.winehq.org/wine-builds/debian/ \
&& apt-get update \
&& apt-get install -y --install-recommends winehq-stable \
&& apt-get install -y xvfb --fix-missing \
# add cp1251
&& apt-get install -y locales locales-all \
# wine 32 bit activation
&& rm -r -f ~/.wine \
&& WINEARCH=win32 WINEPREFIX=~/.wine wine wineboot \
# clean
&& apt-get remove -y software-properties-common apt-transport-https \
&& rm -r /root/.cache \
&& apt-get -y clean \
&& apt-get -y autoremove
Expand Down
Loading

0 comments on commit 5e64230

Please sign in to comment.