Text2Onto

BaseText2OntoDataset

class ontolearner.base.BaseText2OntoDataset[source]

Bases: ABC

Base 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: ABC

Generate 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]