python - 使用 (V1) python SDK API 训练 Watson Discovery 不起作用

标签 python machine-learning ibm-watson information-retrieval discovery

我想使用 Watson discovery V1 API 进行相关性训练。我尝试了以下方法,但尚未得到想要的结果。下面详细描述问题:

我有一组文档,其中一些包含“云”或“大数据”一词。我想使用 query() api 搜索单词 'hadoop' 并获取这些文档,但发现查询不返回任何内容。

现在,我想提供以下训练示例来发现以更新相关性分数,以便我得到这些结果(我使用查询扩展来完成相同的任务并且它有效,现在我是对相关性培训感兴趣)。

我使用了 API add_training_data() 将查询 'hadoop' 与相关文档(由 ids 指定,包含 'cloud ',例如)。

现在训练数据如下所示:

{
  "natural_language_query": "hadoop",
  "filter": "",
  "examples": [
    {
      "document_id": "1ad6f551-e092-4ce9-b08c-eb4f4cbc9458",
      "cross_reference": "",
      "relevance": 1,
      "created": "2020-01-30T23:16:19.674Z",
      "updated": "2020-01-30T23:16:19.716Z"
    },
    {
      "document_id": "f1d11f51-31b2-414f-b359-d5336b019575",
      "cross_reference": "",
      "relevance": 1,
      "created": "2020-01-30T23:16:19.674Z",
      "updated": "2020-01-30T23:16:19.722Z"
    },
    {
      "document_id": "5bfcea6a-c925-4db5-a490-89a9d1de8d4c",
      "cross_reference": "",
      "relevance": 1,
      "created": "2020-01-30T23:16:19.674Z",
      "updated": "2020-01-30T23:16:19.729Z"
    },
    {
      "document_id": "bf07e701-6893-428c-ab16-c5446e821291",
      "cross_reference": "",
      "relevance": 1,
      "created": "2020-01-30T23:16:19.674Z",
      "updated": "2020-01-30T23:16:19.735Z"
    },
    {
      "document_id": "75082812-5c96-4d2e-b388-821a0434ad4c",
      "cross_reference": "",
      "relevance": 1,
      "created": "2020-01-30T23:16:19.674Z",
      "updated": "2020-01-30T23:16:19.742Z"
    }
  ],
  "query_id": "cc1d3677eeafe70929aeccfb462860439f61b051",
  "created": "2020-01-30T23:16:19.677Z",
  "updated": "2020-01-30T23:16:19.677Z"
}

其中文档 ID 对应于集合中包含单词 'cloud' 的文档。例如

创建训练数据后,现在我想使用查询文本 'hadoop' 再次运行之前的查询,假设发现会自动训练自身以获取相关结果(因为我找不到任何我期待的像 'train()' 这样的 api)。但是,即使在提供了训练示例之后,发现查询仍然没有返回任何内容。

我不知道出了什么问题。一些帮助将非常感激。

最佳答案

桑迪潘,

正如这里提到的:Improving result relevance with the API

When you provide a Discovery instance with training data, the service uses machine-learning Watson techniques to find signals in your content and questions. The service then reorders query results to display the most relevant results at the top. As you add more training data, the service instance becomes more accurate and sophisticated in the ordering of results it returns.

我相信相关性培训不会按您需要的方式发挥作用。它只会重新排序。

此外,“集合的训练数据集必须包含至少 49 个唯一的训练查询(即查询和示例集)。”。您需要添加更多查询才能开始训练。

关于python - 使用 (V1) python SDK API 训练 Watson Discovery 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996251/

相关文章:

scala - 我无法使用流模式在 apache Spark 中使用 scala 进行在线预测来制作数据帧

python - Theano 在线性回归中使用 `scan` 而不是 `for` 循环

chatbot - 使用模式创建的 Watson Assistant 实体未在上下文变量中设置匹配的值

node.js - 使用 Node.js 从代理服务器后面调用 Watson Conversation API

python - 如何在 Python 中添加一个字符串和一个 int 对象?

python - 确定值的分配 - Python

machine-learning - 将时间序列数据集中到单个微服务中以进行跨实体查询

ibm-watson - 如何使用域特定短语的字典/模型来调整检索和排名排序器?

python - 如何使用 numpy 将简单线性回归与梯度下降并行化?

python - 无法将全局变量传递给 Python 模块内的多个函数