mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Add a Cite Us section to the README with BibTeX citation info, and align it with docs/citation.md (author/organization: Semantica, 2026). Update LICENSE and docs/project-license.md copyright holder to Semantica, and replace the stale Hawksight-AI GitHub org slug with semantica-agi across READMEs, plugin manifests, cookbook notebooks, and GitHub templates.
250 lines
6.6 KiB
Plaintext
250 lines
6.6 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"[](https://colab.research.google.com/github/semantica-agi/semantica/blob/main/cookbook/advanced/01_Advanced_Extraction.ipynb)\n",
|
|
"\n",
|
|
"# Advanced Extraction\n",
|
|
"\n",
|
|
"## Overview\n",
|
|
"\n",
|
|
"This notebook demonstrates advanced semantic extraction using EventDetector, CoreferenceResolver, TripletExtractor, SemanticAnalyzer, SemanticNetworkExtractor, LLMEnhancer, and ExtractionValidator.\n",
|
|
"\n",
|
|
"\n",
|
|
"**Documentation**: [API Reference](https://semantica.readthedocs.io/reference/semantic_extract/)\n",
|
|
"\n",
|
|
"### Learning Objectives\n",
|
|
"\n",
|
|
"- Use EventDetector to detect events\n",
|
|
"- Use CoreferenceResolver to resolve coreferences\n",
|
|
"- Use TripletExtractor to extract RDF triplets\n",
|
|
"- Use SemanticAnalyzer for semantic analysis\n",
|
|
"- Use SemanticNetworkExtractor to extract semantic networks\n",
|
|
"- Use LLMEnhancer for LLM-based enhancement\n",
|
|
"- Use ExtractionValidator to validate extractions\n",
|
|
"\n",
|
|
"## Installation\n",
|
|
"\n",
|
|
"Install Semantica from PyPI:\n",
|
|
"\n",
|
|
"```bash\n",
|
|
"pip install semantica\n",
|
|
"# Or with all optional dependencies:\n",
|
|
"pip install semantica[all]\n",
|
|
"```\n",
|
|
"\n",
|
|
"---\n",
|
|
"\n",
|
|
"## Workflow: Event Detection → Coreference Resolution → Triplet Extraction → Semantic Analysis → Network Extraction → LLM Enhancement → Validation\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"!pip install -q semantica"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"from semantica.semantic_extract import (\n",
|
|
" EventDetector, CoreferenceResolver, TripletExtractor,\n",
|
|
" SemanticAnalyzer, SemanticNetworkExtractor, LLMEnhancer, ExtractionValidator\n",
|
|
")\n",
|
|
"\n",
|
|
"text = \"Apple Inc. was founded by Steve Jobs in 1976. The company is now led by Tim Cook.\"\n",
|
|
"\n",
|
|
"event_detector = EventDetector()\n",
|
|
"events = event_detector.detect_events(text)\n",
|
|
"\n",
|
|
"print(f\"Detected {len(events)} events\")\n",
|
|
"for event in events[:3]:\n",
|
|
" print(f\" Event: {event.event_type} - {event.text[:50]}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 2: Coreference Resolution\n",
|
|
"\n",
|
|
"Resolve coreferences in text.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"coreference_resolver = CoreferenceResolver()\n",
|
|
"\n",
|
|
"coreferences = coreference_resolver.resolve(text)\n",
|
|
"\n",
|
|
"print(f\"Resolved {len(coreferences)} coreference chains\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 3: Triplet Extraction\n",
|
|
"\n",
|
|
"Extract RDF triplets.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"triplet_extractor = TripletExtractor()\n",
|
|
"\n",
|
|
"triplets = triplet_extractor.extract_triplets(text)\n",
|
|
"\n",
|
|
"print(f\"Extracted {len(triplets)} triplets\")\n",
|
|
"for triplet in triplets[:3]:\n",
|
|
" print(f\" ({triplet.get('subject', '')}, {triplet.get('predicate', '')}, {triplet.get('object', '')})\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 4: Semantic Analysis\n",
|
|
"\n",
|
|
"Perform semantic analysis.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"semantic_analyzer = SemanticAnalyzer()\n",
|
|
"\n",
|
|
"semantic_roles = semantic_analyzer.analyze_semantic_roles(text)\n",
|
|
"\n",
|
|
"print(f\"Analyzed semantic roles: {len(semantic_roles)}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 5: Semantic Network Extraction\n",
|
|
"\n",
|
|
"Extract semantic networks.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"semantic_network_extractor = SemanticNetworkExtractor()\n",
|
|
"\n",
|
|
"semantic_network = semantic_network_extractor.extract_network(text)\n",
|
|
"\n",
|
|
"print(f\"Extracted semantic network with {len(semantic_network.get('nodes', []))} nodes\")\n",
|
|
"print(f\"Edges: {len(semantic_network.get('edges', []))}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 6: LLM Enhancement\n",
|
|
"\n",
|
|
"Enhance extractions using LLM.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"llm_enhancer = LLMEnhancer()\n",
|
|
"\n",
|
|
"enhanced_extractions = llm_enhancer.enhance_extractions(events, text)\n",
|
|
"\n",
|
|
"print(f\"Enhanced {len(enhanced_extractions)} extractions\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Step 7: Extraction Validation\n",
|
|
"\n",
|
|
"Validate extractions.\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"extraction_validator = ExtractionValidator()\n",
|
|
"\n",
|
|
"validation_result = extraction_validator.validate(events, text)\n",
|
|
"\n",
|
|
"print(f\"Extraction validation:\")\n",
|
|
"print(f\" Valid: {validation_result.valid}\")\n",
|
|
"print(f\" Confidence: {validation_result.confidence:.3f}\")\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Summary\n",
|
|
"\n",
|
|
"You've learned advanced extraction capabilities:\n",
|
|
"\n",
|
|
"- **EventDetector**: Event detection and classification\n",
|
|
"- **CoreferenceResolver**: Coreference resolution\n",
|
|
"- **TripletExtractor**: RDF triplet extraction\n",
|
|
"- **SemanticAnalyzer**: Semantic analysis and role labeling\n",
|
|
"- **SemanticNetworkExtractor**: Semantic network extraction\n",
|
|
"- **LLMEnhancer**: LLM-based extraction enhancement\n",
|
|
"- **ExtractionValidator**: Extraction validation\n"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.11.9"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|