TriplesFactory
- class TriplesFactory(mapped_triples: Tensor | ndarray, entity_to_id: Mapping[str, int], relation_to_id: Mapping[str, int], create_inverse_triples: bool = False, metadata: Mapping[str, Any] | None = None, num_entities: int | None = None, num_relations: int | None = None)[源代码]
-
根据三元组的路径创建实例。
创建三元组工厂。
- Parameters:
- Raises:
ValueError – 如果明确提供的实体或关系的数量与标签映射中给出的数量不匹配
属性摘要
返回从实体ID到标签的映射。
返回从实体标签到ID的映射。
返回从关系ID到标签的映射。
返回从关系标签到ID的映射。
标记的三元组,一个3列的矩阵,其中每行分别是头标签、关系标签和尾标签。
方法总结
clone_and_exchange_triples(mapped_triples[, ...])创建一个新的三元组工厂,共享除三元组之外的所有内容。
entities_to_ids(entities)将实体标准化为ID。
entity_word_cloud([top])在Jupyter笔记本中基于每个实体的出现频率制作词云。
from_labeled_triples(triples, *[, ...])从基于标签的三元组创建一个新的三元组工厂。
from_path(路径, *[, 创建反向三元组, ...])从存储在文件中的三元组创建一个新的三元组工厂。
get_inverse_relation_id(relation)获取给定关系的逆关系标识符。
get_mask_for_relations(relations[, invert])获取具有给定关系的三元组的布尔掩码。
label_triples(triples[, ...])将基于ID的三元组转换为基于标签的三元组。
map_triples(triples)将基于标签的三元组转换为基于ID的三元组。
new_with_restriction([entities, relations, ...])创建一个新的三元组工厂,仅保留给定的实体和关系,但保留ID映射。
relation_word_cloud([top])在Jupyter笔记本中基于每个关系的出现频率制作词云。
relations_to_ids(relations)将关系标准化为ID。
tensor_to_df(tensor, **kwargs)获取一个三元组的张量并创建一个带有标签的pandas数据框。
将此工厂作为核心工厂返回。
to_path_binary(path)将三元组工厂保存到路径中(PyTorch的.pt二进制格式)。
属性文档
- entity_id_to_label
返回从实体ID到标签的映射。
- entity_to_id
返回从实体标签到ID的映射。
- relation_id_to_label
返回从关系ID到标签的映射。
- relation_to_id
返回从关系标签到ID的映射。
- triples
标记的三元组,一个3列的矩阵,其中每行分别是头标签、关系标签和尾标签。
方法文档
- clone_and_exchange_triples(mapped_triples: Tensor, extra_metadata: dict[str, Any] | None = None, keep_metadata: bool = True, create_inverse_triples: bool | None = None) TriplesFactory[source]
创建一个新的三元组工厂,共享除三元组之外的所有内容。
注意
我们使用浅拷贝。
- Parameters:
- Returns:
新工厂。
- Return type:
- entities_to_ids(entities: Collection[int] | Collection[str]) Collection[int][source]
将实体标准化为ID。
- Parameters:
entities (Collection[int] | Collection[str]) – 实体的整数标识符集合或实体的字符串标签集合(将自动转换)
- Returns:
实体的整数标识符
- Raises:
ValueError – 如果传递的
entities是字符串标签 并且这个三元组工厂没有实体标签到标识符的映射 (例如,它只是一个基础的CoreTriplesFactory实例)- Return type:
- entity_word_cloud(top: int | None = None)[来源]
在Jupyter笔记本中基于每个实体的出现频率制作词云。
- Parameters:
top (int | None) – 要显示的顶部实体的数量。默认为100。
- Returns:
用于Jupyter笔记本的词云对象
警告
此函数需要
wordcloud包。使用pip install pykeen[wordcloud]来安装它。
- classmethod from_labeled_triples(triples: ndarray, *, create_inverse_triples: bool = False, entity_to_id: Mapping[str, int] | None = None, relation_to_id: Mapping[str, int] | None = None, compact_id: bool = True, filter_out_candidate_inverse_relations: bool = True, metadata: dict[str, Any] | None = None) TriplesFactory[source]
从基于标签的三元组创建一个新的三元组工厂。
- Parameters:
triples (ndarray) – 形状: (n, 3), 数据类型: str 基于标签的三元组。
create_inverse_triples (bool) – 是否创建反向三元组。
entity_to_id (Mapping[str, int] | None) – 从实体标签到ID的映射。如果为None,则从三元组创建一个新的映射。
relation_to_id (Mapping[str, int] | None) – 从关系标签到ID的映射。如果为None,则从三元组创建一个新的映射。
compact_id (bool) – 是否压缩ID以使ID连续。
filter_out_candidate_inverse_relations (bool) – 是否移除带有反向后缀关系的三元组。
- Returns:
一个新的三元组工厂。
- Return type:
- classmethod from_path(path: str | Path | TextIO, *, create_inverse_triples: bool = False, entity_to_id: Mapping[str, int] | None = None, relation_to_id: Mapping[str, int] | None = None, compact_id: bool = True, metadata: dict[str, Any] | None = None, load_triples_kwargs: Mapping[str, Any] | None = None, **kwargs) TriplesFactory[source]
从存储在文件中的三元组创建一个新的三元组工厂。
- Parameters:
create_inverse_triples (bool) – 是否创建反向三元组。
entity_to_id (Mapping[str, int] | None) – 从实体标签到ID的映射。如果为None,则从三元组创建一个新的映射。
relation_to_id (Mapping[str, int] | None) – 从关系标签到ID的映射。如果为None,则从三元组创建一个新的映射。
compact_id (bool) – 是否压缩ID以使ID连续。
metadata (dict[str, Any] | None) – 任意键/值对,用于存储为三元组工厂的元数据。不要包含
path作为键,因为它会自动从该函数的path关键字参数中获取。load_triples_kwargs (Mapping[str, Any] | None) – 可选的传递给
load_triples()的关键字参数。 可能包括delimiter或column_remapping。kwargs – 额外的基于关键字的参数,这些参数被忽略。
- Returns:
一个新的三元组工厂。
- Return type:
- get_mask_for_relations(relations: Collection[int] | Collection[str], invert: bool = False) Tensor[来源]
获取具有给定关系的三元组的布尔掩码。
- Parameters:
关系 (Collection[int] | Collection[str])
invert (bool)
- Return type:
- label_triples(triples: Tensor, unknown_entity_label: str = '[UNKNOWN]', unknown_relation_label: str | None = None) ndarray[source]
将基于ID的三元组转换为基于标签的三元组。
- new_with_restriction(entities: None | Collection[int] | Collection[str] = None, relations: None | Collection[int] | Collection[str] = None, invert_entity_selection: bool = False, invert_relation_selection: bool = False) TriplesFactory[来源]
创建一个新的三元组工厂,仅保留给定的实体和关系,但保留ID映射。
- Parameters:
entities (None | Collection[int] | Collection[str]) – 感兴趣的实体。如果为None,则默认为所有实体。
relations (None | Collection[int] | Collection[str]) – 感兴趣的关系。如果为None,则默认为所有关系。
invert_entity_selection (bool) – 是否反转实体选择,即选择那些不包含提供实体的三元组。
invert_relation_selection (bool) – 是否反转关系选择,即选择那些不包含提供关系的三元组。
- Returns:
一个新的三元组工厂,它只包含感兴趣的实体和关系的三元组子集。标签到ID的映射没有被修改。
- Return type:
- relation_word_cloud(top: int | None = None)[source]
在Jupyter笔记本中基于每个关系的出现频率制作词云。
- Parameters:
top (int | None) – 要显示的前几个关系的数量。默认为100。
- Returns:
Jupyter笔记本的词云对象
警告
此函数需要
wordcloud包。使用pip install pykeen[wordcloud]来安装它。
- relations_to_ids(relations: Collection[int] | Collection[str]) Collection[int][source]
将关系标准化为ID。
- Parameters:
relations (Collection[int] | Collection[str]) – 一个包含关系整数标识符或关系字符串标签的集合(将自动转换)
- Returns:
关系的整数标识符
- Raises:
ValueError – 如果传递的
relations是字符串标签 并且这个三元组工厂没有关系标签到标识符的映射 (例如,它只是一个基础的CoreTriplesFactory实例)- Return type:
- tensor_to_df(tensor: Tensor, **kwargs: Tensor | ndarray | Sequence) DataFrame[source]
获取一个三元组的张量并创建一个带有标签的pandas数据框。
- to_core_triples_factory() CoreTriplesFactory[源代码]
将此工厂作为核心工厂返回。
- Return type: