部分受限预测数据集
- class PartiallyRestrictedPredictionDataset(*, heads: Tensor | Collection[int] | int | None = None, relations: Tensor | Collection[int] | int | None = None, tails: Tensor | Collection[int] | int | None = None, target: Literal['head', 'relation', 'tail'] = 'tail')[source]
-
用于评分一些链接的数据集。
“一些链接”被定义为
\[\mathcal{T}_{interest} = \mathcal{E}_{h} \times \mathcal{R}_{r} \times \mathcal{E}_{t}\]注意
目前,目标,即在模型中利用其预测方法的位置,必须是实体/关系的完整集合。
示例 .. 代码块:: python
# 训练模型;注意:需要更多的epochs才能做有用的事情 ;-) from pykeen.pipeline import pipeline result = pipeline(dataset=”nations”, model=”mure”, training_kwargs=dict(num_epochs=0))
# 创建预测数据集,其中头部实体来自一组欧洲国家, # 并且关系与旅游相关 from pykeen.predict import PartiallyRestrictedPredictionDataset heads = result.training.entities_to_ids(entities=[“netherlands”, “poland”, “uk”]) relations = result.training.relations_to_ids(relations=[“reltourism”, “tourism”, “tourism3”]) dataset = PartiallyRestrictedPredictionDataset(heads=heads, relations=relations)
# 计算这个受限集合的所有分数,并保留k=3个最大的 from pykeen.predict import consume_scores, TopKScoreConsumer consumer = TopKScoreConsumer(k=3) consume_scores(result.model, ds, consumer) score_pack = consumer.finalize()
# 添加标签 df = result.training.tensor_to_df(score_pack.result, score=score_pack.scores)
初始化受限预测数据集。
- Parameters:
heads (Tensor | Collection[int] | int | None) – 受限的头实体
relations (Tensor | Collection[int] | int | None) – 受限的关系
tails (Tensor | Collection[int] | int | None) – 受限的尾部
target (Literal['head', 'relation', 'tail']) – 预测目标
- Raises:
NotImplementedError – 如果目标位置受限,或任何非目标位置不受限