如何使用Fluent训练自然语言分类器

时间:2015-11-20 07:33:11

标签: ibm-cloud ibm-watson nl-classifier

我使用Fluent库向自然语言分类器服务发出请求,以便训练'数据。

文档说明要传递的以下参数:

name=training_data; type=file; description=training data
name=training_meta_data; type=file; description=meta data to identify language etc

以下是我的代码示例:

File trainingCSVFile = new File("path to training file");
Request request=Request.Post(<bluemix service url>).
  bodyFile(trainingCSVFile, ContentType.TEXT_PLAIN).
  bodyString("{\"language\":\"en\",\"name\":\"PaymentDataClassifier\"}", ContentType.APPLICATION_JSON);

我的请求格式可能导致内部服务器错误。任何人都可以帮助我如何使用Fluent库优先传递上述参数吗?

1 个答案:

答案 0 :(得分:1)

我将假设您使用的是Java并建议您使用Java SDK。您可以找到不仅使用自然语言分类器而且使用所有Watson服务+ Alchemy服务的示例。

安装

  1. 下载jar

  2. 或使用Maven

    <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>java-sdk</artifactId>
        <version>2.10.0</version>
    </dependency>
    
  3. 或使用Gradle

    'com.ibm.watson.developer_cloud:java-sdk:2.10.0'
    
  4. 创建分类器的代码段是:

    NaturalLanguageClassifier service = new NaturalLanguageClassifier();
    service.setUsernameAndPassword("<username>", "<password>");
    
    File trainingData = new File("/path/to/csv/file.csv");
    Classifier classifier = service.createClassifier("PaymentDataClassifier", "en", trainingData);
    
    System.out.println(classifier);
    

    培训持续时间取决于您的数据,但一旦经过培训,您就可以:

    Classification classification = service.classify(classifier.getId(), "Is it sunny?");
    System.out.println(classification);
    

    如果您遇到问题,请随时在GitHub repo中打开问题