from tamr_unify_client.base_model import MachineLearningModel
from tamr_unify_client.categorization.taxonomy import Taxonomy
from tamr_unify_client.project.resource import Project
[docs]class CategorizationProject(Project):
"""A Categorization project in Tamr."""
[docs] def model(self):
"""Machine learning model for this Categorization project.
Learns from verified labels and predicts categorization labels for unlabeled records.
:returns: The machine learning model for categorization.
:rtype: :class:`~tamr_unify_client.base_model.MachineLearningModel`
"""
alias = self.api_path + "/categorizations/model"
return MachineLearningModel(self.client, None, alias)
[docs] def create_taxonomy(self, creation_spec):
"""Creates a :class:`~tamr_unify_client.categorization.taxonomy.Taxonomy` for this project.
A taxonomy cannot already be associated with this project.
:param creation_spec: The creation specification for the taxonomy, which can include name.
:type creation_spec: dict
:returns: The new Taxonomy
:rtype: :class:`~tamr_unify_client.categorization.taxonomy.Taxonomy`
"""
alias = self.api_path + "/taxonomy"
resource_json = self.client.post(alias, json=creation_spec).successful().json()
return Taxonomy.from_json(self.client, resource_json, alias)
[docs] def taxonomy(self):
"""Retrieves the :class:`~tamr_unify_client.categorization.taxonomy.Taxonomy` associated with this project.
If a taxonomy is not already associated with this project,
call :func:`~tamr_unify_client.categorization.project.CategorizationProject.create_taxonomy` first.
:returns: The project's Taxonomy
:rtype: :class:`~tamr_unify_client.categorization.taxonomy.Taxonomy`
"""
alias = self.api_path + "/taxonomy"
resource_json = self.client.get(alias).successful().json()
return Taxonomy.from_json(self.client, resource_json, alias)
# super.__repr__ is sufficient