更新时间:2024-05-23 GMT+08:00

topicrank算法(topicrank)

功能介绍

根据输入参数,执行TopicRank算法。

TopicRank算法12345热线多维度话题排序算法之一,适用于政务12345热线投诉话题排序。

URI

POST /ges/v1.0/{project_id}/hyg/{graph_name}/algorithm
表1 路径参数

参数

是否必选

类型

说明

project_id

String

项目ID。获取方法请参见获取项目ID

graph_name

String

图名称。

请求参数

表2 请求Body参数

参数

是否必选

类型

说明

algorithmName

String

算法名字。

parameters

parameters Object

算法参数。

表3 parameters

参数

是否必选

类型

说明

sources

String

节点的ID,支持多点输入,csv格式,逗号分割。当前仅支持少于等于100000个 id输入。

actived_p

Double

初始sources节点对应的权重初始值,取值范围[0,100000],默认值为1。

default_p

Double

非sources节点对应的权重初始值,取值范围[0,100000],默认值为1。

filtered

Boolean

是否对结果进行过滤,取值为true或false,默认值为false。

only_neighbors

Boolean

是否仅输出sources的邻居节点,取值为true或false,默认值为true。

alpha

Double

权重系数(又称阻尼系数),取值范围为(0,1),默认值为0.85。

convergence

Double

收敛精度,取值范围为(0,1),默认值为0.00001。

max_iterations

Integer

最大迭代次数,取值范围为[0,2000],默认值为1000。

directed

Boolean

是否考虑边的方向,取值为true或false,默认值为true。

num_thread

Integer

线程数,取值范围为1至cpu最大线程数,默认值为4。

vertex_filter

Json String

在repeat 的operator为“ inV”或“outV”或“bothV”时可选,具体格式见表 vertex_filter参数说明

表4 vertex_filter参数说明

参数

是否必选

类型

说明

leftvalue

String

String 左值,具体格式见表 leftvalue元素格式

predicate

String

表示过滤类型,支持的操作如下:

  • 逻辑运算:&和|;

    注意:leftvalue和rightvalue必须嵌套使用property_filter,且仅逻辑运算支持嵌套。

  • 比较运算:=, !=, >, >=, <, <=;
  • 集合运算:IN, NOTIN;
    1. 判断左值(标签、id、属性值)是否在右值(必须是array类型)中,和内存版的左值和右值是否有交集的语义有区别。
    2. 不支持CONTAIN、NOTCONTAIN、SUBSET等集合运算。
  • 匹配:右值是左值的PREFIX(前缀)、NOTPREFIX(非前缀)、 SUFFIX(后缀)、NOTSUFFIX(非后缀)、SUBSTRING(子串)、NOTSUBSTRING(非子串)、CISUBSTRING(忽略大小写的子串)、FUZZY(模糊匹配)或REGEX(正则匹配)
  • HAS/HASNOT:是否有此属性,仅支持属性过滤,即左值仅支持property_name。

rightvalue

String

右值,具体格式见表 rightvalue元素格式

表5 leftvalue元素格式

参数

是否必选

类型

说明

label_name

String

过滤“label”,值为“labelName”,值可不填。

property_name

String

过滤“property”,值为属性名称。

ID

String

过滤id,值可不填。

property_filter

String

仅在“predicate”为“&”或者“|”,可在“leftvalue”和“rightvalue”中嵌套使用“property_filter”。

degree

String

可选["both","in","out"],代表点度数值过滤统计的方向。

表6 rightvalue元素格式

参数

是否必选

类型

说明

value

String

1. 过滤“label”,值为label名称。

2. 过滤“property”,值为属性值,当predicate为HAS/HASNOT,则value仅为占位符,无实意。

3. 过滤“id”, 值为id值。

说明:

当predicate为IN、NOTIN时,该参数为List[string]类型。

property_filter

String

若“predicate”为“&”或者“|”,可在“leftvalue”和“rightvalue”中嵌套使用“property_filter”。

响应参数

参数

类型

说明

errorMessage

String

系统提示信息,执行成功时,字段可能为空。执行失败时,用于显示错误信息。

errorCode

String

系统提示信息,执行成功时,字段可能为空。执行失败时,用于显示错误码。

jobId

String

执行算法任务ID。请求失败时,字段为空。

说明:

可以利用返回的jobId查看任务执行状态、获取算法返回结果,详情参考查询Job状态(1.0.0)

jobType

Integer

任务类型。请求失败时,字段为空。

请求示例

POST http://{SERVER_URL}/ges/v1.0/{project_id}/hyg/{graph_name}/algorithm
{
    "algorithmName": "topicrank",
    "vertex_filter": {
        "property_filter": {
            "leftvalue": {
                "label_name": "labelName"
            },
            "predicate": "=",
            "rightvalue": {
                "value": "user"
            }
        }
    },
    "parameters": {
        "sources": "lili,andy",
        "alpha": 0.85,
        "convergence": 0.00001,
        "max_iterations": 1000,
        "filtered": "true"
    }
}

SERVER_URL:图的访问地址,取值请参考业务面API使用限制

带vertex_filter的请求样例

POST http://{SERVER_URL}/ges/v1.0/{project_id}/hyg/{graph_name}/algorithm
{
  "algorithmName": "topicrank",
  "parameters": {
    "sources": "lili,andy",
    "alpha": 0.85,
    "convergence": 0.00001,
    "max_iterations": 1000,
    "filtered": "true",
    "vertex_filter": {
      "property_filter": {
        "leftvalue": {
          "label_name": "labelName"
        },
        "predicate": "=",
        "rightvalue": {
          "value": "user"
        }
      }
    }
  }
}

响应示例

状态码: 200

成功响应示例

Http Status Code: 200
{  
"jobId": "4448c9fb-0b16-4a78-8d89-2a137c53454a001679122",
"jobType": 1
}

状态码: 400

失败响应示例

Http Status Code: 400
{
"errorMessage":"graph [demo] is not found",
"errorCode":"GES.8402"
}

状态码

返回值

说明

400 Bad Request

请求错误

401 Unauthorized

鉴权失败

403 Forbidden

没有操作权限

404 Not Found

找不到资源

500 Internal Server Error

服务内部错误

503 Service Unavailable

服务不可用

错误码

请参见错误码

表7 parameters参数说明

参数

是否必选

类型

说明

source

String

节点的ID。

alpha

Double

权重系数(又称阻尼系数),取值范围为(0,1),默认值为0.85。

convergence

Double

收敛精度。取值范围(0,1),默认值为0.00001。

max_iterations

Integer

最大迭代次数。API调用限制为[1,2147483647],前端调用限制为[1,2000],默认值为1000。

num_thread

Integer

并发线程数。范围为[1,40],小于1会自动置为1,大于40则自动置为40。默认值为4。

directed

Boolean

是否考虑边的方向,取值为true或false,默认值为true。

关于迭代次数(iterations)和收敛精度(convergence)参数如何调节,请参考迭代次数和收敛精度的关系

表8 response_data参数说明

参数

类型

说明

source

String

-

personalrank

List

各节点的personalrank值,格式:

[{vertexId:rankValue},...],

其中,

vertexId:string类型

rankValue:double类型