Contextual classification and filtered classifications
New Features:
- Contextual classification
- Filter on classifications
Breaking changes:
All logic connected to classification has been moved to Client.classification
.
Example:
Classify products according to their description into a category.
Only use products from the same country to classify.
# Create a configuration for a contextual classification
context_configuration = client.classification.get_contextual_config("Product", ["description"], ["hasCategory"])
# Create a filter (assumes that both the source and target class have a property inCountry)
country_filter = {
"operator": "Equal",
"path": ["inCountry"],
"valueString": "Germany"
}
# Add the filters
germany_config = client.classification.add_filter_to_config(
weaviate.SOURCE_WHERE_FILTER, country_filter, context_configuration)
germany_config = client.classification.add_filter_to_config(
weaviate.TARGET_WHERE_FILTER, data_filter, germany_config)
# Classify
classification_info = client.classification.start(germany_config)
while not client.classification.is_classification_complete(classification_info["id"]):
print("Classifying ...")
time.sleep(3.0)
# Change filter
country_filter["valueString"] = "Estonia"
# Add the filter
estonia_config = client.classification.add_filter_to_config(
weaviate.SOURCE_WHERE_FILTER, country_filter, context_configuration)
estonia_config = client.classification.add_filter_to_config(
weaviate.TARGET_WHERE_FILTER, data_filter, estonia_config)
# Classify
classification_info = client.classification.start(estonia_config)
while not client.classification.is_classification_complete(classification_info["id"]):
print("Classifying ...")
time.sleep(3.0)