extract_entity_relation_mapper¶
Extracts entities and relations from text to build a knowledge graph.
Identifies entities based on specified types and extracts their names, types, and descriptions.
Identifies relationships between the entities, including source and target entities, relationship descriptions, keywords, and strength scores.
Uses a Hugging Face tokenizer and a predefined prompt template to guide the extraction process.
Outputs entities and relations in a structured format, using delimiters for separation.
Caches the results in the sample's metadata under the keys 'entity' and 'relation'.
Supports multiple retries and gleaning to ensure comprehensive extraction.
The default entity types include 'organization', 'person', 'geo', and 'event'.
从文本中提取实体和关系以构建知识图谱。
根据指定的类型识别实体,并提取它们的名称、类型和描述。
识别实体之间的关系,包括源实体和目标实体、关系描述、关键词和强度分数。
使用 Hugging Face 分词器和预定义的提示模板来指导提取过程。
以结构化格式输出实体和关系,使用分隔符进行分隔。
将结果缓存在样本的元数据中,键名为 'entity' 和 'relation'。
支持多次重试和搜集以确保全面提取。
默认的实体类型包括 'organization'、'person'、'geo' 和 'event'。
Type 算子类型: mapper
Tags 标签: cpu, api, text
🔧 Parameter Configuration 参数配置¶
name 参数名 |
type 类型 |
default 默认值 |
desc 说明 |
---|---|---|---|
|
<class 'str'> |
|
API model name. |
|
typing.List[str] |
|
Pre-defined entity types for knowledge graph. |
|
<class 'str'> |
|
The key name to store the entities in the meta field. It's "entity" in default. |
|
<class 'str'> |
|
The field name to store the relations between entities. It's "relation" in default. |
|
typing.Optional[str] |
|
URL endpoint for the API. |
|
typing.Optional[str] |
|
Path to extract content from the API response. Defaults to 'choices.0.message.content'. |
|
typing.Optional[str] |
|
The template of input prompt. |
|
typing.Optional[str] |
|
Delimiter to separate items in outputs. |
|
typing.Optional[str] |
|
Delimiter to separate records in outputs. |
|
typing.Optional[str] |
|
To mark the end of the output. |
|
typing.Annotated[int, Ge(ge=0)] |
|
the extra max num to call LLM to glean entities and relations. |
|
typing.Optional[str] |
|
the prompt for gleaning entities and relations. |
|
typing.Optional[str] |
|
the prompt to determine whether to stop gleaning. |
|
typing.Optional[str] |
|
Regular expression for parsing entity record. |
|
typing.Optional[str] |
|
Regular expression for parsing relation record. |
|
typing.Annotated[int, Gt(gt=0)] |
|
The number of retry attempts when there is an API call error or output parsing error. |
|
<class 'bool'> |
|
If drop the text in the output. |
|
typing.Dict |
|
Parameters for initializing the API model. |
|
typing.Dict |
|
Extra parameters passed to the API call. e.g {'temperature': 0.9, 'top_p': 0.95} |
|
|
Extra keyword arguments. |
📊 Effect demonstration 效果演示¶
test_default¶
ExtractEntityRelationMapper(api_model='qwen2.5-72b-instruct')
📥 input data 输入数据¶
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟...
Show more 展开更多 (935 more chars)
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟弟、相夷......求你照顾他一阵...... △李相显还想再说什么已气绝而亡,小相夷唤着哥哥大哭,单孤刀愕然看着手里的玉佩有点不知所措。 △话刚说完,哐当一声破庙门倒进来,几个其他少年乞丐进来。少年乞丐老大:这地儿不错,诶,你俩,出去! △单孤刀把小相夷护在身后,抓住靠在墙边的木棍。单孤刀:这儿,是我,和我弟弟的。 乞丐们要抢李相夷的馒头,小李相夷哭着死死护住自馒头不放。 乞丐甲野蛮地抢:给我拿来! 小单孤刀:放开他! △单孤刀用力撞向几个乞丐,救下小李相夷。乞丐甲:小子,活腻了! △几个乞丐围攻小单孤刀,小单孤刀和众乞丐厮打到一起。突然其中一个乞丐掏出一把生锈的刀就朝单孤刀砍去、一个点燃火把棍戳他。单孤刀侧手一挡,火把棍在他手腕上烫出一道伤口,身后几根棍子打得他痛苦倒地! /闪回结束 △单孤刀拿着自己手里的玉佩看着,又看看自己手上的印记,不肯相信。单孤刀:胡说!全都是胡说!这些事我为何不知道?都是你在信口雌黄! 芩婆:那我问你,我们将你带回云隐山之前的事你又记得多少? △单孤刀突然愣住,他意识到那之前的事自己竟都想不起来。 芩婆:怎么?都想不起来了?(拽起单孤刀手腕,露出他的伤痕)你当日被你师父找到时,手腕上就受了伤,也正因为这处伤,高烧不退,醒来后便忘记了不少从前的事。 △单孤刀呆住。 芩婆:而相夷当年不过孩童,尚未到记事的年纪,很多事自然不知道。 △李莲花得知真相,闭目叹息。 △封磬震惊地看看单孤刀,又看看李莲花,终于想明白了一切,颓然、懊恼。 封磬:自萱公主之子下落不明后,这近百年来我们整个家族都一直在不遗余力地寻找萱公主的子嗣后代,直到二十几年前终于让我寻得了线索,知道萱公主的曾孙被漆木山夫妇收为徒,但......我只知道萱公主之孙有一年约十岁的儿子,却不知......原来竟还有一幼子!我......我凭着南胤皇族的玉佩、孩子的年纪和他身上的印记来与主上相认,可没想到......这竟是一个错误!全错了! △封磬神情复杂地看向李莲花,封磬:你,你才是我的主上...... △封磬颓然地跪倒下来。 △李莲花对眼前的一切有些意外、无措。 笛飞声冷声:怪不得单孤刀的血对业火独毫无作用,李莲花的血才能毁掉这东西。 △笛飞声不禁冷笑一下。
📤 output data 输出数据¶
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟...
Show more 展开更多 (935 more chars)
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟弟、相夷......求你照顾他一阵...... △李相显还想再说什么已气绝而亡,小相夷唤着哥哥大哭,单孤刀愕然看着手里的玉佩有点不知所措。 △话刚说完,哐当一声破庙门倒进来,几个其他少年乞丐进来。少年乞丐老大:这地儿不错,诶,你俩,出去! △单孤刀把小相夷护在身后,抓住靠在墙边的木棍。单孤刀:这儿,是我,和我弟弟的。 乞丐们要抢李相夷的馒头,小李相夷哭着死死护住自馒头不放。 乞丐甲野蛮地抢:给我拿来! 小单孤刀:放开他! △单孤刀用力撞向几个乞丐,救下小李相夷。乞丐甲:小子,活腻了! △几个乞丐围攻小单孤刀,小单孤刀和众乞丐厮打到一起。突然其中一个乞丐掏出一把生锈的刀就朝单孤刀砍去、一个点燃火把棍戳他。单孤刀侧手一挡,火把棍在他手腕上烫出一道伤口,身后几根棍子打得他痛苦倒地! /闪回结束 △单孤刀拿着自己手里的玉佩看着,又看看自己手上的印记,不肯相信。单孤刀:胡说!全都是胡说!这些事我为何不知道?都是你在信口雌黄! 芩婆:那我问你,我们将你带回云隐山之前的事你又记得多少? △单孤刀突然愣住,他意识到那之前的事自己竟都想不起来。 芩婆:怎么?都想不起来了?(拽起单孤刀手腕,露出他的伤痕)你当日被你师父找到时,手腕上就受了伤,也正因为这处伤,高烧不退,醒来后便忘记了不少从前的事。 △单孤刀呆住。 芩婆:而相夷当年不过孩童,尚未到记事的年纪,很多事自然不知道。 △李莲花得知真相,闭目叹息。 △封磬震惊地看看单孤刀,又看看李莲花,终于想明白了一切,颓然、懊恼。 封磬:自萱公主之子下落不明后,这近百年来我们整个家族都一直在不遗余力地寻找萱公主的子嗣后代,直到二十几年前终于让我寻得了线索,知道萱公主的曾孙被漆木山夫妇收为徒,但......我只知道萱公主之孙有一年约十岁的儿子,却不知......原来竟还有一幼子!我......我凭着南胤皇族的玉佩、孩子的年纪和他身上的印记来与主上相认,可没想到......这竟是一个错误!全错了! △封磬神情复杂地看向李莲花,封磬:你,你才是我的主上...... △封磬颓然地跪倒下来。 △李莲花对眼前的一切有些意外、无措。 笛飞声冷声:怪不得单孤刀的血对业火独毫无作用,李莲花的血才能毁掉这东西。 △笛飞声不禁冷笑一下。
✨ explanation 解释¶
This example demonstrates the basic functionality of the ExtractEntityRelationMapper operator. It extracts entities and relations from a given text without specifying any particular entity types, using the default settings. The output includes various identified entities (like people, places, and objects) and their relationships, which are stored in the 'entity' and 'relation' fields of the sample's metadata. 这个例子展示了ExtractEntityRelationMapper算子的基本功能。它从给定的文本中提取实体和关系,没有指定任何特定的实体类型,使用默认设置。输出包括各种识别出的实体(如人物、地点和物体)及其关系,这些信息被存储在样本元数据的'entity'和'relation'字段中。
test_entity_types¶
ExtractEntityRelationMapper(api_model='qwen2.5-72b-instruct', entity_types=['人物', '组织', '地点', '物件', '武器', '武功'])
📥 input data 输入数据¶
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟...
Show more 展开更多 (935 more chars)
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟弟、相夷......求你照顾他一阵...... △李相显还想再说什么已气绝而亡,小相夷唤着哥哥大哭,单孤刀愕然看着手里的玉佩有点不知所措。 △话刚说完,哐当一声破庙门倒进来,几个其他少年乞丐进来。少年乞丐老大:这地儿不错,诶,你俩,出去! △单孤刀把小相夷护在身后,抓住靠在墙边的木棍。单孤刀:这儿,是我,和我弟弟的。 乞丐们要抢李相夷的馒头,小李相夷哭着死死护住自馒头不放。 乞丐甲野蛮地抢:给我拿来! 小单孤刀:放开他! △单孤刀用力撞向几个乞丐,救下小李相夷。乞丐甲:小子,活腻了! △几个乞丐围攻小单孤刀,小单孤刀和众乞丐厮打到一起。突然其中一个乞丐掏出一把生锈的刀就朝单孤刀砍去、一个点燃火把棍戳他。单孤刀侧手一挡,火把棍在他手腕上烫出一道伤口,身后几根棍子打得他痛苦倒地! /闪回结束 △单孤刀拿着自己手里的玉佩看着,又看看自己手上的印记,不肯相信。单孤刀:胡说!全都是胡说!这些事我为何不知道?都是你在信口雌黄! 芩婆:那我问你,我们将你带回云隐山之前的事你又记得多少? △单孤刀突然愣住,他意识到那之前的事自己竟都想不起来。 芩婆:怎么?都想不起来了?(拽起单孤刀手腕,露出他的伤痕)你当日被你师父找到时,手腕上就受了伤,也正因为这处伤,高烧不退,醒来后便忘记了不少从前的事。 △单孤刀呆住。 芩婆:而相夷当年不过孩童,尚未到记事的年纪,很多事自然不知道。 △李莲花得知真相,闭目叹息。 △封磬震惊地看看单孤刀,又看看李莲花,终于想明白了一切,颓然、懊恼。 封磬:自萱公主之子下落不明后,这近百年来我们整个家族都一直在不遗余力地寻找萱公主的子嗣后代,直到二十几年前终于让我寻得了线索,知道萱公主的曾孙被漆木山夫妇收为徒,但......我只知道萱公主之孙有一年约十岁的儿子,却不知......原来竟还有一幼子!我......我凭着南胤皇族的玉佩、孩子的年纪和他身上的印记来与主上相认,可没想到......这竟是一个错误!全错了! △封磬神情复杂地看向李莲花,封磬:你,你才是我的主上...... △封磬颓然地跪倒下来。 △李莲花对眼前的一切有些意外、无措。 笛飞声冷声:怪不得单孤刀的血对业火独毫无作用,李莲花的血才能毁掉这东西。 △笛飞声不禁冷笑一下。
📤 output data 输出数据¶
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟...
Show more 展开更多 (935 more chars)
△芩婆走到中间,看着众人。 芩婆:当年,我那老鬼漆木山与李相夷之父乃是挚交。原本李家隐世而居,一日为了救人,得罪附近山匪,夜里便遭了山匪所袭,唯有二子生还,流落街头。 封磬震惊:二子?不是只有一个儿子吗? 芩婆:我和漆木山得知这个噩耗后,到处寻找李家那两个孩子的下落。只可惜等我们找他们时,李家长子李相显已经病死。 李莲花似回忆起了什么:李相显...... 芩婆:我们只从乞丐堆里带回了年纪尚且未满四岁的李相夷,以及,(看向单孤刀)二个一直护着李相夷,与李相显年纪相仿的小乞丐...... 闪回/ 李相显将李且给他的玉佩塞给单孤刀,恳切托付:我没什么值钱的东西,这个玉佩是我唯一的家当了、送给你,我弟弟、相夷......求你照顾他一阵...... △李相显还想再说什么已气绝而亡,小相夷唤着哥哥大哭,单孤刀愕然看着手里的玉佩有点不知所措。 △话刚说完,哐当一声破庙门倒进来,几个其他少年乞丐进来。少年乞丐老大:这地儿不错,诶,你俩,出去! △单孤刀把小相夷护在身后,抓住靠在墙边的木棍。单孤刀:这儿,是我,和我弟弟的。 乞丐们要抢李相夷的馒头,小李相夷哭着死死护住自馒头不放。 乞丐甲野蛮地抢:给我拿来! 小单孤刀:放开他! △单孤刀用力撞向几个乞丐,救下小李相夷。乞丐甲:小子,活腻了! △几个乞丐围攻小单孤刀,小单孤刀和众乞丐厮打到一起。突然其中一个乞丐掏出一把生锈的刀就朝单孤刀砍去、一个点燃火把棍戳他。单孤刀侧手一挡,火把棍在他手腕上烫出一道伤口,身后几根棍子打得他痛苦倒地! /闪回结束 △单孤刀拿着自己手里的玉佩看着,又看看自己手上的印记,不肯相信。单孤刀:胡说!全都是胡说!这些事我为何不知道?都是你在信口雌黄! 芩婆:那我问你,我们将你带回云隐山之前的事你又记得多少? △单孤刀突然愣住,他意识到那之前的事自己竟都想不起来。 芩婆:怎么?都想不起来了?(拽起单孤刀手腕,露出他的伤痕)你当日被你师父找到时,手腕上就受了伤,也正因为这处伤,高烧不退,醒来后便忘记了不少从前的事。 △单孤刀呆住。 芩婆:而相夷当年不过孩童,尚未到记事的年纪,很多事自然不知道。 △李莲花得知真相,闭目叹息。 △封磬震惊地看看单孤刀,又看看李莲花,终于想明白了一切,颓然、懊恼。 封磬:自萱公主之子下落不明后,这近百年来我们整个家族都一直在不遗余力地寻找萱公主的子嗣后代,直到二十几年前终于让我寻得了线索,知道萱公主的曾孙被漆木山夫妇收为徒,但......我只知道萱公主之孙有一年约十岁的儿子,却不知......原来竟还有一幼子!我......我凭着南胤皇族的玉佩、孩子的年纪和他身上的印记来与主上相认,可没想到......这竟是一个错误!全错了! △封磬神情复杂地看向李莲花,封磬:你,你才是我的主上...... △封磬颓然地跪倒下来。 △李莲花对眼前的一切有些意外、无措。 笛飞声冷声:怪不得单孤刀的血对业火独毫无作用,李莲花的血才能毁掉这东西。 △笛飞声不禁冷笑一下。
✨ explanation 解释¶
In this example, the operator is configured to extract only specific types of entities: 人物 (people), 组织 (organizations), 地点 (locations), 物件 (objects), 武器 (weapons), and 武功 (martial arts). This illustrates how the operator can be fine-tuned to focus on certain categories of information within the text. The extracted entities and their relations, matching the specified types, are then stored in the 'entity' and 'relation' fields of the sample's metadata. 在这个例子中,算子被配置为仅提取特定类型的实体:人物、组织、地点、物件、武器和武功。这展示了如何调整算子以专注于文本中的某些类别的信息。然后将匹配指定类型的提取实体及其关系存储在样本元数据的'entity'和'relation'字段中。