3

Microsoft Cognitive Service の Language Understanding Service API であるLUIS.aiを使用しています。

テキストが LUIS によって解析されるときは常に、句読点の周りに空白トークンが常に挿入されます。

ドキュメントによると、この動作は意図的なものです。

「英語、フランス語、イタリア語、スペイン語: トークンの区切りは空白と句読点の周りに挿入されます。」

私のプロジェクトでは、これらのトークンなしで元のクエリ文字列を保持する必要があります。モデル用にトレーニングされた一部のエンティティには句読点が含まれており、解析されたエンティティから余分な空白を削除するのは面倒で少しハックです。

この動作の例:

ここに画像の説明を入力

これを無効にする方法はありますか?かなりの労力を節約できます。

ありがとう!!

4

1 に答える 1

1

残念ながら、今のところこれを無効にする方法はありませんが、返される予測では、サンプルのラベル付けプロセスで見られるトークン化された文字列ではなく、元の文字列が処理されるという良いニュースがあります。

ここの JSON 応答を理解する方法のドキュメントでは、元の「クエリ」文字列を保持する出力例を確認できます。抽出されたエンティティには"startIndex", "endIndex"、元の文字列にゼロベースの文字インデックス ( ) があります。これにより、解析されたエンティティ フレーズの代わりにインデックスを処理できます。

{
"query": "Book me a flight to Boston on May 4",
"intents": [
  {
    "intent": "BookFlight",
    "score": 0.919818342
  },
  {
    "intent": "None",
    "score": 0.136909246
  },
  {
    "intent": "GetWeather",
    "score": 0.007304534
  }
],
"entities": [
  {
    "entity": "boston",
    "type": "Location::ToLocation",
    "startIndex": 20,
    "endIndex": 25,
    "score": 0.621795356
  },
  {
    "entity": "may 4",
    "type": "builtin.datetime.date",
    "startIndex": 30,
    "endIndex": 34,
    "resolution": {
      "date": "XXXX-05-04"
    }
  }
]

}

于 2016-08-05T15:02:42.140 に答える