Beispiel #1
0
        private string AnalysisResponseToString(NLPAnalyseReportDataLine reportDataLine)
        {
            var intention = reportDataLine.Intent;
            var entities  = reportDataLine.Entities;

            return($"{reportDataLine.Id}\t{reportDataLine.Input}\t{intention}\t{reportDataLine.Confidence:P}\t{entities}\t\"{reportDataLine.Answer}\"");
        }
Beispiel #2
0
        private async Task BuildResult(NLPAnalyseDataBlock dataBlock)
        {
            lock (_locker)
            {
                _count++;
                if (_count % 100 == 0)
                {
                    _logger.LogDebug($"{_count}/{_total}");
                }
            }

            var input    = dataBlock.Input;
            var analysis = dataBlock.NLPAnalysisResponse;
            var content  = dataBlock.ContentFromProvider;

            if (analysis == null)
            {
                return;
            }

            var resultData = new NLPAnalyseReportDataLine
            {
                Id         = dataBlock.Id,
                Input      = input,
                Intent     = analysis.Intentions?[0].Id,
                Confidence = analysis.Intentions?[0].Score,
                Entities   = analysis.Entities?.ToList().ToReportString(),
            };

            if (content != null)
            {
                resultData.Answer = ExtractAnswer(content);
            }

            var report = new NLPAnalyseReport
            {
                ReportDataLines = new List <NLPAnalyseReportDataLine> {
                    resultData
                },
                FullReportFileName = dataBlock.ReportOutputFile
            };

            await _fileService.WriteAnalyseReportAsync(report, true);

            _logger.LogTrace($"\"{resultData.Input}\"\t{resultData.Intent}:{resultData.Confidence:P}\t{resultData.Entities}\t{CropText(resultData.Answer, 50)}");
        }