mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
5.5 KiB
5.5 KiB
In [ ]:
!pip install semantica
In [ ]:
from semantica.kg import GraphBuilder
from semantica.semantic_extract import NERExtractor, RelationExtractor
builder = GraphBuilder()
ner_extractor = NERExtractor()
relation_extractor = RelationExtractor()
text = "Apple Inc. is a technology company. Tim Cook is the CEO of Apple Inc. Apple Inc. is headquartered in Cupertino, California."
entities_list = ner_extractor.extract(text)
relationships_list = relation_extractor.extract(text, entities_list)
entities = []
for i, entity in enumerate(entities_list[:5], 1):
entities.append({
"id": f"e{i}",
"type": entity.label,
"name": entity.text,
"properties": {}
})
relationships = []
for i, rel in enumerate(relationships_list[:3], 1):
relationships.append({
"source": f"e{1}",
"target": f"e{i+1}",
"type": rel.predicate,
"properties": {}
})
knowledge_graph = builder.build(entities, relationships)
print(f"Built knowledge graph with {len(knowledge_graph.get('entities', []))} entities")
print(f"Relationships: {len(knowledge_graph.get('relationships', []))}")In [ ]:
from semantica.kg import EntityResolver
entity_resolver = EntityResolver()
resolved_entities = entity_resolver.resolve_entities(entities)
print(f"Original entities: {len(entities)}")
print(f"Resolved entities: {len(resolved_entities)}")In [ ]:
from semantica.deduplication import DuplicateDetector, EntityMerger, MergeStrategy
# Detect duplicates
detector = DuplicateDetector(similarity_threshold=0.8)
duplicate_groups = detector.detect_duplicate_groups(knowledge_graph.get('entities', []))
# Merge duplicates
merger = EntityMerger()
merge_operations = merger.merge_duplicates(
knowledge_graph.get('entities', []),
strategy=MergeStrategy.KEEP_MOST_COMPLETE
)
deduplicated_entities = [op.merged_entity for op in merge_operations]
print(f"Original entities: {len(knowledge_graph.get('entities', []))}")
print(f"Deduplicated entities: {len(deduplicated_entities)}")