Skip to main content

Utility functions for text processing.

Project description

text_processing_util_mds24

Documentation Status

Welcome to the repository for text processing, a part of the DSCI-524 course by Group 10 in the MDS-V Cohort 8 at UBC.

Empower your text analysis workflows with text processing package, a Python library designed for streamlined text processing tasks. This versatile package offers four key functions: text_clean for noise removal and text refinement, frequency_vectorizer to generate frequency-based vectors, tfidf_vectorizer for TF-IDF vectorization, and tokenizer_padding to assist in tokenization and padding of text sequences for usage in recurrent neural networks. By simplifying essential text preprocessing steps, this package facilitates efficient text-based analysis, providing an easy-to-use toolkit for natural language processing and text modeling endeavors.

Contributors

Our team, in alphabetical order:

  • Allan Lee
  • Jerry Yu
  • Mo Norouzi
  • Nasim Ghazanfari Nasrabadi

Developer Notes

Note: Since this package has not been published to PyPI as of the latest release, please follow the following instructions to install the package from this GitHub repository.

Installation

  1. First, please make sure that you have poetry and conda installed on your local computer. If not, please follow the official instructions for each respectively to install them. (poetry, conda)

  2. It is recommended to create a conda virtual environment to install the package by running the following commands:

conda create --name text_processing_util_mds24 python=3.9 -y
conda activate text_processing_util_mds24
  1. Clone the repository to your local machine by running:
git clone git@github.com:UBC-MDS/text_processing_util_mds24.git
  1. From the root of this repository, install the package using poetry by running the following command:
poetry install

Testing

Note: Every function in this package except for text_clean calls text_clean in the first line of the code. Hence, testing for errors that arise from unexpected inputs is only done for text_clean. Integration testing is done for the other functions that call text_clean.

To test this package, please run the following command from the root directory of the repository:

pytest tests/

If you would like to see line coverage, please run the following command from the root directory of the repository:

pytest --cov=text_processing_util_mds24

If you would like to see branch coverage, please run the following command from the root directory of the repository:

pytest --cov-branch --cov=text_processing_util_mds24

Functions

  1. text_clean: Removes punctuation, turns all characters in each document lower case and removes numbers in documents.
  2. frequency_vectorizer: Calculates the frequency of each word in a list of text documents.
  3. tfidf_vectorizer: Calculates TF-IDF scores for a list of documents.
  4. tokenizer_padding: Converts each text document into a list of numerical tokens, and pads shorter sequences so that each tokenized document has the same length.

Usage

Here are some examples of usage of the functions in this package.

Example of using text_clean:

from text_processing_util_mds24 import (
    text_clean,
    tfidf_vectorizer,
    frequency_vectorizer,
    tokenizer_padding
)
docs = ["Here is document one.", "", "we have document 2"]
print(text_clean(docs))
[['here', 'is', 'document', 'one'], [], ['we', 'have', 'document']]

Example of using frequency_vectorizer:

docs = ["apple orange banana", "apple banana banana"]
result_tf_matrix, result_feature_names = frequency_vectorizer(docs)
print(result_tf_matrix)
print(result_feature_names)
[[0.33333333 0.33333333 0.33333333]
 [0.33333333 0.66666667 0.        ]]
['apple', 'banana', 'orange']

Example of using tfidf_vectorizer:

docs = ["machine learning is interesting", "machine learning is fascinating"]
tfidf_matrix, feature_names = tfidf_vectorizer(docs)
print(tfidf_matrix)
print(feature_names)
[[ 0.          0.         -0.10136628 -0.10136628 -0.10136628]
 [ 0.          0.         -0.10136628 -0.10136628 -0.10136628]]
['fascinating', 'interesting', 'is', 'learning', 'machine']

Example of using tokenizer_padding:

docs = ["one two three", "one three four five"]
tokenized_padded = tokenizer_padding(docs)
print(tokenized_padded)
[[1. 2. 3. 0.]
 [1. 3. 4. 5.]]

Documentation

The official documentation for this package is hosted on Read the Docs: https://text-processing-util-mds24.readthedocs.io/en/latest/.

Ecosystem

This package is intended to clean and transform texts into different representations to feed into machine learning algorithms. Scikit-learn and Keras provide similar functionalities.

frequency_vectorizer: https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html

tfidf_vectorizer: https://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.TfidfVectorizer.html

tokenizer_padding:

Contributing

Interested in contributing? Check out the contributing guidelines. Please note that this project is released with a Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

text_processing_util_mds24 was created by Jerry Yu, Nasim Ghazanfari Nasrabadi, Mohammad Norouzi, Allan Lee. It is licensed under the terms of the MIT license.

Credits

text_processing_util_mds24 was created with cookiecutter and the py-pkgs-cookiecutter template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

text_processing_util_mds24-0.1.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

text_processing_util_mds24-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file text_processing_util_mds24-0.1.0.tar.gz.

File metadata

File hashes

Hashes for text_processing_util_mds24-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a8ba051a57ad162abd9d434d1907db9784d4d68d2bf0d87b745fd4f3c0a6c9b0
MD5 98106bda866c4608f6622ec3db5bb25b
BLAKE2b-256 b916babd360ff0c62e4e77706bc340e01f91191b2f7ac777d6ff8390d57cad05

See more details on using hashes here.

File details

Details for the file text_processing_util_mds24-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for text_processing_util_mds24-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 876f148882c89afdae25985a27da21fb7a0993f6bfdc36eff95fe4ca4b132483
MD5 cfdcbf72ad34f1ff6f7db6fc6866051a
BLAKE2b-256 f528603666fd40de90d4615d90c2f71cba973a2739ff7a7f4712e70380358ac9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page