[crawler]

This commit is contained in:
LASTA_DEV01\lasta
2026-05-08 17:41:15 +09:00
commit 4158789869
54 changed files with 4355 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
from crawler_platform.app.config.loader import ProjectConfig, SourceConfig
from crawler_platform.app.domains.perfume.extractor import PerfumeRuleBasedExtractor
def test_perfume_rule_based_extractor_maps_claims():
config = ProjectConfig(
project_name="perfume_subscription",
domain="perfume",
target_entities=["Perfume", "Brand", "Note"],
fields=["name", "brand", "top_notes", "middle_notes", "base_notes"],
sources=[SourceConfig(name="official_brand_site", trust_level=0.95)],
ontology={"aliases": {"top_notes": "hasTopNote"}},
)
text = """
Neroli Summer Eau de Parfum
Brand: Example Maison
Top notes: Bergamot, Neroli
Middle notes: Jasmine
Base notes: Musk
A fresh daily perfume for summer office wear. Price $89.
"""
bundle = PerfumeRuleBasedExtractor().extract(text, config)
predicates = {claim.predicate for claim in bundle.claims}
entity_names = {entity.name for entity in bundle.entities}
assert "Neroli Summer Eau de Parfum" in entity_names
assert "Bergamot" in entity_names
assert "hasTopNote" in predicates
assert "suitableForSeason" in predicates
assert "hasPrice" in predicates