2017-11-28 7 views
1

私は、ロボットAPIを使用してMicrosoft Bot Frameworkを使用しているボットを持っており、その中に閉じたリストのエンティティがあります。 そして、ボットがそのエンティティでインテントをキャッチしているときに、その標準的なフォームの値をプログラムで取得したかったのです。しかし、私ができることは、ユーザーが入力した値を得ることです。同義語が見つかりました。リストのエンティティから標準形を取得する

foreach (var entity in result.Entities) 
{ 
    await context.PostAsync($"{entity.Type}: {entity.Entity}"); 
} 
+0

私はあなたが[解像度]でそれを見つけるだろうと思います(https://docs.microsoft.com/ en-us/dotnet/api/microsoft.bot.builder.luis.models.entityrecommendation.resolution?view = botbuilder-3.11.0#Microsoft_Bot_Builder_Luis_Models_EntityRecommendation_Resolution)プロパティ。 – stuartd

+0

[この質問](https://stackoverflow.com/questions/43358558/luis-closed-list-entities)にはもう少し詳細があります。 – stuartd

答えて

1

コメントを使用して答えを展開する方法が見つかりましたJasonSowersから、辞書に旅行し、キャストのカップルを使用していたが、最終的にそれを周りました:

foreach (var entity in result.Entities) 
{ 
    var dict = entity.Resolution.Values.GetEnumerator(); 
    dict.MoveNext(); 
    var valuesList = (List<object>)dict.Current; 
    var canonicalForm = (string)valuesList[0]; 

    await context.PostAsync($"{canonicalForm}"); 
} 
4

は、私が何を探していることは、あなたがEntities.Resolution.Values;

で見つけるEntities.Resolution辞書文字列の具体的配列に格納されている辞書このdocumentationはあなたのコードの例を使用して、あなたに

を助けるべきであると信じて:

foreach (var entity in result.Entities) 
{ 
    await context.PostAsync($"{entity.Resolution.Values}"); 
} 
+0

標準的なフォームの文字列の値を実際に取得するために、ソリューションを拡張する方法を見つけたら、下に完全な答えを記してください。 – Edhelvar

+0

うれしいことです。がんばろう! – JasonSowers

関連する問題