Elemeta is an open-source library in Python for metafeature extraction. With it, you will be able to explore, monitor, and extract features from unstructured data through enriched tabular representations. It provides a straightforward Python API for metafeature extraction from unstructured data like text and images.
Key usage of Elemeta includes:
- Exploratory Data Analysis (EDA) - extract useful metafeature on unstructured data to analyze, investigate, and summarize the main characteristics and employ data visualization methods.
- Data and model monitoring - utilize structured ML monitoring techniques in addition to the typical latent embedding visualizations.
- Feature extraction - engineer alternative features to be utilized in simpler models such as decision trees.
Get started with Elemeta by installing the Python library via pip
pip install elemeta
Once installed, there are a few example dataframes that can be used for testing the library.
You can find them in elemeta.dataset.dateset
from elemeta.dataset.dataset import get_imdb_reviews
# Load existing dataframe
reviews = get_imdb_reviews()
After you have a dataset with the text column, you can start using the library with the following Python API:
from elemeta.nlp.runners.metafeature_extractors_runner import MetafeatureExtractorsRunner
metafeature_extractors_runner = MetafeatureExtractorsRunner()
reviews = metafeature_extractors_runner.run_on_dataframe(dataframe=reviews, text_column='review')
reviews.show()
Elemeta can enrich standard dataframe objects:
from elemeta.nlp.runners.metafeature_extractors_runner import MetafeatureExtractorsRunner
import pandas as pd
df = pd.dataframe({"text": ["Hi I just met you, and this is crazy", "What does the fox say?", "I love robots"})
metafeature_extractors_runner = MetafeatureExtractorsRunner()
df_with_metafeatures = metafeature_extractors_runner.run_on_dataframe(dataframe=reviews, text_column="text")
Elemeta can enrich specific strings:
from elemeta.nlp.runners.metafeature_extractors_runner import MetafeatureExtractorsRunner
metafeature_extractors_runner = MetafeatureExtractorsRunner()
metafeature_extractors_runner.run("This is a text about how good life is :)")
This package aims to help enrich non-tabular data (i.e. text:nlp pictures: image processing and so on). Currently, we only support textual data, and we enrich it by extracting meta features (such as avg word length).
Elemeta is brand new, so we don't have a formal process for contributions just yet. If you have feedback or would like to contribute, just go ahead and post a GitHub issue