Text2Onto¶
BaseText2OntoDataset¶
- class ontolearner.base.BaseText2OntoDataset[source]¶
Bases:
ABCBase class for textual datasets.
Initialize the BaseTextualDataset class.
- data_full_name: str = None¶
- get_statistics(split: str) Dict[str, Any]¶
Get statistics about the dataset split
- get_terms_by_document(doc_id: int | str, split: str) List[Term]¶
Get terms associated with a specific document
- load(path: Path) dict[str, TextualData]¶
Load the dataset from the given path.
SyntheticGenerator¶
- class ontolearner.text2onto.synthesizer.SyntheticGenerator(batch_size: int = 50, worker_count: int = 3, verbalizer: Any | None = None, model_id: str = 'Qwen/Qwen2.5-0.5B-Instruct', token: str = '', device: str = 'auto', max_new_tokens: int = 256, temperature: float = 0.2, top_p: float = 0.9, repetition_penalty: float = 1.05, generation_batch_size: int | None = None, max_input_length: int = 2048, load_model: bool = True, extraction_method: str = 'rule-based', openai_api_key: str | None = None, openai_model: str = 'gpt-4o-mini', is_chat_model: bool = True, min_pseudo_sentences: int = 5)[source]¶
Bases:
ABCGenerate synthetic Text2Onto documents using a direct transformers backend.
- generate(ontological_data: Any, topic: str) SyntheticText2OntoData¶
- generate_documents(pseudo_sentences: List[PseudoSentence], topic: str, child_to_parent: Dict[str, List[str]], relation_context: Dict[str, List[str]])¶
- generate_pseudo_sentences(parent_to_child: Dict[str, List]) List[PseudoSentence]¶
- load(model_id: str | None = None) None¶
- worker(row: Dict[str, Any], topic: str, child_to_parent: Dict[str, List[str]], relation_context: Dict[str, List[str]])¶
SyntheticDataSplitter¶
- class ontolearner.text2onto.splitter.SyntheticDataSplitter(synthetic_data: SyntheticText2OntoData, onto_name: str)[source]¶
Bases:
object- assign_types_with_propagation(split_name, split_targets, split_docs_targets, split_types, split_docs, unassigned_types, unassigned_docs, assigned_docs)¶
- create_train_val_test_splits(split_targets, split_docs_targets)¶
- generate_split_artefacts(split_docs)¶
- set_train_val_test_sizes(train_percentage: float = 0.8, val_percentage: float = 0.1, test_percentage: float = 0.1)¶
- split_fine_grained(doc_ids)¶
Build a single split bundle containing only: - docs - terms - types - terms2docs - terms2types
- train_test_val_split(train: float = 0.8, val: float = 0.1, test: float = 0.1)¶
- Returns:
train_split, val_split, test_split
Each split is a dict with keys: - “docs” - “terms” - “types” - “terms2docs” - “terms2types”
TaxonomyBatchifier¶
- class ontolearner.text2onto.batchifier.TaxonomyBatchifier(parent_to_child: Dict[str, List], batch_size: int)[source]¶
Bases:
ABC- batchify() List[PseudoSentence]¶