code: def load_onet20k(
      check_md5hash=False,
      clean_unseen=True,
      split_test_into_top_bottom=True,
      split_threshold=0.1,
  ):
      """Load the O*NET20K dataset.
  
      O*NET20K was originally proposed in :cite:`pai2021learning`.
      It is a subset  of `O*NET <https://www.onetonline.org/>`_, a dataset that includes job descriptions, skills
      and labeled, binary relations between such concepts. Each triple is labeled with a numeric value that
      indicates the importance of that link.
  
      O*NET20K dataset is loaded from file if it exists at the ``AMPLIGRAPH_DATA_HOME`` location.
      If ``AMPLIGRAPH_DATA_HOME`` is not set, the default  ``~/ampligraph_datasets`` is checked.
      If the dataset is not found at either location, it is downloaded and placed in ``AMPLIGRAPH_DATA_HOME``
      or ``~/ampligraph_datasets``.
  
      This dataset is divided in three splits:
  
      - `train`: 461,932 triples
      - `valid`: 850 triples
      - `test`: 2,000 triples
  
      Each triple in these splits is associated to a numeric value which represents the importance/relevance of
      the link.
  
      ========= ========= ======== =========== ========== ===========
      Dataset   Train     Valid    Test        Entities   Relations
      ========= ========= ======== =========== ========== ===========
      ONET*20K  461,932    850     2,000       20,643     19
      ========= ========= ======== =========== ========== ===========
  
      Parameters
      ----------
      check_md5hash: bool
          If `True` check the md5hash of the files (default: `False`).
      clean_unseen: bool
          If `True`, filters triples in validation and test sets that include entities not present in the training
          set.
  
      split_test_into_top_bottom: bool
          Splits the test set by numeric values and returns `test_top_split` and `test_bottom_split` by splitting based
          on sorted numeric values and returning top and bottom k% triples, where `k` is specified by `split_threshold`
          argument.
  
      split_threshold: float
          Specifies the top and bottom percentage of triples to return.
  
      Returns
      -------
      splits: dict
          The dataset splits: `{'train': train,
          'valid': valid,
          'test': test,
          'test_topk': test_topk,
          'test_bottomk': test_bottomk,
          'train_numeric_values': train_numeric_values,
          'valid_numeric_values':valid_numeric_values,
          'test_numeric_values': test_numeric_values,
          'test_topk_numeric_values': test_topk_numeric_values,
          'test_bottomk_numeric_values': test_bottomk_numeric_values}`.
          Each ``*_numeric_values`` split contains numeric values associated to the corresponding dataset split and
          is a ndarray of shape (n).
          Each dataset split is a ndarray of shape (n,3).
          The ``*_topk`` and ``*_bottomk`` splits are only returned when ``split_test_into_top_bottom=True`` and contain
          the triples ordered by highest/lowest numeric edge value associated. These are typically used at evaluation time
          aiming at observing a model that assigns the highest rank possible to the `_topk` and the lowest possible to
          the `_bottomk`.
  
      Example
      -------
      >>> from ampligraph.datasets import load_onet20k
      >>> X = load_onet20k()
      >>> X["train"][0]
      ['Job_27-1021.00' 'has_ability_LV' '1.A.1.b.2']
      >>> X['train_numeric_values'][0]
      [0.6257143]
      """
      onet20k = DatasetMetadata(
          dataset_name="onet20k",
          filename="onet20k.zip",
          url="https://s3-eu-west-1.amazonaws.com/ampligraph/datasets/onet20k.zip",
          train_name="train.tsv",
          valid_name="valid.tsv",
          test_name="test.tsv",
          train_checksum="516220427a9a18516fd7a804a6944d64",
          valid_checksum="d7806951ac3d916c5c5a0304eea064d2",
          test_checksum="e5baec19037cb0bddc5a2fe3c0f4445a",
      )
  
      dataset = _load_dataset(
          onet20k, data_home=None, check_md5hash=check_md5hash
      )
  
      if clean_unseen:
          dataset = _clean_data(dataset)
  
      return generate_focusE_dataset_splits(
          dataset, split_test_into_top_bottom, split_threshold
      )
  
imports: import hashlib
  import json
  import logging
  import os
  import urllib
  import zipfile
  from collections import namedtuple
  from pathlib import Path
  import numpy
  import pandas
label_desc: Use image node_id 22 for calling a global function with example usage: load_onet20k(check_md5hash, clean_unseen, split_test_into_top_bottom, split_threshold) and returns: generate_focusE_dataset_splits