コード例 #1
0
        public string Generate(FileStatistic stats)
        {
            var       stringBuilder   = new StringBuilder("");
            var       displayFileName = new FileInfo(stats.FileName).Name.ToUpper() + ":";
            const int PAD_AMOUNT      = 25;

            double reduction = ((double)stats.ResultingUtteranceCount / stats.ProcessedUtteranceCount);

            stringBuilder.Append("\n");
            stringBuilder.Append($"\n{displayFileName}");
            stringBuilder.Append($"\n{new string('-', displayFileName.Length)}");
            stringBuilder.Append($"\nUtterances found       : {stats.UtteranceCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nUtterances ignored     : {stats.IgnoredUtteranceCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nUtterances processed   : {stats.ProcessedUtteranceCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nUtterances reduced to  : {stats.ResultingUtteranceCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nReduction factor       : {reduction.ToString("### ##0.###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append("\n");
            stringBuilder.Append($"\nIntents found          : {(stats.IgnoredIntentCount + stats.IntentCount).ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nIntents ignored        : {stats.IgnoredIntentCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nTotal intents processed: {stats.IntentCount.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append($"\nIgnored intents        : {string.Join(',', stats.IgnoredIntents.Select(s => $"'{s}'")).PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append("\n");
            stringBuilder.Append($"\nLines Written          : {stats.LinesWritten.ToString("### ###").PadLeft(PAD_AMOUNT)}");
            stringBuilder.Append("\n" + new string('-', PAD_AMOUNT * 2));

            return(stringBuilder.ToString());
        }
コード例 #2
0
ファイル: LuDownMaker.cs プロジェクト: digitaldias/LuisTools
        public string MakeFromTrsx(string fileName, XElement trsxElement, ProgramParameters parameters)
        {
            _log.Enter(this);

            var intents           = new Dictionary <string, HashSet <EntityBasedUtterance> >();
            var allUtterances     = trsxElement.Descendants("sample");  // Utterances are named "samples" in Nuance
            var lines             = new List <string>();
            var reducedUtterances = allUtterances;
            var stats             = new FileStatistic {
                FileName = new FileInfo(fileName).Name, IgnoredIntents = new List <string>()
            };

            stats.UtteranceCount = trsxElement.Descendants("sample").Count();

            reducedUtterances = RemoveUtterancesForIgnoredIntents(parameters, reducedUtterances, stats);

            foreach (var utterance in reducedUtterances)
            {
                stats.ProcessedUtteranceCount += ExtractEntityBasedUtteranceFromXElement(intents, utterance);
            }
            stats.IntentCount = intents.Keys.Count();

            foreach (var key in intents.Keys)
            {
                stats.ResultingUtteranceCount += intents[key].Count();
            }
            stats.LinesWritten = _exceptionHandler.Get(() => WriteIntentsToLudownFile(parameters.DestinationFolderName, fileName, intents));

            return(_statisticsGenerator.Generate(stats));
        }
コード例 #3
0
            private FileStatistic GetStat(string path, string oldPath)
            {
                FileStatistic result;

                if (this.map.TryGetValue(path, out result))
                {
                    return(result);
                }

                if (this.map.TryGetValue(oldPath, out result))
                {
                    this.map[path] = result;
                    return(result);
                }

                result         = new FileStatistic();
                this.map[path] = result;

                return(result);
            }
コード例 #4
0
ファイル: LuDownMaker.cs プロジェクト: digitaldias/LuisTools
        private static IEnumerable <XElement> RemoveUtterancesForIgnoredIntents(ProgramParameters parameters, IEnumerable <XElement> reducedUtterances, FileStatistic stats)
        {
            if (parameters.IgnoredIntents != null && parameters.IgnoredIntents.Any())
            {
                foreach (var ignoredIntent in parameters.IgnoredIntents)
                {
                    stats.IgnoredIntentCount++;
                    stats.IgnoredUtteranceCount += reducedUtterances.Count(s => !s.Attribute("intentref").Value.StartsWith(ignoredIntent));
                    stats.IgnoredIntents.Add(ignoredIntent);

                    reducedUtterances = reducedUtterances.Where(s => !s.Attribute("intentref").Value.StartsWith(ignoredIntent));
                }
            }

            return(reducedUtterances);
        }
コード例 #5
0
    private void TaskResultGetProcess(TaskResultData oTaskInfo, bool bDataCreate, InputCommand cmd, TransportClassMainAshx oTransportClassMainAshx)
    {
        switch (oTaskInfo.eStatus)
        {
            case FileStatus.Ok:
                {
                    string sAffiliateId = null;
                    Signature.getVKeyStringParam(cmd.vkey, ConfigurationSettings.AppSettings["keyKeyID"], out sAffiliateId);
                    if (null != sAffiliateId)
                    {
                        string sTag = null;
                        switch (cmd.editorid)
                        {
                            case (int)LicenseInfo.EditorType.Spreadsheet: sTag = "open_sheet"; break;
                            case (int)LicenseInfo.EditorType.Presentation: sTag = "open_presentation"; break;
                            default: sTag = "open_word"; break;
                        }
                        FileConverterUtils2.FileStatistic oFileStat = new FileStatistic();
                        oFileStat.insert(sAffiliateId, cmd.id, DateTime.UtcNow, sTag);
                    }

					ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
					TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(
						oTransportClassMainAshx, cmd, oTaskResult);
					
					string sOutputCommand = ("create" == cmd.c)? "create": "open";
					
					WriteOutputCommand(oTransportClassTaskResult, 
						new OutputCommand(sOutputCommand, cmd.id + "/Editor.bin"));
                }
                break;
            case FileStatus.Convert:
            case FileStatus.WaitQueue:
                {
                    if (bDataCreate)
                    {
                        AddTask(cmd, oTransportClassMainAshx);
                    }
                    else
                    {
                        
                        WriteOutputCommand(oTransportClassMainAshx, new OutputCommand("waitopen", oTaskInfo.nStatusInfo.ToString()));
                    }
                }
                break;
            case FileStatus.None:
                {

                    if (bDataCreate)
                    {
                        TaskResultDataToUpdate oToUpdate = new TaskResultDataToUpdate();
                        oToUpdate.eStatus = FileStatus.WaitQueue;
                        ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
                        TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassMainAshx, cmd, oTaskResult);
                        oTaskResult.UpdateBegin(cmd.id, oToUpdate, TaskResultUpdateCallback, oTransportClassTaskResult);

                    }
                    else
                    {
                        
                        WriteOutputCommand(oTransportClassMainAshx, new OutputCommand("waitopen", oTaskInfo.nStatusInfo.ToString()));
                    }
                }
                break;
            case FileStatus.NeedParams:
                string sUrl = Constants.mc_sResourceServiceUrlRel + HttpUtility.UrlEncode(cmd.id + "/settings.json");
                WriteOutputCommand(oTransportClassMainAshx, new OutputCommand("needparams", sUrl));
                break;
            case FileStatus.ErrToReload:
                {
                    
                    AsyncClearCacheOperation oAsyncClearCacheOperation = new AsyncClearCacheOperation();
                    TransportClassClearCache oTempTransportClassClearCache = new TransportClassClearCache(oTransportClassMainAshx, cmd, oAsyncClearCacheOperation, oTaskInfo.nStatusInfo);
                    oAsyncClearCacheOperation.ClearCacheBegin(cmd.id, TaskResultRemoveCallback2, oTempTransportClassClearCache);
                }
                break;
            case FileStatus.Err:
                WriteOutputCommand(oTransportClassMainAshx, new OutputCommand((ErrorTypes)oTaskInfo.nStatusInfo));
                break;
            case FileStatus.SaveVersion:
                {
                    if (cmd.viewmode)
                        WriteOutputCommand(oTransportClassMainAshx, new OutputCommand("updateversion", cmd.id + "/Editor.bin"));
                    else
                    {
                        ITaskResultInterface oTaskResult = TaskResult.NewTaskResult();
                        TaskResultDataToUpdate oTask = new TaskResultDataToUpdate();
                        oTask.eStatus = FileStatus.Ok;
                        TaskResultDataToUpdate oMask = new TaskResultDataToUpdate();
                        oMask.eStatus = FileStatus.SaveVersion;
                        TransportClassTaskResult oTransportClassTaskResult = new TransportClassTaskResult(oTransportClassMainAshx, cmd, oTaskResult);
                        oTaskResult.UpdateIfBegin(cmd.id, oMask, oTask, TaskResultUpdateIfCallback2, oTransportClassTaskResult);
                    }
                }
                break;
            case FileStatus.UpdateVersion:
                WriteOutputCommand(oTransportClassMainAshx, new OutputCommand("updateversion", cmd.id + "/Editor.bin"));
                break;
            default:
                WriteOutputCommand(oTransportClassMainAshx, new OutputCommand(ErrorTypes.Unknown));
                break;
        }
    }