Watson NLU - 没有为语言检测提供足够的文本

Watson NLU - Not enough text provided for language detection

我正在使用 Watson NLU 并尝试对某些文本进行情感分析。问题是有些文本太小,无法检测到它是什么语言(例如:优质服务)。有没有办法让我指定如果无法检测语言,它应该将其视为英语?

我的 NLU (Java) 的片段是这样的:

SentimentOptions sentiment = new SentimentOptions.Builder()
    .targets(targets)
    .document(true)
    .build();


Features features = new Features.Builder()
    .sentiment(sentiment)
    .build();


AnalyzeOptions parameters = new AnalyzeOptions.Builder()
    .text(text)
    .features(features)
    .build();

AnalysisResults response = service
    .analyze(parameters)
    .execute();

String mySentiment = response.getSentiment().getDocument().getLabel();

根据官方 API 参考文档,您需要在 POST 请求中指定 language 参数。

Watson Developer Cloud - Github - Java SDK 上查看有关这些参数的更多信息。

API 参考文献的解释 - NLU:

  • language(字符串):ISO 639-1 代码,指示用于分析的语言。此代码覆盖服务执行的自动语言检测。有效代码为 ar(阿拉伯语)、en(英语)、fr(法语)、de(德语)、it(意大利语)、pt(葡萄牙语)、ru(俄语)、es(西班牙语)和 sv(瑞典语)。有关每种语言支持哪些功能的详细信息,请参阅此 table

工作原理示例:

parameters.json 文件示例:

{
  "text": "Excelent service",
  "features": {
    "semantic_roles": {}
  },
  "language": "en"
}

cURL 示例:

curl -X POST \
-H "Content-Type: application/json" \
-u "{username}":"{password}" \
-d @parameters.json \
"https://gateway.watsonplatform.net/natural-language-understanding/api/v1/analyze?version=2017-02-27"

可能是你的例子(你没有指定你的编程语言,所以):

AnalyzeOptions parameters = new AnalyzeOptions.Builder()
    .text(text)
    .features(features)
    .language('en')
    .build();