From a82be5a95eb2f6470a337f142ea562b9c0df033b Mon Sep 17 00:00:00 2001 From: Vu Anh Date: Fri, 25 Dec 2020 12:03:28 +0700 Subject: [PATCH] GH-351: Release v1.3.1a0 (#377) --- HISTORY.rst | 5 + README.md | 272 +++++++++++++++++++++++++++++++++++++++++ README.rst | 291 ------------------------------------------- docs/readme.rst | 292 +++++++++++++++++++++++++++++++++++++++++++- logo.png | Bin 0 -> 11393 bytes setup.py | 7 +- underthesea/VERSION | 2 +- 7 files changed, 571 insertions(+), 298 deletions(-) create mode 100644 README.md delete mode 100644 README.rst create mode 100644 logo.png diff --git a/HISTORY.rst b/HISTORY.rst index d0197039..fb6eed5e 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -2,6 +2,11 @@ History ================================================================================ +Current +-------------------------------------------------------------------------------- + +* [Funny Update] Change underthesea's avatar (GH-371) + 1.3.0 (2020-12-11) -------------------------------------------------------------------------------- diff --git a/README.md b/README.md new file mode 100644 index 00000000..95372628 --- /dev/null +++ b/README.md @@ -0,0 +1,272 @@ +

+
+ +
+

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ +

+Open-source Vietnamese Natural Language Process Toolkit +

+ +`Underthesea` is: + +🌊 **A Vietnamese NLP toolkit.** Underthesea is a suite of open source Python modules data sets and tutorials supporting research and development in [Vietnamese Natural Language Processing](https://github.com/undertheseanlp/underthesea). We provides extremely easy API to quickly apply pretrained NLP models to your Vietnamese text, such as word segmentation, part-of-speech tagging (PoS), named entity recognition (NER), text classification and dependency parsing. + +🌊 **A Pytorch library.** Underthesea is backed by one of most popular deep learning libraries, [Pytorch](https://pytorch.org/), make it easy to train your deep learning models and experiment with new approaches using Underthesea modules and classes. + +🌊 **An open-source software.** Underthesea is published under the [GNU General Public License v3.0](https://github.com/undertheseanlp/underthesea/blob/master/LICENSE) license. Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. + +💫 **Version 1.3.0 out now!** [Underthesea meet deep learning!](https://github.com/undertheseanlp/underthesea/issues/359) + +## Installation + + +To install underthesea, simply: + +```bash +$ pip install underthesea +✨🍰✨ +``` + +Satisfaction, guaranteed. + +## Tutorials + +* [1. Sentence Segmentation](#1-sentence-segmentation) +* [2. Word Segmentation](#2-word-segmentation) +* [3. POS Tagging](#3-pos-tagging) +* [4. Chunking](#4-chunking) +* [5. Dependency Parsing](#5-dependency-parsing) +* [6. Named Entity Recognition](#6-named-entity-recognition) +* [7. Text Classification](#7-text-classification) +* [8. Sentiment Analysis](#8-sentiment-analysis) +* [9. Vietnamese NLP Resources](#9-vietnamese-nlp-resources) + +### 1. Sentence Segmentation + +Usage + +```python +>>> from underthesea import sent_tokenize +>>> text = 'Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng. Amanda cũng thoải mái với mối quan hệ này.' + +>>> sent_tokenize(text) +[ + "Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng.", + "Amanda cũng thoải mái với mối quan hệ này." +] +``` + +### 2. Word Segmentation + +Usage + +```python +>>> from underthesea import word_tokenize +>>> sentence = 'Chàng trai 9X Quảng Trị khởi nghiệp từ nấm sò' + +>>> word_tokenize(sentence) +['Chàng trai', '9X', 'Quảng Trị', 'khởi nghiệp', 'từ', 'nấm', 'sò'] + +>>> word_tokenize(sentence, format="text") +'Chàng_trai 9X Quảng_Trị khởi_nghiệp từ nấm sò' +``` + +### 3. POS Tagging + + +Usage + +```python +>>> from underthesea import pos_tag +>>> pos_tag('Chợ thịt chó nổi tiếng ở Sài Gòn bị truy quét') +[('Chợ', 'N'), + ('thịt', 'N'), + ('chó', 'N'), + ('nổi tiếng', 'A'), + ('ở', 'E'), + ('Sài Gòn', 'Np'), + ('bị', 'V'), + ('truy quét', 'V')] +``` + + +### 4. Chunking + + +Usage + +```python +>>> from underthesea import chunk +>>> text = 'Bác sĩ bây giờ có thể thản nhiên báo tin bệnh nhân bị ung thư?' +>>> chunk(text) +[('Bác sĩ', 'N', 'B-NP'), + ('bây giờ', 'P', 'I-NP'), + ('có thể', 'R', 'B-VP'), + ('thản nhiên', 'V', 'I-VP'), + ('báo tin', 'N', 'B-NP'), + ('bệnh nhân', 'N', 'I-NP'), + ('bị', 'V', 'B-VP'), + ('ung thư', 'N', 'I-VP'), + ('?', 'CH', 'O')] +``` + + +### 5. Dependency Parsing + + +Usage + +```python +>>> from underthesea import dependency_parse +>>> text = 'Tối 29/11, Việt Nam thêm 2 ca mắc Covid-19' +>>> dependency_parse(text) +[('Tối', 5, 'obl:tmod'), + ('29/11', 1, 'flat:date'), + (',', 1, 'punct'), + ('Việt Nam', 5, 'nsubj'), + ('thêm', 0, 'root'), + ('2', 7, 'nummod'), + ('ca', 5, 'obj'), + ('mắc', 7, 'nmod'), + ('Covid-19', 8, 'nummod')] +``` + + +### 6. Named Entity Recognition + + +Usage + +```python +>>> from underthesea import ner +>>> text = 'Chưa tiết lộ lịch trình tới Việt Nam của Tổng thống Mỹ Donald Trump' +>>> ner(text) +[('Chưa', 'R', 'O', 'O'), + ('tiết lộ', 'V', 'B-VP', 'O'), + ('lịch trình', 'V', 'B-VP', 'O'), + ('tới', 'E', 'B-PP', 'O'), + ('Việt Nam', 'Np', 'B-NP', 'B-LOC'), + ('của', 'E', 'B-PP', 'O'), + ('Tổng thống', 'N', 'B-NP', 'O'), + ('Mỹ', 'Np', 'B-NP', 'B-LOC'), + ('Donald', 'Np', 'B-NP', 'B-PER'), + ('Trump', 'Np', 'B-NP', 'I-PER')] +``` + +### 7. Text Classification + + +Download models + +```bash +$ underthesea download-model TC_GENERAL +$ underthesea download-model TC_BANK +``` + +Usage + +```python +>>> from underthesea import classify + +>>> classify('HLV đầu tiên ở Premier League bị sa thải sau 4 vòng đấu') +['The thao'] + +>>> classify('Hội đồng tư vấn kinh doanh Asean vinh danh giải thưởng quốc tế') +['Kinh doanh'] + +>> classify('Lãi suất từ BIDV rất ưu đãi', domain='bank') +['INTEREST_RATE'] +``` + + +### 8. Sentiment Analysis + +Download models + +```bash +$ underthesea download-model SA_GENERAL +$ underthesea download-model SA_BANK +``` + +Usage + + +```python +>>> from underthesea import sentiment + +>>> sentiment('hàng kém chất lg,chăn đắp lên dính lông lá khắp người. thất vọng') +negative +>>> sentiment('Sản phẩm hơi nhỏ so với tưởng tượng nhưng chất lượng tốt, đóng gói cẩn thận.') +positive + +>>> sentiment('Đky qua đường link ở bài viết này từ thứ 6 mà giờ chưa thấy ai lhe hết', domain='bank') +['CUSTOMER_SUPPORT#negative'] +>>> sentiment('Xem lại vẫn thấy xúc động và tự hào về BIDV của mình', domain='bank') +['TRADEMARK#positive'] +``` + +### 9. Vietnamese NLP Resources + +List resources + +```bash +$ underthesea list-data +| Name | Type | License | Year | Directory | +|--------------+-------------+-----------+--------+-----------------------| +| UTS2017-BANK | Categorized | Open | 2017 | datasets/UTS2017-BANK | +| VNESES | Plaintext | Open | 2012 | datasets/LTA | +| VNTQ_BIG | Plaintext | Open | 2012 | datasets/LTA | +| VNTQ_SMALL | Plaintext | Open | 2012 | datasets/LTA | +| VNTC | Categorized | Open | 2007 | datasets/VNTC | + +$ underthesea list-data --all +``` + +Download resources + +```bash +$ underthesea download-data VNTC +100%|██████████| 74846806/74846806 [00:09<00:00, 8243779.16B/s] +Resource VNTC is downloaded in ~/.underthesea/datasets/VNTC folder +``` + +### Up Coming Features + +* Machine Translation +* Text to Speech +* Automatic Speech Recognition + +### Contributing + +Do you want to contribute with underthesea development? Great! Please read more details at [CONTRIBUTING.rst](https://github.com/undertheseanlp/underthesea/blob/master/CONTRIBUTING.rst) diff --git a/README.rst b/README.rst deleted file mode 100644 index 73de28f7..00000000 --- a/README.rst +++ /dev/null @@ -1,291 +0,0 @@ -==================================== -Underthesea - Vietnamese NLP Toolkit -==================================== - - -.. image:: https://img.shields.io/pypi/v/underthesea.svg - :target: https://pypi.python.org/pypi/underthesea - -.. image:: https://img.shields.io/pypi/pyversions/underthesea.svg - :target: https://pypi.python.org/pypi/underthesea - -.. image:: https://img.shields.io/badge/license-GNU%20General%20Public%20License%20v3-brightgreen.svg - :target: https://pypi.python.org/pypi/underthesea - -.. image:: https://img.shields.io/travis/undertheseanlp/underthesea.svg - :target: https://travis-ci.org/undertheseanlp/underthesea - -.. image:: https://readthedocs.org/projects/underthesea/badge/?version=latest - :target: http://underthesea.readthedocs.io/en/latest/ - :alt: Documentation Status - -.. image:: https://img.shields.io/badge/chat-on%20facebook-green.svg - :target: https://www.facebook.com/undertheseanlp/ - -| - -.. image:: https://raw.githubusercontent.com/undertheseanlp/underthesea/master/logo.jpg - :target: https://raw.githubusercontent.com/undertheseanlp/underthesea/master/logo.jpg - -**underthesea** is a suite of open source Python modules, data sets and tutorials supporting research and development in Vietnamese Natural Language Processing. - -💫 **Version 1.3.0 out now!** `Underthesea meet deep learning! `_ - -+-----------------+------------------------------------------------------------------------------------------------+ -| Free software | GNU General Public License v3 | -+-----------------+------------------------------------------------------------------------------------------------+ -| Live demo | `undertheseanlp.com `_ | -+-----------------+------------------------------------------------------------------------------------------------+ -| Colab notebooks | `latest `_ | -| | / | -| | `stable `_ | -+-----------------+------------------------------------------------------------------------------------------------+ -| Documentation | `Underthesea Documentation `_ | -+-----------------+------------------------------------------------------------------------------------------------+ -| Facebook | `Underthesea Page `_ | -+-----------------+------------------------------------------------------------------------------------------------+ -| Youtube | `Underthesea NLP Channel `_ | -+-----------------+------------------------------------------------------------------------------------------------+ - -Installation ----------------------------------------- - -To install underthesea, simply: - -.. code-block:: bash - - $ pip install underthesea - ✨🍰✨ - -Satisfaction, guaranteed. - -Usage ----------------------------------------- - -* `1. Sentence Segmentation <#1-sentence-segmentation>`_ -* `2. Word Segmentation <#2-word-segmentation>`_ -* `3. POS Tagging <#3-pos-tagging>`_ -* `4. Chunking <#4-chunking>`_ -* `5. Dependency Parsing <#5-dependency-parsing>`_ -* `6. Named Entity Recognition <#6-named-entity-recognition>`_ -* `7. Text Classification <#7-text-classification>`_ -* `8. Sentiment Analysis <#8-sentiment-analysis>`_ -* `9. Vietnamese NLP Resources <#9-vietnamese-nlp-resources>`_ - -**************************************** -1. Sentence Segmentation -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import sent_tokenize - >>> text = 'Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng. Amanda cũng thoải mái với mối quan hệ này.' - - >>> sent_tokenize(text) - [ - "Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng.", - "Amanda cũng thoải mái với mối quan hệ này." - ] - -**************************************** -2. Word Segmentation -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import word_tokenize - >>> sentence = 'Chàng trai 9X Quảng Trị khởi nghiệp từ nấm sò' - - >>> word_tokenize(sentence) - ['Chàng trai', '9X', 'Quảng Trị', 'khởi nghiệp', 'từ', 'nấm', 'sò'] - - >>> word_tokenize(sentence, format="text") - 'Chàng_trai 9X Quảng_Trị khởi_nghiệp từ nấm sò' - -**************************************** -3. POS Tagging -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import pos_tag - >>> pos_tag('Chợ thịt chó nổi tiếng ở Sài Gòn bị truy quét') - [('Chợ', 'N'), - ('thịt', 'N'), - ('chó', 'N'), - ('nổi tiếng', 'A'), - ('ở', 'E'), - ('Sài Gòn', 'Np'), - ('bị', 'V'), - ('truy quét', 'V')] - -**************************************** -4. Chunking -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import chunk - >>> text = 'Bác sĩ bây giờ có thể thản nhiên báo tin bệnh nhân bị ung thư?' - >>> chunk(text) - [('Bác sĩ', 'N', 'B-NP'), - ('bây giờ', 'P', 'I-NP'), - ('có thể', 'R', 'B-VP'), - ('thản nhiên', 'V', 'I-VP'), - ('báo tin', 'N', 'B-NP'), - ('bệnh nhân', 'N', 'I-NP'), - ('bị', 'V', 'B-VP'), - ('ung thư', 'N', 'I-VP'), - ('?', 'CH', 'O')] - -**************************************** -5. Dependency Parsing -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import dependency_parse - >>> text = 'Tối 29/11, Việt Nam thêm 2 ca mắc Covid-19' - >>> dependency_parse(text) - [('Tối', 5, 'obl:tmod'), - ('29/11', 1, 'flat:date'), - (',', 1, 'punct'), - ('Việt Nam', 5, 'nsubj'), - ('thêm', 0, 'root'), - ('2', 7, 'nummod'), - ('ca', 5, 'obj'), - ('mắc', 7, 'nmod'), - ('Covid-19', 8, 'nummod')] - -**************************************** -6. Named Entity Recognition -**************************************** - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import ner - >>> text = 'Chưa tiết lộ lịch trình tới Việt Nam của Tổng thống Mỹ Donald Trump' - >>> ner(text) - [('Chưa', 'R', 'O', 'O'), - ('tiết lộ', 'V', 'B-VP', 'O'), - ('lịch trình', 'V', 'B-VP', 'O'), - ('tới', 'E', 'B-PP', 'O'), - ('Việt Nam', 'Np', 'B-NP', 'B-LOC'), - ('của', 'E', 'B-PP', 'O'), - ('Tổng thống', 'N', 'B-NP', 'O'), - ('Mỹ', 'Np', 'B-NP', 'B-LOC'), - ('Donald', 'Np', 'B-NP', 'B-PER'), - ('Trump', 'Np', 'B-NP', 'I-PER')] - -**************************************** -7. Text Classification -**************************************** - -Download models - -.. code-block:: bash - - $ underthesea download-model TC_GENERAL - $ underthesea download-model TC_BANK - -Usage - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import classify - - >>> classify('HLV đầu tiên ở Premier League bị sa thải sau 4 vòng đấu') - ['The thao'] - >>> classify('Hội đồng tư vấn kinh doanh Asean vinh danh giải thưởng quốc tế') - ['Kinh doanh'] - - >> classify('Lãi suất từ BIDV rất ưu đãi', domain='bank') - ['INTEREST_RATE'] - -**************************************** -8. Sentiment Analysis -**************************************** - -Download models - -.. code-block:: bash - - $ underthesea download-model SA_GENERAL - $ underthesea download-model SA_BANK - - -Usage - - -.. code-block:: python - - >>> # -*- coding: utf-8 -*- - >>> from underthesea import sentiment - - >>> sentiment('hàng kém chất lg,chăn đắp lên dính lông lá khắp người. thất vọng') - negative - >>> sentiment('Sản phẩm hơi nhỏ so với tưởng tượng nhưng chất lượng tốt, đóng gói cẩn thận.') - positive - - >>> sentiment('Đky qua đường link ở bài viết này từ thứ 6 mà giờ chưa thấy ai lhe hết', domain='bank') - ['CUSTOMER_SUPPORT#negative'] - >>> sentiment('Xem lại vẫn thấy xúc động và tự hào về BIDV của mình', domain='bank') - ['TRADEMARK#positive'] - -**************************************** -9. Vietnamese NLP Resources -**************************************** - -List resources - -.. code-block:: bash - - $ underthesea list-data - | Name | Type | License | Year | Directory | - |--------------+-------------+-----------+--------+-----------------------| - | UTS2017-BANK | Categorized | Open | 2017 | datasets/UTS2017-BANK | - | VNESES | Plaintext | Open | 2012 | datasets/LTA | - | VNTQ_BIG | Plaintext | Open | 2012 | datasets/LTA | - | VNTQ_SMALL | Plaintext | Open | 2012 | datasets/LTA | - | VNTC | Categorized | Open | 2007 | datasets/VNTC | - - $ underthesea list-data --all - -Download resources - -.. code-block:: bash - - $ underthesea download-data VNTC - 100%|██████████| 74846806/74846806 [00:09<00:00, 8243779.16B/s] - Resource VNTC is downloaded in ~/.underthesea/datasets/VNTC folder - -Up Coming Features ----------------------------------------- - -* Machine Translation -* Text to Speech -* Automatic Speech Recognition - -Contributing ----------------------------------------- - -Do you want to contribute with underthesea development? Great! Please read more details at `CONTRIBUTING.rst. `_ diff --git a/docs/readme.rst b/docs/readme.rst index de17838e..73de28f7 100644 --- a/docs/readme.rst +++ b/docs/readme.rst @@ -1 +1,291 @@ -.. include:: ../README.rst +==================================== +Underthesea - Vietnamese NLP Toolkit +==================================== + + +.. image:: https://img.shields.io/pypi/v/underthesea.svg + :target: https://pypi.python.org/pypi/underthesea + +.. image:: https://img.shields.io/pypi/pyversions/underthesea.svg + :target: https://pypi.python.org/pypi/underthesea + +.. image:: https://img.shields.io/badge/license-GNU%20General%20Public%20License%20v3-brightgreen.svg + :target: https://pypi.python.org/pypi/underthesea + +.. image:: https://img.shields.io/travis/undertheseanlp/underthesea.svg + :target: https://travis-ci.org/undertheseanlp/underthesea + +.. image:: https://readthedocs.org/projects/underthesea/badge/?version=latest + :target: http://underthesea.readthedocs.io/en/latest/ + :alt: Documentation Status + +.. image:: https://img.shields.io/badge/chat-on%20facebook-green.svg + :target: https://www.facebook.com/undertheseanlp/ + +| + +.. image:: https://raw.githubusercontent.com/undertheseanlp/underthesea/master/logo.jpg + :target: https://raw.githubusercontent.com/undertheseanlp/underthesea/master/logo.jpg + +**underthesea** is a suite of open source Python modules, data sets and tutorials supporting research and development in Vietnamese Natural Language Processing. + +💫 **Version 1.3.0 out now!** `Underthesea meet deep learning! `_ + ++-----------------+------------------------------------------------------------------------------------------------+ +| Free software | GNU General Public License v3 | ++-----------------+------------------------------------------------------------------------------------------------+ +| Live demo | `undertheseanlp.com `_ | ++-----------------+------------------------------------------------------------------------------------------------+ +| Colab notebooks | `latest `_ | +| | / | +| | `stable `_ | ++-----------------+------------------------------------------------------------------------------------------------+ +| Documentation | `Underthesea Documentation `_ | ++-----------------+------------------------------------------------------------------------------------------------+ +| Facebook | `Underthesea Page `_ | ++-----------------+------------------------------------------------------------------------------------------------+ +| Youtube | `Underthesea NLP Channel `_ | ++-----------------+------------------------------------------------------------------------------------------------+ + +Installation +---------------------------------------- + +To install underthesea, simply: + +.. code-block:: bash + + $ pip install underthesea + ✨🍰✨ + +Satisfaction, guaranteed. + +Usage +---------------------------------------- + +* `1. Sentence Segmentation <#1-sentence-segmentation>`_ +* `2. Word Segmentation <#2-word-segmentation>`_ +* `3. POS Tagging <#3-pos-tagging>`_ +* `4. Chunking <#4-chunking>`_ +* `5. Dependency Parsing <#5-dependency-parsing>`_ +* `6. Named Entity Recognition <#6-named-entity-recognition>`_ +* `7. Text Classification <#7-text-classification>`_ +* `8. Sentiment Analysis <#8-sentiment-analysis>`_ +* `9. Vietnamese NLP Resources <#9-vietnamese-nlp-resources>`_ + +**************************************** +1. Sentence Segmentation +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import sent_tokenize + >>> text = 'Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng. Amanda cũng thoải mái với mối quan hệ này.' + + >>> sent_tokenize(text) + [ + "Taylor cho biết lúc đầu cô cảm thấy ngại với cô bạn thân Amanda nhưng rồi mọi thứ trôi qua nhanh chóng.", + "Amanda cũng thoải mái với mối quan hệ này." + ] + +**************************************** +2. Word Segmentation +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import word_tokenize + >>> sentence = 'Chàng trai 9X Quảng Trị khởi nghiệp từ nấm sò' + + >>> word_tokenize(sentence) + ['Chàng trai', '9X', 'Quảng Trị', 'khởi nghiệp', 'từ', 'nấm', 'sò'] + + >>> word_tokenize(sentence, format="text") + 'Chàng_trai 9X Quảng_Trị khởi_nghiệp từ nấm sò' + +**************************************** +3. POS Tagging +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import pos_tag + >>> pos_tag('Chợ thịt chó nổi tiếng ở Sài Gòn bị truy quét') + [('Chợ', 'N'), + ('thịt', 'N'), + ('chó', 'N'), + ('nổi tiếng', 'A'), + ('ở', 'E'), + ('Sài Gòn', 'Np'), + ('bị', 'V'), + ('truy quét', 'V')] + +**************************************** +4. Chunking +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import chunk + >>> text = 'Bác sĩ bây giờ có thể thản nhiên báo tin bệnh nhân bị ung thư?' + >>> chunk(text) + [('Bác sĩ', 'N', 'B-NP'), + ('bây giờ', 'P', 'I-NP'), + ('có thể', 'R', 'B-VP'), + ('thản nhiên', 'V', 'I-VP'), + ('báo tin', 'N', 'B-NP'), + ('bệnh nhân', 'N', 'I-NP'), + ('bị', 'V', 'B-VP'), + ('ung thư', 'N', 'I-VP'), + ('?', 'CH', 'O')] + +**************************************** +5. Dependency Parsing +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import dependency_parse + >>> text = 'Tối 29/11, Việt Nam thêm 2 ca mắc Covid-19' + >>> dependency_parse(text) + [('Tối', 5, 'obl:tmod'), + ('29/11', 1, 'flat:date'), + (',', 1, 'punct'), + ('Việt Nam', 5, 'nsubj'), + ('thêm', 0, 'root'), + ('2', 7, 'nummod'), + ('ca', 5, 'obj'), + ('mắc', 7, 'nmod'), + ('Covid-19', 8, 'nummod')] + +**************************************** +6. Named Entity Recognition +**************************************** + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import ner + >>> text = 'Chưa tiết lộ lịch trình tới Việt Nam của Tổng thống Mỹ Donald Trump' + >>> ner(text) + [('Chưa', 'R', 'O', 'O'), + ('tiết lộ', 'V', 'B-VP', 'O'), + ('lịch trình', 'V', 'B-VP', 'O'), + ('tới', 'E', 'B-PP', 'O'), + ('Việt Nam', 'Np', 'B-NP', 'B-LOC'), + ('của', 'E', 'B-PP', 'O'), + ('Tổng thống', 'N', 'B-NP', 'O'), + ('Mỹ', 'Np', 'B-NP', 'B-LOC'), + ('Donald', 'Np', 'B-NP', 'B-PER'), + ('Trump', 'Np', 'B-NP', 'I-PER')] + +**************************************** +7. Text Classification +**************************************** + +Download models + +.. code-block:: bash + + $ underthesea download-model TC_GENERAL + $ underthesea download-model TC_BANK + +Usage + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import classify + + >>> classify('HLV đầu tiên ở Premier League bị sa thải sau 4 vòng đấu') + ['The thao'] + >>> classify('Hội đồng tư vấn kinh doanh Asean vinh danh giải thưởng quốc tế') + ['Kinh doanh'] + + >> classify('Lãi suất từ BIDV rất ưu đãi', domain='bank') + ['INTEREST_RATE'] + +**************************************** +8. Sentiment Analysis +**************************************** + +Download models + +.. code-block:: bash + + $ underthesea download-model SA_GENERAL + $ underthesea download-model SA_BANK + + +Usage + + +.. code-block:: python + + >>> # -*- coding: utf-8 -*- + >>> from underthesea import sentiment + + >>> sentiment('hàng kém chất lg,chăn đắp lên dính lông lá khắp người. thất vọng') + negative + >>> sentiment('Sản phẩm hơi nhỏ so với tưởng tượng nhưng chất lượng tốt, đóng gói cẩn thận.') + positive + + >>> sentiment('Đky qua đường link ở bài viết này từ thứ 6 mà giờ chưa thấy ai lhe hết', domain='bank') + ['CUSTOMER_SUPPORT#negative'] + >>> sentiment('Xem lại vẫn thấy xúc động và tự hào về BIDV của mình', domain='bank') + ['TRADEMARK#positive'] + +**************************************** +9. Vietnamese NLP Resources +**************************************** + +List resources + +.. code-block:: bash + + $ underthesea list-data + | Name | Type | License | Year | Directory | + |--------------+-------------+-----------+--------+-----------------------| + | UTS2017-BANK | Categorized | Open | 2017 | datasets/UTS2017-BANK | + | VNESES | Plaintext | Open | 2012 | datasets/LTA | + | VNTQ_BIG | Plaintext | Open | 2012 | datasets/LTA | + | VNTQ_SMALL | Plaintext | Open | 2012 | datasets/LTA | + | VNTC | Categorized | Open | 2007 | datasets/VNTC | + + $ underthesea list-data --all + +Download resources + +.. code-block:: bash + + $ underthesea download-data VNTC + 100%|██████████| 74846806/74846806 [00:09<00:00, 8243779.16B/s] + Resource VNTC is downloaded in ~/.underthesea/datasets/VNTC folder + +Up Coming Features +---------------------------------------- + +* Machine Translation +* Text to Speech +* Automatic Speech Recognition + +Contributing +---------------------------------------- + +Do you want to contribute with underthesea development? Great! Please read more details at `CONTRIBUTING.rst. `_ diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..90c04401322401f3de15769c3189fccaf2611cdf GIT binary patch literal 11393 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.0', 'python-crfsuite>=0.9.6', @@ -41,7 +38,7 @@ name='underthesea', version=version, description="Vietnamese NLP Toolkit", - long_description=readme + '\n\n' + history, + long_description=readme, author="Vu Anh", author_email='anhv.ict91@gmail.com', url='https://github.com/undertheseanlp/underthesea', diff --git a/underthesea/VERSION b/underthesea/VERSION index f0bb29e7..306bc600 100644 --- a/underthesea/VERSION +++ b/underthesea/VERSION @@ -1 +1 @@ -1.3.0 +1.3.1-alpha