Categorical standardization

Java में डेटा क्लीनिंग

Dennis Lee

Software Engineer

श्रेणियाँ मानकीकृत क्यों करें?

  • असंगत श्रेणी नाम: डेटा को समूहित नहीं कर सकते
  • "Fruits & Vegetables" लिखने के अलग-अलग तरीके
  • समाधान: श्रेणियों को मानकीकृत करें

 

 

कच्ची श्रेणी मात्रा
Fruits & Vegetables 10
fruits & veg 20
Fruits&Veg 30
Java में डेटा क्लीनिंग

मानकीकरण के चरण

  1. मानक श्रेणियाँ परिभाषित करें
    FRUITS_AND_VEGETABLES
    DAIRY
    UNCATEGORIZED
    
  2. विविधताओं को मानक श्रेणियों से मैप करें
    Fruits & Vegetables -> FRUITS_AND_VEGETABLES
    fruits & veg -> FRUITS_AND_VEGETABLES
    Fruits&Veg -> FRUITS_AND_VEGETABLES
    
  3. विश्लेषण करें - जैसे, FRUITS_AND_VEGETABLES जैसी श्रेणियों की गिनती करें
Java में डेटा क्लीनिंग

enum से मानक श्रेणियाँ परिभाषित करें

// Define standard categories
public enum ProductCategory {
    FRUITS_AND_VEGETABLES,
    DAIRY,
    UNCATEGORIZED;
}

// Example category
System.out.println(ProductCategory.FRUITS_AND_VEGETABLES);
FRUITS_AND_VEGETABLES
Java में डेटा क्लीनिंग

कच्ची श्रेणियों को मानक श्रेणियों से मैप करें

import java.util.HashMap;
import java.util.Map;
// Define map of raw category variations to standard categories
Map<String, ProductCategory> rawCategories = new HashMap<>();
// Variation 1: Fruits & Vegetables
rawCategories.put("Fruits & Vegetables", ProductCategory.FRUITS_AND_VEGETABLES);
// Variation 2: fruits & veg
rawCategories.put("fruits & veg", ProductCategory.FRUITS_AND_VEGETABLES);
// Variation 3: Fruits&Veg
rawCategories.put("Fruits&Veg", ProductCategory.FRUITS_AND_VEGETABLES);
Java में डेटा क्लीनिंग

विविधताओं को मानक श्रेणियों से मैप करें: आउटपुट

System.out.println(rawCategories.get("fruits & veg")); // Get standard category
FRUITS_AND_VEGETABLES

 

rawCategories: केवल विज़ुअलाइज़ेशन हेतु; कॉलम Map में key-value जोड़े दर्शाते हैं

कच्ची श्रेणी मानक श्रेणी
Fruits & Vegetables FRUITS_AND_VEGETABLES
fruits & veg FRUITS_AND_VEGETABLES
Fruits&Veg FRUITS_AND_VEGETABLES
Java में डेटा क्लीनिंग

अज्ञात श्रेणियों को संभालना

String unknownCategory = "Mystery Category";

// Return UNCATEGORIZED if category not found in rawCategories
ProductCategory category = rawCategories.getOrDefault(
        unknownCategory, ProductCategory.UNCATEGORIZED);

System.out.println("Unknown: " + category);
Mystery Category: UNCATEGORIZED
कच्ची श्रेणी मानक श्रेणी
Mystery Category UNCATEGORIZED
Java में डेटा क्लीनिंग

मैपिंग को immutable बनाना

import java.util.Collections;
Map<String, ProductCategory> categories =
        Collections.unmodifiableMap(rawCategories); // Create immutable view

try { categories.put("new", ProductCategory.DAIRY); // Will throw exception } catch (UnsupportedOperationException e) { System.out.println("Cannot modify immutable map"); }
Cannot modify immutable map
Java में डेटा क्लीनिंग

हमारे डेटासेट से श्रेणियाँ निकालें

// Extract category and quantity from our grocery inventory dataset
Map<String, Integer> rawData = 
        Map.of("Fruits & Vegetables", 10, 
               "fruits & veg", 20,
               "Fruits&Veg", 30);

rawData: हमारी grocery इन्वेंटरी डेटासेट से निकाला गया मैपिंग

कच्ची श्रेणी मात्रा
Fruits & Vegetables 10
fruits & veg 20
Fruits&Veg 30
Java में डेटा क्लीनिंग

मानक श्रेणी खोजें (lookup)

Map<ProductCategory, Integer> stockByCategory =
        new EnumMap<ProductCategory, Integer>(ProductCategory.class);

rawData.forEach((raw, quantity) -> // Lookup standard category in categories and sum quantities stockByCategory.merge(categories.get(raw), quantity, Integer::sum));

categories: मानक श्रेणी खोजने हेतु उपयोग की गई मैपिंग

कच्ची श्रेणी मानक श्रेणी
Fruits & Vegetables FRUITS_AND_VEGETABLES
fruits & veg FRUITS_AND_VEGETABLES
Fruits&Veg FRUITS_AND_VEGETABLES
Java में डेटा क्लीनिंग

मानक श्रेणी पर योग करें

System.out.println(stockByCategory);
{FRUITS_AND_VEGETABLES=60}

 

stockByCategory: rawData को categoryMap में lookup करने के बाद की मैपिंग

मानक श्रेणी मात्रा
FRUITS_AND_VEGETABLES 60
Java में डेटा क्लीनिंग

मानक श्रेणी द्वारा ग्रुपिंग: संक्षेप

1) हमारे डेटासेट से श्रेणी/मात्रा का rawData मैप निकालें (नीचे स्निपेट)

कच्ची श्रेणी मात्रा
Fruits & Vegetables 10

2) मानक श्रेणियों के lookup के लिए categories बनाएँ (नीचे स्निपेट)

कच्ची श्रेणी मानक श्रेणी
Fruits & Vegetables FRUITS_AND_VEGETABLES

3) rawData को categories में lookup कर stockByCategory निकालें (नीचे स्निपेट)

मानक श्रेणी मात्रा
FRUITS_AND_VEGETABLES 60
Java में डेटा क्लीनिंग

सबकुछ एक साथ

Key Imports

import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
  • मानक श्रेणियों के लिए enum बनाएँ
  • HashMap से श्रेणी मैपिंग बनाएँ
  • Collections.unmodifiableMap से मैपिंग immutable बनाएँ
  • अज्ञात श्रेणियों को .getOrDefault() से संभालें
  • मानकीकृत श्रेणियों पर .merge() से समूहित करें
Java में डेटा क्लीनिंग

अभ्यास करते हैं!

Java में डेटा क्लीनिंग

Preparing Video For Download...