# TTTH Analyzer
## _Mô tả thư viện_
[](https://csc.edu.vn/data-science-machine-learning)
TTTH_Analyzer là gói thư viện hỗ trợ HV môn MDS5 thực hiện các bước phân tích đơn biến và đa biến và kiếm tra 1 số tình trạng của các biến
- Phân tích đơn biến (phân loại và liên tục )
- Phân tích đa biến (phân loại vs phân loại, phân loại vs liên tục )
- Phân tích tình trạng outlier của các biến phân loại
- Phân tích tình trạng mất cân bằng của biến phân loại output
FeatureProcessor là gói thư viện hỗ trợ HV môn MDS5 thực hiện các bước xử lý những vấn đề liên quan đến dữ liệu
- Missing values trong biến phân loại và liên tục
- Uncommon category trong biến phân loại
TextProcessor là gói thư viện hỗ trợ HV môn MDS5 thực hiện các bước xử lý 1 số vấn đề thường gặp ở văn bản Tiếng Việt
- Emojicon
- Teencode
- Dấu câu và số xen lẫn trong câu
- Sai chính tả
- Stop word Tiếng Việt
- Tiếng Anh xen lẫn Tiếng Việt
- Nhiều kỉểu gõ
- Không tập trung vào từ loại quan trọng
## Tính năng cung cấp:
### Đối với thư viện TTTH_Analyzer
- Phân tích đơn biến với biến phân loại thông qua :
* Count values
* Barchart
- Phân tích đơn biến với biến liên tục thông qua :
* Các thông tin thống kê: Mean, Median, Mode, Min, Max và Range
* Các thông tin thống kê liên quan đến sự phân tán dữ liệu như : Range, Q1, Q3 , IQR, phương sai, độ lệch, độ nhọn của phân phối
* Trực quan hóa bằng histogram và boxplot
- Phân tích đa biến phân loại vs phân loại thông qua:
* Xây dựng bảng 2 chiều (two-way table)
* Trực quan hóa bằng biểu đồ cột chồng (stacked columns bar )
* Thực hiện phân tích thống kê bằng chi2
- Phân tích đa biến liên tục vs phân loại thông qua:
* Xây dựng bảng ANOVA và phân tích thống kê
* Trực quan hóa bằng box plot
- Phân tích outlier của biến liên tục
- Phân tích hiện tượng mất cân bằng dữ liệu ở biến phân loại output
### Đối với thư viện FeatureProcessor
- Xử lý missing values và các phân nhóm không phổ biến:
* Điền missing values bằng mode với biến phân loại
* Điền mising values bằng median với biến liên tục
* Thay thế các phân nhóm không phổ biến bằng nhãn mới
### Đối với thư viện TextProcessor
- Xử lý các tình trạng thường gặp với dữ liệu văn bản Tiếng Việt:
* Thay thế 1 số emojicon bằng từ thay thế
* Thay thế 1 số teen code bằng từ thay thế
* Loại bỏ các ký tự số hoặc dấu câu
* Loại bỏ 1 số từ bị sai chính tả
* Loại bỏ các từ trong danh sách stopword Tiếng Việt
* Chuyển đổi 1 số từ Tiếng Anh sang Tiếng Việt
* Thực hiện biến đổi các kiểu gõ khác nhau về 1 dạng unicode
* Hỗ trợ lọc từ loại theo yêu cầu thông qua tính năng postagging của thư viện underthesea
## Installation
```sh
pip install -U ttth-mds5-analyzer
```
## Cách sử dụng
- Khởi tạo thư viện
```sh
from analysis.analyzer import TTTH_Analyzer
_analyzer = TTTH_Analyzer()
```
- Phân tích đơn biến phân loại
```
_analyzer.analyze_category_variable(variable_name='Tên biến', df='Tên DataFrame')
Trong đó:
variable_name: tên biến phân loại cần phân tích - kiểu chuỗi (string)
df: dataframe chứa biến phân loại cần phân tích - kiểu dataframe pandas
Kết quả:
```

- Phân tích đơn biến liên tục
```
_analyzer.analyze_numeric_variable(variable_name='Tên biến', df='Tên DataFrame')
Trong đó:
variable_name: tên biến liên tục cần phân tích - kiểu chuỗi (string)
df: dataframe chứa biến liên tục cần phân tích - kiểu dataframe pandas
Kết quả:
```

- Phân tích đa biến phân loại vs phân loại
```
_analyzer.analyze_category_vs_category(var1='Tên biến 1', var2='Tên biến 2', df='Tên DataFrame')
Trong đó:
var1: tên biến phân loại 1 cần phân tích - kiểu chuỗi (string)
var2: tên biến phân loại 2 cần phân tích - kiểu chuỗi (string)
df: dataframe chứa cả 2 biến phân loại cần phân tích - kiểu dataframe pandas
Kết quả:
```

- Phân tích đa biến liên tục vs phân loại
```
_analyzer.analyze_continous_vs_categories(continous_var='Tên biến liên tục',
category_vars=['Tên biến phân loại 1', 'Tên biến phân loại 2'],
df='Tên DataFrame')
Trong đó:
continous_var: tên biến liên tục cần phân tích - kiểu chuỗi (string)
category_vars: danh sách hoặc tên biến phân loại cần phân tích - kiểu danh sách (list) hoặc kiểu chuỗi (string)
df: dataframe chứa biến phân loại và biến liên tục cần phân tích - kiểu dataframe pandas
Kết quả:
```

- Phân tích mất cân bằng
```
_analyzer.check_imbalance_class(variable_name='Tên biến phân loại', df='Tên DataFrame')
Trong đó:
variable_name: tên biến phân loại cần phân tích - kiểu chuỗi (string)
df: dataframe chứa biến liên tục cần phân tích - kiểu dataframe pandas
Kết quả:
```

- Phân tích ngoại lai của biến liên tục
```
_analyzer.check_outlier_of_numerical_variable(numerical_variable='Tên biến liên tục',
df='Tên DataFrame')
Trong đó:
numerical_variable: tên biến liên tục cần phân tích - kiểu chuỗi (string)
df: dataframe chứa biến phân loại và biến liên tục cần phân tích - kiểu dataframe pandas
Kết quả:
```

## Cách sử dụng thư viện FeatureProcessor
- Khởi tạo thư viện FeatureProcessor
```sh
from processor.feature import FeatureProcessor
_processor = FeatureProcessor()
```
- Điền missing values của biến phân loại bằng giá trị mode
```
_processor.handle_missing_values_by_mode(variable_name='tên biến category', df='Tên DataFrame')
Trong đó:
variable_name: tên biến phân loại cần xử lý - kiểu chuỗi (string)
df: dataframe chứa biến phân loại cần xử lý - kiểu dataframe pandas
Kết quả:
```

- Điền missing values của biến liên tục bằng giá trị median
```
_processor.handle_missing_values_by_median(variable_name='tên biến category', df='Tên DataFrame')
Trong đó:
variable_name: tên biến liên tục cần xử lý - kiểu chuỗi (string)
df: dataframe chứa biến liên tục cần xử lý - kiểu dataframe pandas
Kết quả:
```

- Nhóm các phân nhóm không phổ biến thành 1 nhãn
```
_processor.handle_uncommon_category(variable_name='tên biến category', df='Tên DataFrame',
threshold='ngưỡng xác định giá trị không phổ biến',
label='nhãn thay thế các giá trị không phổ biến')
Trong đó:
variable_name: tên biến phân loại cần xử lý - kiểu chuỗi (string)
df: dataframe chứa biến phân loại cần xử lý - kiểu dataframe pandas
threshold: ngưỡng xác định giá trị không phổ biến. Mặc định: 10
label: nhãn thay thế các giá trị không phổ biến. Mặc định: Rare
Kết quả:
```

## Cách sử dụng thư viện TextProcessor
- Khởi tạo thư viện TextProcessor
```sh
from processor.text import TextProcessor
text_processor = TextProcessor()
```
- Thay thế 1 số emojicon bằng từ thay thế
```
text_processor.replace_emoji_to_text(sentence, emoji_dict=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
emoji_dict: dictionary bổ sung cho việc thay thế emojicon bằng từ thay thế,
nếu không truyền vào thì sử dụng từ dictionary mặc định
Kết quả:
```

- Thay thế 1 số teen code bằng từ thay thế
```
text_processor.replace_teencode_to_text(sentence, teencode_dict=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
teencode_dict: dictionary bổ sung cho việc thay thế teencode bằng từ thay thế,
nếu không truyền vào thì sử dụng từ dictionary mặc định
Kết quả:
```

- Loại bỏ các ký tự số hoặc dấu câu
```
text_processor.remove_punctuation_number(sentence)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
Kết quả:
```

- Loại bỏ 1 số từ bị sai chính tả
```
text_processor.remove_typo_tokens(sentence, typo_word_lst=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
typo_word_lst: danh sách từ sai chính tả bổ sung cho việc loại bỏ từ sai chính tả,
nếu không truyền vào thì sử dụng từ danh sách mặc định
Kết quả:
```

- Loại bỏ các từ trong danh sách stopword Tiếng Việt
```
text_processor.remove_stopword(sentence, stopwords=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
stopwords: danh sách stopwords bổ sung cho việc loại bỏ stopwords,
nếu không truyền vào thì sử dụng từ danh sách mặc định
Kết quả:
```

- Chuyển đổi 1 số từ Tiếng Anh sang Tiếng Việt
```
text_processor.translate_english_to_vietnam(sentence, eng_vie_dict=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
eng_vie_dict: dictionary bổ sung cho việc thay thế Tiếng Anh bằng từ Tiếng Việt,
nếu không truyền vào thì sử dụng từ dictionary mặc định
Kết quả:
```

- Thực hiện biến đổi các kiểu gõ khác nhau về 1 dạng unicode
```
text_processor.covert_unicode(sentence)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
Kết quả:
```

- Hỗ trợ lọc từ loại theo yêu cầu thông qua tính năng postagging của thư viện underthesea
```
text_processor.process_postag_thesea(sentence, lst_word_type=None)
Trong đó:
sentence: Văn bản cần xử lý - kiểu chuỗi (string)
lst_word_type: danh sách từ loại để lọc lấy,
nếu không truyền vào thì sử dụng từ danh sách mặc định ['A', 'AB', 'V', 'VB', 'VY', 'R']
Kết quả:
```

## License
MIT
**Nhanh tay đăng ký các khóa học Data Science/ Machine Learning ở TTTH Đại học KHTN để có thêm nhiều kiến thức thú vị cùng những cuộc hành trình khai phá dữ liệu **
Raw data
{
"_id": null,
"home_page": "https://github.com/liemvt2008/mds5-analyzer",
"name": "ttth-mds5-analyzer",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "mds5-analyzer",
"author": "Data Farmer",
"author_email": "datafarmer2019@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/b0/4b/5568f16dbedcf5ea56840914f8cdbb8d207d9913079353b2c347796e4e06/ttth-mds5-analyzer-0.1.8.tar.gz",
"platform": null,
"description": "# TTTH Analyzer\n## _M\u00f4 t\u1ea3 th\u01b0 vi\u1ec7n_\n\n[](https://csc.edu.vn/data-science-machine-learning)\n\nTTTH_Analyzer l\u00e0 g\u00f3i th\u01b0 vi\u1ec7n h\u1ed7 tr\u1ee3 HV m\u00f4n MDS5 th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn v\u00e0 \u0111a bi\u1ebfn v\u00e0 ki\u1ebfm tra 1 s\u1ed1 t\u00ecnh tr\u1ea1ng c\u1ee7a c\u00e1c bi\u1ebfn\n\n- Ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn (ph\u00e2n lo\u1ea1i v\u00e0 li\u00ean t\u1ee5c )\n- Ph\u00e2n t\u00edch \u0111a bi\u1ebfn (ph\u00e2n lo\u1ea1i vs ph\u00e2n lo\u1ea1i, ph\u00e2n lo\u1ea1i vs li\u00ean t\u1ee5c )\n- Ph\u00e2n t\u00edch t\u00ecnh tr\u1ea1ng outlier c\u1ee7a c\u00e1c bi\u1ebfn ph\u00e2n lo\u1ea1i \n- Ph\u00e2n t\u00edch t\u00ecnh tr\u1ea1ng m\u1ea5t c\u00e2n b\u1eb1ng c\u1ee7a bi\u1ebfn ph\u00e2n lo\u1ea1i output \n\nFeatureProcessor l\u00e0 g\u00f3i th\u01b0 vi\u1ec7n h\u1ed7 tr\u1ee3 HV m\u00f4n MDS5 th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc x\u1eed l\u00fd nh\u1eefng v\u1ea5n \u0111\u1ec1 li\u00ean quan \u0111\u1ebfn d\u1eef li\u1ec7u\n\n- Missing values trong bi\u1ebfn ph\u00e2n lo\u1ea1i v\u00e0 li\u00ean t\u1ee5c\n- Uncommon category trong bi\u1ebfn ph\u00e2n lo\u1ea1i \n\nTextProcessor l\u00e0 g\u00f3i th\u01b0 vi\u1ec7n h\u1ed7 tr\u1ee3 HV m\u00f4n MDS5 th\u1ef1c hi\u1ec7n c\u00e1c b\u01b0\u1edbc x\u1eed l\u00fd 1 s\u1ed1 v\u1ea5n \u0111\u1ec1 th\u01b0\u1eddng g\u1eb7p \u1edf v\u0103n b\u1ea3n Ti\u1ebfng Vi\u1ec7t\n- Emojicon\n- Teencode\n- D\u1ea5u c\u00e2u v\u00e0 s\u1ed1 xen l\u1eabn trong c\u00e2u \n- Sai ch\u00ednh t\u1ea3\n- Stop word Ti\u1ebfng Vi\u1ec7t\n- Ti\u1ebfng Anh xen l\u1eabn Ti\u1ebfng Vi\u1ec7t\n- Nhi\u1ec1u k\u1ec9\u1ec3u g\u00f5\n- Kh\u00f4ng t\u1eadp trung v\u00e0o t\u1eeb lo\u1ea1i quan tr\u1ecdng\n\n\n## T\u00ednh n\u0103ng cung c\u1ea5p:\n\n### \u0110\u1ed1i v\u1edbi th\u01b0 vi\u1ec7n TTTH_Analyzer\n- Ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn v\u1edbi bi\u1ebfn ph\u00e2n lo\u1ea1i th\u00f4ng qua : \n * Count values \n * Barchart\n- Ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn v\u1edbi bi\u1ebfn li\u00ean t\u1ee5c th\u00f4ng qua :\n * C\u00e1c th\u00f4ng tin th\u1ed1ng k\u00ea: Mean, Median, Mode, Min, Max v\u00e0 Range \n * C\u00e1c th\u00f4ng tin th\u1ed1ng k\u00ea li\u00ean quan \u0111\u1ebfn s\u1ef1 ph\u00e2n t\u00e1n d\u1eef li\u1ec7u nh\u01b0 : Range, Q1, Q3 , IQR, ph\u01b0\u01a1ng sai, \u0111\u1ed9 l\u1ec7ch, \u0111\u1ed9 nh\u1ecdn c\u1ee7a ph\u00e2n ph\u1ed1i \n * Tr\u1ef1c quan h\u00f3a b\u1eb1ng histogram v\u00e0 boxplot \n- Ph\u00e2n t\u00edch \u0111a bi\u1ebfn ph\u00e2n lo\u1ea1i vs ph\u00e2n lo\u1ea1i th\u00f4ng qua:\n * X\u00e2y d\u1ef1ng b\u1ea3ng 2 chi\u1ec1u (two-way table)\n * Tr\u1ef1c quan h\u00f3a b\u1eb1ng bi\u1ec3u \u0111\u1ed3 c\u1ed9t ch\u1ed3ng (stacked columns bar )\n * Th\u1ef1c hi\u1ec7n ph\u00e2n t\u00edch th\u1ed1ng k\u00ea b\u1eb1ng chi2\n- Ph\u00e2n t\u00edch \u0111a bi\u1ebfn li\u00ean t\u1ee5c vs ph\u00e2n lo\u1ea1i th\u00f4ng qua:\n * X\u00e2y d\u1ef1ng b\u1ea3ng ANOVA v\u00e0 ph\u00e2n t\u00edch th\u1ed1ng k\u00ea \n * Tr\u1ef1c quan h\u00f3a b\u1eb1ng box plot\n- Ph\u00e2n t\u00edch outlier c\u1ee7a bi\u1ebfn li\u00ean t\u1ee5c\n- Ph\u00e2n t\u00edch hi\u1ec7n t\u01b0\u1ee3ng m\u1ea5t c\u00e2n b\u1eb1ng d\u1eef li\u1ec7u \u1edf bi\u1ebfn ph\u00e2n lo\u1ea1i output \n\n### \u0110\u1ed1i v\u1edbi th\u01b0 vi\u1ec7n FeatureProcessor\n- X\u1eed l\u00fd missing values v\u00e0 c\u00e1c ph\u00e2n nh\u00f3m kh\u00f4ng ph\u1ed5 bi\u1ebfn:\n * \u0110i\u1ec1n missing values b\u1eb1ng mode v\u1edbi bi\u1ebfn ph\u00e2n lo\u1ea1i\n * \u0110i\u1ec1n mising values b\u1eb1ng median v\u1edbi bi\u1ebfn li\u00ean t\u1ee5c \n * Thay th\u1ebf c\u00e1c ph\u00e2n nh\u00f3m kh\u00f4ng ph\u1ed5 bi\u1ebfn b\u1eb1ng nh\u00e3n m\u1edbi\n\n### \u0110\u1ed1i v\u1edbi th\u01b0 vi\u1ec7n TextProcessor\n- X\u1eed l\u00fd c\u00e1c t\u00ecnh tr\u1ea1ng th\u01b0\u1eddng g\u1eb7p v\u1edbi d\u1eef li\u1ec7u v\u0103n b\u1ea3n Ti\u1ebfng Vi\u1ec7t:\n * Thay th\u1ebf 1 s\u1ed1 emojicon b\u1eb1ng t\u1eeb thay th\u1ebf \n * Thay th\u1ebf 1 s\u1ed1 teen code b\u1eb1ng t\u1eeb thay th\u1ebf \n * Lo\u1ea1i b\u1ecf c\u00e1c k\u00fd t\u1ef1 s\u1ed1 ho\u1eb7c d\u1ea5u c\u00e2u \n * Lo\u1ea1i b\u1ecf 1 s\u1ed1 t\u1eeb b\u1ecb sai ch\u00ednh t\u1ea3 \n * Lo\u1ea1i b\u1ecf c\u00e1c t\u1eeb trong danh s\u00e1ch stopword Ti\u1ebfng Vi\u1ec7t \n * Chuy\u1ec3n \u0111\u1ed5i 1 s\u1ed1 t\u1eeb Ti\u1ebfng Anh sang Ti\u1ebfng Vi\u1ec7t \n * Th\u1ef1c hi\u1ec7n bi\u1ebfn \u0111\u1ed5i c\u00e1c ki\u1ec3u g\u00f5 kh\u00e1c nhau v\u1ec1 1 d\u1ea1ng unicode \n * H\u1ed7 tr\u1ee3 l\u1ecdc t\u1eeb lo\u1ea1i theo y\u00eau c\u1ea7u th\u00f4ng qua t\u00ednh n\u0103ng postagging c\u1ee7a th\u01b0 vi\u1ec7n underthesea\n\n## Installation\n\n```sh\npip install -U ttth-mds5-analyzer\n```\n\n## C\u00e1ch s\u1eed d\u1ee5ng\n- Kh\u1edfi t\u1ea1o th\u01b0 vi\u1ec7n \n```sh\nfrom analysis.analyzer import TTTH_Analyzer\n_analyzer = TTTH_Analyzer()\n```\n- Ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn ph\u00e2n lo\u1ea1i\n```\n_analyzer.analyze_category_variable(variable_name='T\u00ean bi\u1ebfn', df='T\u00ean DataFrame')\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n- Ph\u00e2n t\u00edch \u0111\u01a1n bi\u1ebfn li\u00ean t\u1ee5c\n```\n_analyzer.analyze_numeric_variable(variable_name='T\u00ean bi\u1ebfn', df='T\u00ean DataFrame')\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n- Ph\u00e2n t\u00edch \u0111a bi\u1ebfn ph\u00e2n lo\u1ea1i vs ph\u00e2n lo\u1ea1i\n```\n_analyzer.analyze_category_vs_category(var1='T\u00ean bi\u1ebfn 1', var2='T\u00ean bi\u1ebfn 2', df='T\u00ean DataFrame')\nTrong \u0111\u00f3:\nvar1: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i 1 c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\nvar2: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i 2 c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a c\u1ea3 2 bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n- Ph\u00e2n t\u00edch \u0111a bi\u1ebfn li\u00ean t\u1ee5c vs ph\u00e2n lo\u1ea1i \n```\n_analyzer.analyze_continous_vs_categories(continous_var='T\u00ean bi\u1ebfn li\u00ean t\u1ee5c', \n category_vars=['T\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i 1', 'T\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i 2'], \n df='T\u00ean DataFrame')\nTrong \u0111\u00f3:\ncontinous_var: t\u00ean bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ncategory_vars: danh s\u00e1ch ho\u1eb7c t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u danh s\u00e1ch (list) ho\u1eb7c ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn ph\u00e2n lo\u1ea1i v\u00e0 bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n- Ph\u00e2n t\u00edch m\u1ea5t c\u00e2n b\u1eb1ng\n```\n_analyzer.check_imbalance_class(variable_name='T\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i', df='T\u00ean DataFrame')\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n- Ph\u00e2n t\u00edch ngo\u1ea1i lai c\u1ee7a bi\u1ebfn li\u00ean t\u1ee5c\n```\n_analyzer.check_outlier_of_numerical_variable(numerical_variable='T\u00ean bi\u1ebfn li\u00ean t\u1ee5c', \n df='T\u00ean DataFrame')\n\nTrong \u0111\u00f3:\nnumerical_variable: t\u00ean bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn ph\u00e2n lo\u1ea1i v\u00e0 bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n ph\u00e2n t\u00edch - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n## C\u00e1ch s\u1eed d\u1ee5ng th\u01b0 vi\u1ec7n FeatureProcessor\n- Kh\u1edfi t\u1ea1o th\u01b0 vi\u1ec7n FeatureProcessor\n```sh\nfrom processor.feature import FeatureProcessor\n_processor = FeatureProcessor()\n```\n\n- \u0110i\u1ec1n missing values c\u1ee7a bi\u1ebfn ph\u00e2n lo\u1ea1i b\u1eb1ng gi\u00e1 tr\u1ecb mode \n```\n_processor.handle_missing_values_by_mode(variable_name='t\u00ean bi\u1ebfn category', df='T\u00ean DataFrame')\n\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n- \u0110i\u1ec1n missing values c\u1ee7a bi\u1ebfn li\u00ean t\u1ee5c b\u1eb1ng gi\u00e1 tr\u1ecb median\n```\n_processor.handle_missing_values_by_median(variable_name='t\u00ean bi\u1ebfn category', df='T\u00ean DataFrame')\n\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn li\u00ean t\u1ee5c c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u dataframe pandas \nK\u1ebft qu\u1ea3: \n```\n\n\n- Nh\u00f3m c\u00e1c ph\u00e2n nh\u00f3m kh\u00f4ng ph\u1ed5 bi\u1ebfn th\u00e0nh 1 nh\u00e3n\n```\n_processor.handle_uncommon_category(variable_name='t\u00ean bi\u1ebfn category', df='T\u00ean DataFrame', \n threshold='ng\u01b0\u1ee1ng x\u00e1c \u0111\u1ecbnh gi\u00e1 tr\u1ecb kh\u00f4ng ph\u1ed5 bi\u1ebfn', \n label='nh\u00e3n thay th\u1ebf c\u00e1c gi\u00e1 tr\u1ecb kh\u00f4ng ph\u1ed5 bi\u1ebfn')\n\nTrong \u0111\u00f3:\nvariable_name: t\u00ean bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\ndf: dataframe ch\u1ee9a bi\u1ebfn ph\u00e2n lo\u1ea1i c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u dataframe pandas \nthreshold: ng\u01b0\u1ee1ng x\u00e1c \u0111\u1ecbnh gi\u00e1 tr\u1ecb kh\u00f4ng ph\u1ed5 bi\u1ebfn. M\u1eb7c \u0111\u1ecbnh: 10\nlabel: nh\u00e3n thay th\u1ebf c\u00e1c gi\u00e1 tr\u1ecb kh\u00f4ng ph\u1ed5 bi\u1ebfn. M\u1eb7c \u0111\u1ecbnh: Rare \nK\u1ebft qu\u1ea3: \n```\n\n\n## C\u00e1ch s\u1eed d\u1ee5ng th\u01b0 vi\u1ec7n TextProcessor\n- Kh\u1edfi t\u1ea1o th\u01b0 vi\u1ec7n TextProcessor\n```sh\nfrom processor.text import TextProcessor\ntext_processor = TextProcessor()\n```\n\n- Thay th\u1ebf 1 s\u1ed1 emojicon b\u1eb1ng t\u1eeb thay th\u1ebf\n```\ntext_processor.replace_emoji_to_text(sentence, emoji_dict=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nemoji_dict: dictionary b\u1ed5 sung cho vi\u1ec7c thay th\u1ebf emojicon b\u1eb1ng t\u1eeb thay th\u1ebf, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb dictionary m\u1eb7c \u0111\u1ecbnh \nK\u1ebft qu\u1ea3: \n```\n\n\n- Thay th\u1ebf 1 s\u1ed1 teen code b\u1eb1ng t\u1eeb thay th\u1ebf\n```\ntext_processor.replace_teencode_to_text(sentence, teencode_dict=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nteencode_dict: dictionary b\u1ed5 sung cho vi\u1ec7c thay th\u1ebf teencode b\u1eb1ng t\u1eeb thay th\u1ebf, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb dictionary m\u1eb7c \u0111\u1ecbnh \nK\u1ebft qu\u1ea3: \n```\n\n\n- Lo\u1ea1i b\u1ecf c\u00e1c k\u00fd t\u1ef1 s\u1ed1 ho\u1eb7c d\u1ea5u c\u00e2u\n```\ntext_processor.remove_punctuation_number(sentence)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nK\u1ebft qu\u1ea3: \n```\n\n\n- Lo\u1ea1i b\u1ecf 1 s\u1ed1 t\u1eeb b\u1ecb sai ch\u00ednh t\u1ea3\n```\ntext_processor.remove_typo_tokens(sentence, typo_word_lst=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\ntypo_word_lst: danh s\u00e1ch t\u1eeb sai ch\u00ednh t\u1ea3 b\u1ed5 sung cho vi\u1ec7c lo\u1ea1i b\u1ecf t\u1eeb sai ch\u00ednh t\u1ea3, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb danh s\u00e1ch m\u1eb7c \u0111\u1ecbnh \nK\u1ebft qu\u1ea3: \n```\n\n\n- Lo\u1ea1i b\u1ecf c\u00e1c t\u1eeb trong danh s\u00e1ch stopword Ti\u1ebfng Vi\u1ec7t\n```\ntext_processor.remove_stopword(sentence, stopwords=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nstopwords: danh s\u00e1ch stopwords b\u1ed5 sung cho vi\u1ec7c lo\u1ea1i b\u1ecf stopwords, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb danh s\u00e1ch m\u1eb7c \u0111\u1ecbnh \nK\u1ebft qu\u1ea3: \n```\n\n\n- Chuy\u1ec3n \u0111\u1ed5i 1 s\u1ed1 t\u1eeb Ti\u1ebfng Anh sang Ti\u1ebfng Vi\u1ec7t\n```\ntext_processor.translate_english_to_vietnam(sentence, eng_vie_dict=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\neng_vie_dict: dictionary b\u1ed5 sung cho vi\u1ec7c thay th\u1ebf Ti\u1ebfng Anh b\u1eb1ng t\u1eeb Ti\u1ebfng Vi\u1ec7t, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb dictionary m\u1eb7c \u0111\u1ecbnh \nK\u1ebft qu\u1ea3: \n```\n\n\n- Th\u1ef1c hi\u1ec7n bi\u1ebfn \u0111\u1ed5i c\u00e1c ki\u1ec3u g\u00f5 kh\u00e1c nhau v\u1ec1 1 d\u1ea1ng unicode\n```\ntext_processor.covert_unicode(sentence)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nK\u1ebft qu\u1ea3: \n```\n\n\n- H\u1ed7 tr\u1ee3 l\u1ecdc t\u1eeb lo\u1ea1i theo y\u00eau c\u1ea7u th\u00f4ng qua t\u00ednh n\u0103ng postagging c\u1ee7a th\u01b0 vi\u1ec7n underthesea\n```\ntext_processor.process_postag_thesea(sentence, lst_word_type=None)\n\nTrong \u0111\u00f3:\nsentence: V\u0103n b\u1ea3n c\u1ea7n x\u1eed l\u00fd - ki\u1ec3u chu\u1ed7i (string)\nlst_word_type: danh s\u00e1ch t\u1eeb lo\u1ea1i \u0111\u1ec3 l\u1ecdc l\u1ea5y, \nn\u1ebfu kh\u00f4ng truy\u1ec1n v\u00e0o th\u00ec s\u1eed d\u1ee5ng t\u1eeb danh s\u00e1ch m\u1eb7c \u0111\u1ecbnh ['A', 'AB', 'V', 'VB', 'VY', 'R']\nK\u1ebft qu\u1ea3: \n```\n\n\n## License\n\nMIT\n\n**Nhanh tay \u0111\u0103ng k\u00fd c\u00e1c kh\u00f3a h\u1ecdc Data Science/ Machine Learning \u1edf TTTH \u0110\u1ea1i h\u1ecdc KHTN \u0111\u1ec3 c\u00f3 th\u00eam nhi\u1ec1u ki\u1ebfn th\u1ee9c th\u00fa v\u1ecb c\u00f9ng nh\u1eefng cu\u1ed9c h\u00e0nh tr\u00ecnh khai ph\u00e1 d\u1eef li\u1ec7u **\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "",
"version": "0.1.8",
"split_keywords": [
"mds5-analyzer"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b04b5568f16dbedcf5ea56840914f8cdbb8d207d9913079353b2c347796e4e06",
"md5": "1c95c804f2ae4ba7c1da2a066d14bd1b",
"sha256": "62f7bba1d0a7e770a88a076dba81bd546867578b3de4c8f1a6143b550e04fde2"
},
"downloads": -1,
"filename": "ttth-mds5-analyzer-0.1.8.tar.gz",
"has_sig": false,
"md5_digest": "1c95c804f2ae4ba7c1da2a066d14bd1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 104854,
"upload_time": "2023-04-04T17:51:16",
"upload_time_iso_8601": "2023-04-04T17:51:16.932549Z",
"url": "https://files.pythonhosted.org/packages/b0/4b/5568f16dbedcf5ea56840914f8cdbb8d207d9913079353b2c347796e4e06/ttth-mds5-analyzer-0.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-04 17:51:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "liemvt2008",
"github_project": "mds5-analyzer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "matplotlib",
"specs": [
[
"~=",
"3.6.0"
]
]
},
{
"name": "pandas",
"specs": [
[
"~=",
"1.5.0"
]
]
},
{
"name": "seaborn",
"specs": [
[
"~=",
"0.12.0"
]
]
},
{
"name": "statsmodels",
"specs": [
[
"~=",
"0.13.2"
]
]
},
{
"name": "scipy",
"specs": [
[
"~=",
"1.9.2"
]
]
},
{
"name": "regex",
"specs": [
[
"~=",
"2021.11.10"
]
]
},
{
"name": "underthesea",
"specs": [
[
"~=",
"1.3.5"
]
]
},
{
"name": "setuptools",
"specs": [
[
"~=",
"65.3.0"
]
]
}
],
"lcname": "ttth-mds5-analyzer"
}