Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
malakhovks committed Jul 24, 2019
2 parents 6274dcc + d315231 commit b817ab5
Show file tree
Hide file tree
Showing 7 changed files with 221 additions and 79 deletions.
83 changes: 47 additions & 36 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
## v0.5.0, 2019-07-25

### 🏭 Нові можливості
- Реалізовано підсвічування речень з вибраним терміном в елементі `#sents_from_text` та `#text-content` з використанням бібліотеки [mark.js](https://markjs.io/)

### 🔴 Виправлення помилок
- Дрібні виправлення інтерфейсу.
- Дрібні виправлення серверної частини:
змінено роботу нормалізації тексту (відключено `line = re.sub(r'\W', ' ', line, flags=re.I)`).

## v0.4.2, 2019-07-23

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Виправлено номер версії в елементі `title`.

## v0.4.1, 2019-07-23

👍 Покращення
### 👍 Покращення
- Додано номер поточної версії KEn до елементу `title`.

## v0.4.0, 2019-07-23

🏭 Нові можливості
### 🏭 Нові можливості
- Реалізовано відображення показників частоти термінів за допомоги спливаючої підказки `title` для кожного терміну елементу `#uploadResultList`.
Реалізовано можливість сортування термінів в елементі `#uploadResultList` згідно:
- частоти (за збільшенням);
Expand All @@ -19,18 +29,18 @@
- за черговою появою в тексті;
- Реалізовано елемент `#sort-select` для обрання відповідного типу сортування.

👍 Покращення
### 👍 Покращення
- Рефакторинг програмного коду.

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Дрібні виправлення.

📚 Документація
### 📚 Документація
- Оновлено розділи `Системні вимоги` згідно нових мінімальних системних вимог, україномовної частини `README.md`.

## v0.3.0, 2019-07-22

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Виправлено помилку `UnicodeDecodeError: 'utf8' codec can't decode byte`.
Декодовано файл як `UTF-8`, ігноруючи будь-які символи які закодовані в неправильному кодуванні

Expand All @@ -55,14 +65,14 @@ setattr(laparams, 'all_texts', True)

## v0.2.8, 2019-07-20

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Реалізовано видалення символу `°` на етапі нормалізації тексту.
- Реалізовано видалення всіх не словникових символів (`\W` non-alphanumeric characters) на етапі нормалізації тексту.
- Реалізовано видалення всіх слів, що містять числа при нормалізації тексту.

## v0.2.7, 2019-07-19

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Вимкнено появу стандартного контекстного меню на елементі `#projectFileList` при евенті видалення файлів проекту за кліком правої кнопки миші.
- Збільшено максимально допустимий розмір тіла запиту клієнта до **50 мегабайт**: `client_max_body_size 50M`.

Expand All @@ -71,18 +81,18 @@ setattr(laparams, 'all_texts', True)

## v0.2.6, 2019-07-18

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Виправлено скролінг в елементах класу `.col-md-6`.

👍 Покращення
### 👍 Покращення
- Додано вкладку "Блокнот" з елементом textarea до `.col-md-6`.

## v0.2.5, 2019-07-18

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Дрібні виправлення.

👍 Покращення
### 👍 Покращення
- Видалено тег версій з кінцевих точок API:
було:
`host[:port]/ken/api/**v1.0**/en/file/allterms`
Expand All @@ -93,96 +103,97 @@ setattr(laparams, 'all_texts', True)
- Оновлено структуру проекту.
- Рефакторинг програмного коду.

📚 Документація
### 📚 Документація
- Додана настанова користувача Як зберегти Docker image в файл (резервне копіювання) для подальшого використання на іншому сервері.
- Виправлено **виділення** термінів на **виокремлення** термінів.
- Оновлення україномовної частини `README.md`.

## v0.2.4, 2019-07-08

🔴 Bug fixes
### 🔴 Bug fixes
- Fix sentence duplication in `id="text-content"`.
- Fix `id="sents_from_text"` area to update for a new text.
- Fix add text from last file to `id="sents_from_text"` area.
- Fix add text to `id="sents_from_text"` area when selecting files from `id="projectFileList"` select list.

👍 Improvements
### 👍 Improvements
- Update project structure.
- Clean up source code.

📚 Tutorial and doc improvements
### 📚 Tutorial and doc improvements
- Update UA part of `README.md`.

-----

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Виправлено дублювання речення в елементі `id =" text-content "`.
- Виправлено оновлення елементу `id="sents_from_text"` згідно нового тексту.
- Виправлено додавання тексту з останнього опрацьованого файлу в область `id =" sents_from_text ".
- Виправлено додавання тексту в елемент `id="sents_from_text"` при виборі відповідного файлу зі списку елементу `id="projectFileList"`.
- Дрібні виправлення.

👍 Покращення
### 👍 Покращення
- Оновлено структуру проекту.
- Рефакторинг програмного коду.

📚 Документація
### 📚 Документація
- Оновлення україномовної частини `README.md`.

## v0.2.3, 2019-06-25

👍 Improvements
### 👍 Improvements
- Remove (comment) dependencies for language_check.
- Clean up source code.

📚 Tutorial and doc improvements
### 📚 Tutorial and doc improvements
- Update UA part of README.md.

-----

👍 Покращення
### 👍 Покращення
- Видалено залежності для ` language_check`.
- Рефакторинг програмного коду.

📚 Документація
### 📚 Документація
- Оновлення україномовної частини `README.md`.

## v0.2.2, 2019-06-23

👍 Improvements
### 👍 Improvements
- Fix Highlighting terms in text area `id="text-content"`.
- Fix `loader` colour.
-----
👍 Покращення

### 👍 Покращення
- Виправлено підсвічування виокремлених термінів у `id="text-content"`.
- Змінено колір елементу `loader`.

## v0.2.1, 2019-06-23

👍 Improvements
### 👍 Improvements
- Add save to `csv`.
- Add save of all lists (terms, NER, files).
- Add new notifications.
- Fix titles.

🔴 Bug fixes
### 🔴 Bug fixes
- Various bug fixes.

📚 Tutorial and doc improvements
### 📚 Tutorial and doc improvements
- Update UA part of `README.md`.

-----

👍 Покращення
### 👍 Покращення
- Додано збереження в формат `csv`.
- Додано можливість збереження списків (terms, NER, files).
- Додні нотифікації про виконання процесів.
- Виправлені елементи title.

🔴 Виправлення помилок
### 🔴 Виправлення помилок
- Дрібні виправлення.

📚 Документація
### 📚 Документація
- Оновлення україномовної частини `README.md`.

## v0.2.0, 2019-06-21
Expand All @@ -198,7 +209,7 @@ setattr(laparams, 'all_texts', True)
### 🔴 Bug fixes
- Various bug fixes.

📚 Tutorial and doc improvements
### 📚 Tutorial and doc improvements
- Update UA part of `README.md`.

-----
Expand All @@ -214,13 +225,13 @@ setattr(laparams, 'all_texts', True)
### 🔴 Виправлення помилок
- Різні дрібні виправлення.

📚 Документація
### 📚 Документація
- Оновлення україномовної частини `README.md`.

## v0.1.1, 2019-06-02

🌟 Початковий попередній реліз
### 🌟 Початковий попередній реліз

-----

🌟 Initial pre-release
### 🌟 Initial pre-release
52 changes: 51 additions & 1 deletion ken.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
import pickle
import codecs
import logging
# logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
# logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.DEBUG)
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.ERROR)

Expand Down Expand Up @@ -106,6 +107,41 @@ class XMLResponse(Response):
app.secret_key = os.urandom(42)

"""
# ------------------------------------------------------------------------------------------------------
# DEBUG functions
# ------------------------------------------------------------------------------------------------------
# """

# https://habr.com/ru/post/427909/
# Measure the Real Size of Any Python Object
# https://goshippo.com/blog/measure-real-size-any-python-object/
def get_size(obj, seen=None):
"""Recursively finds size of objects"""
size = sys.getsizeof(obj)
if seen is None:
seen = set()
obj_id = id(obj)
if obj_id in seen:
return 0
# Important mark as seen *before* entering recursion to gracefully handle
# self-referential objects
seen.add(obj_id)
if isinstance(obj, dict):
size += sum([get_size(v, seen) for v in obj.values()])
size += sum([get_size(k, seen) for k in obj.keys()])
elif hasattr(obj, '__dict__'):
size += get_size(obj.__dict__, seen)
elif hasattr(obj, '__iter__') and not isinstance(obj, (str, bytes, bytearray)):
size += sum([get_size(i, seen) for i in obj])
return size

"""
# ------------------------------------------------------------------------------------------------------
# DEBUG functions
# ------------------------------------------------------------------------------------------------------
# """
"""
# ------------------------------------------------------------------------------------------------------
# secondary functions
# ------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -134,7 +170,9 @@ def text_normalization_default(raw_text):
If UNICODE is set, this will match anything other than [0-9_] plus characters classified as not alphanumeric in the Unicode character properties database.
To remove all the non-word characters, the \W pattern can be used as follows:
"""
line = re.sub(r'\W', ' ', line, flags=re.I)
# line = re.sub(r'\W', ' ', line, flags=re.I)
# remove all non-words except punctuation
# line = re.sub('[^\w.,;!?-]', ' ', line)
# remove all words which contains number
line = re.sub(r'\w*\d\w*', ' ', line)
# remove ° symbol
Expand Down Expand Up @@ -297,6 +335,8 @@ def parcexml_Generator():

# default sentence normalization + spaCy doc init
doc = NLP_EN(text_normalized)
# Measure the Size of doc Python Object
logging.info("%s byte", get_size(doc))

"""
# create the <parce.xml> file structure
Expand Down Expand Up @@ -327,6 +367,8 @@ def parcexml_Generator():
new_sentence_element.append(new_sent_element)

doc_for_lemmas = NLP_EN(sentence_clean)
# Measure the Size of doc_for_lemmas Python Object
logging.info("%s byte", get_size(doc_for_lemmas))

# create amd append <ner>, <entity>
# NER labels description https://spacy.io/api/annotation#named-entities
Expand Down Expand Up @@ -473,6 +515,8 @@ def get_terms_list():
try:
# spaCy doc init + default sentence normalization
doc = NLP_EN(text_normalization_default(raw_text))
# Measure the Size of doc Python Object
logging.info("%s byte", get_size(doc))

"""
# create the <allterms.xml> file structure
Expand Down Expand Up @@ -520,11 +564,15 @@ def get_terms_list():

# for processing specific sentence
doc_for_chunks = NLP_EN(sentence_clean)
# Measure the Size of doc_for_chunks Python Object
logging.info("%s byte", get_size(doc_for_chunks))

# sentence NP shallow parsing cycle
for chunk in doc_for_chunks.noun_chunks:

doc_for_tokens = NLP_EN(chunk.text)
# Measure the Size of doc_for_tokens Python Object
logging.info("%s byte", get_size(doc_for_tokens))

'''
# EXTRACT ONE-WORD TERMS ----------------------------------------------------------------------
Expand Down Expand Up @@ -1038,6 +1086,8 @@ def get_dep_parse():
def get_ner():
req_data_JSON = json.loads(request.get_data(as_text=True))
doc = NLP_EN(' '.join(e for e in req_data_JSON))
# Measure the Size of doc Python Object
logging.info("%s byte", get_size(doc))
# colors = {"ORG": "linear-gradient(90deg, #b0fb5a, #ffffff)"}
# options = {"colors": colors}
# html = displacy.render(doc, style="ent", options=options)
Expand Down
Loading

0 comments on commit b817ab5

Please sign in to comment.