Source code for alts.modules.query.selection_criteria
#Version 1.1.1 conform as of 29.11.2024
"""
| *alts.modules.query.selection_criteria*
| :doc:`Core Module </core/query/selection_criteria>`
"""
from alts.core.query.selection_criteria import SelectionCriteria
import numpy as np
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from typing import Optional, Tuple
from nptyping import NDArray, Number, Shape
[docs]
class NoSelectionCriteria(SelectionCriteria):
"""
NoSelectionCriteria()
| **Description**
| Gives all queries a score of 0.
"""
[docs]
def query(self, queries) -> 'Tuple[NDArray[Shape["query_nr, ... query_dims"], Number], NDArray[Shape["query_nr, [query_score]"], Number]]': # type: ignore
"""
query(self, queries) -> (queries, scores)
| **Description**
| Gives all queries a score of 0.
:param queries: A list of queries to evaluate
:type queries: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
:return: queries, associated scores (all zeros)
:rtype: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_, Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
"""
scores = np.zeros((queries.shape[0],1))
return queries, scores
[docs]
class AllSelectionCriteria(SelectionCriteria):
"""
AllSelectionCriteria()
| **Description**
| Gives all queries a score of 1.
"""
[docs]
def query(self, queries) -> 'Tuple[NDArray[Shape["query_nr, ... query_dims"], Number], NDArray[Shape["query_nr, [query_score]"], Number]]': # type: ignore
"""
query(self, queries) -> (queries, scores)
| **Description**
| Gives all queries a score of 1.
:param queries: A list of queries to evaluate
:type queries: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
:return: queries, associated scores (all ones)
:rtype: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_, Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
"""
scores = np.ones((queries.shape[0],1))
return queries, scores
[docs]
class RandomSelectionCriteria(SelectionCriteria):
"""
RandomSelectionCriteria()
| **Description**
| Gives each query a random score.
"""
[docs]
def query(self, queries) -> 'Tuple[NDArray[Shape["query_nr, ... query_dims"], Number], NDArray[Shape["query_nr, [query_score]"], Number]]': # type: ignore
"""
query(self, queries) -> (queries, scores)
| **Description**
| Gives each query a random score from 0 to 1.
:param queries: A list of queries to evaluate
:type queries: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
:return: queries, associated scores
:rtype: Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_, Iterable over `NDArrays <https://numpy.org/doc/stable/reference/arrays.ndarray.html>`_
"""
scores = np.random.uniform(0,1,size=(queries.shape[0],1))
return queries, scores