/// <summary>
        /// Adds factory with given taskIndex. Task is written by writer.
        /// </summary>
        /// <param name="taskId">Task index relative to factory.</param>
        /// <param name="writer">Writer where task will be written.</param>
        private void add(int taskId, CrowdFlowerCodeWriter writer)
        {
            _validationCodes.Add(new Random(taskId).Next(1000, 9999));

            var task = GetTask(taskId);

            writer.Write(task);
        }
        public QuestionCollectionExperiment(string experimentsRoot, string experimentId, int taskCount, QuestionCollection questions)
            : base(experimentsRoot, experimentId)
        {
            _questions = questions;
            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            for (var taskIndex = 0; taskIndex < taskCount; ++taskIndex)
            {
                add(taskIndex, writer);
            }

            writer.Close();
        }
        public PhraseRestaurantExperiment(string rootPath, string experimentId, int taskCount, bool exportKnowledge, bool useKnowledge) : base(rootPath, experimentId)
        {
            _useKnowledge    = useKnowledge;
            _exportKnowledge = exportKnowledge;

            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            for (var taskIndex = 0; taskIndex < taskCount; ++taskIndex)
            {
                add(taskIndex, writer);
            }

            writer.Close();
        }
Exemplo n.º 4
0
        public LearnRestaurantPropertyExperiment(string rootPath, string experimentId, int taskCount, bool exportKnowledge, bool useKnowledge, bool requestInformation) : base(rootPath, experimentId)
        {
            _exportKnowledge    = exportKnowledge;
            _useKnowledge       = useKnowledge;
            _requestInformation = requestInformation;

            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            for (var taskIndex = 0; taskIndex < taskCount; ++taskIndex)
            {
                add(taskIndex, writer);
            }

            writer.Close();
        }
Exemplo n.º 5
0
        /// <summary>
        /// Adds factory with given taskIndex. Task is written by writer.
        /// </summary>
        /// <param name="factory">Factory of tasks.</param>
        /// <param name="taskIndex">Task index relative to factory.</param>
        /// <param name="writer">Writer where task will be written.</param>
        private void add(TaskFactoryBase factory, int taskIndex, CrowdFlowerCodeWriter writer)
        {
            if (factory == null)
            {
                throw new ArgumentNullException("factory");
            }

            var taskId = _taskIndexes.Count;

            _factories.Add(factory);
            _taskIndexes.Add(taskIndex);
            _validationCodeKeys.Add(new Random(taskId).Next(1000, 9999));
            var task = GetTask(taskId);

            writer.Write(task);
        }
Exemplo n.º 6
0
        public AnswerExtractionExperiment(string experimentsRoot, string experimentId, int taskCount, QuestionCollection questions, LinkBasedExtractor extractor)
            : base(experimentsRoot, experimentId)
        {
            _questions = questions;
            _knowledge = new ExtractionKnowledge(Path.Combine(ExperimentRootPath, "knowledge.knw"));
            _extractor = extractor;

            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            for (var taskIndex = 0; taskIndex < taskCount; ++taskIndex)
            {
                add(taskIndex, writer);
            }

            writer.Close();
        }
Exemplo n.º 7
0
        public GraphNavigationExperiment(string experimentsRoot, string experimentId, int taskCount, QuestionDialogDatasetReader seedDialogs)
            : base(experimentsRoot, experimentId)
        {
            _db = Configuration.Db;
            var phrases = LoadPhrases(seedDialogs, _db);

            _phrases = phrases.ToArray();
            var navigationDataPath = Path.Combine(ExperimentRootPath, "navigation_data.nvd");

            _data = new NavigationData(navigationDataPath);

            _linker = createLinker(_phrases);

            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            for (var taskIndex = 0; taskIndex < taskCount; ++taskIndex)
            {
                add(taskIndex, writer);
            }

            writer.Close();
        }
Exemplo n.º 8
0
        protected void ExportExperiment(string experimentId, int taskCount, TaskFactoryBase[] factories)
        {
            var writer = new CrowdFlowerCodeWriter(ExperimentRootPath, experimentId);

            //generate all tasks
            while (_taskIndexes.Count < taskCount)
            {
                foreach (var factory in factories)
                {
                    for (var taskIndex = 0; taskIndex < factory.GetTaskCount(); ++taskIndex)
                    {
                        if (_taskIndexes.Count >= taskCount)
                        {
                            break;
                        }

                        add(factory, taskIndex, writer);
                    }
                }
            }

            writer.Close();
        }