Пример #1
0
        // Find an opinion word target 90%
        protected string GetOpinionWordTarget(string OpinionWord, int index, string sentence)
        {
            FillConjunctions();
            FillAdverbs();
            FillComparatives();
            FillDecreasers();
            FillFutureWords();
            FillIncreasers();
            FillVerbs();
            FillPronouns();
            FillNegations();
            OpinionWord = WordsInSentence[index];
            if (OpinionWord != null)
            {
                if (sentence.Contains(OpinionWord))
                {
                    int myvalue = WordsInSentence.GetUpperBound(0);
                    if (myvalue >= index + 1)
                    {
                        Target = WordsInSentence[index + 1];
                        Target = Target.ToLower();
                        if ((!OpinionLexicon.Contains(Target)) && (!Conjunctions.Contains(Target)) &&
                            (!Comparatives.Contains(Target)) &&
                            (!FutureWords.Contains(Target)) &&
                            (!Adverbs.Contains(Target)) &&
                            (!Increasers.Contains(Target)) &&
                            (!Decreasers.Contains(Target)) &&
                            (!Verbs.Contains(Target)) &&
                            (!Pronouns.Contains(Target)) &&
                            (!Negations.Contains(Target)))
                        {
                            return(Target);
                        }
                        {
                            if (Conjunctions.Contains(WordsInSentence[index + 1]))
                            {
                                Target = WordsInSentence[index + 2];
                                if ((!OpinionLexicon.Contains(Target)) && (!Conjunctions.Contains(Target)) &&
                                    (!Comparatives.Contains(Target)) &&
                                    (!FutureWords.Contains(Target)) &&
                                    (!Adverbs.Contains(Target)) &&
                                    (!Increasers.Contains(Target)) &&
                                    (!Decreasers.Contains(Target)) &&
                                    (!Verbs.Contains(Target)) &&
                                    (!Pronouns.Contains(Target)) &&
                                    (!Negations.Contains(Target)))
                                {
                                    return(Target);
                                }
                            }
                        }
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            return(null);
        }
Пример #2
0
        public async Task <List <Comparatives> > Get(string option, int scenarioId, double acceptableParkingDistance)
        {
            ScenarioOption cenarioOption = new ScenarioOption {
                Option = option, ScenarioID = scenarioId
            };

            BestRoutesBusiness   bestRoutesBusiness   = new BestRoutesBusiness();
            TransportAppBusiness transportAppBusiness = new TransportAppBusiness();
            CabBusiness          cabBusiness          = new CabBusiness();
            ParkingBusiness      parkingBusiness      = new ParkingBusiness();

            CenariosTester       cenariosTester       = new CenariosTester();
            EstacionamentoTester estacionamentoTester = new EstacionamentoTester();

            var cenarios        = cenariosTester.CriarCenariosParaTeste();
            var estacionamentos = estacionamentoTester.CriaEstacionamentosParaTeste();

            List <Comparatives>       lsComparatives       = new List <Comparatives>();
            List <ComparativeOptions> lsComparativeOptions = new List <ComparativeOptions>();

            if (cenarioOption.Option.Equals("transportOption"))
            {
                //Cenario
                var cenarioSelecionado = cenarios.Where(x => x.CenarioID == cenarioOption.ScenarioID).FirstOrDefault();

                List <Options> optionTraffic = await bestRoutesBusiness.GetBestRoutes(cenarioSelecionado.EnderecoOrigem, cenarioSelecionado.EnderecoDestino, cenarioSelecionado.HorarioSaida, string.Empty, "transit");

                List <Options> optionDriver = await bestRoutesBusiness.GetBestRoutes(cenarioSelecionado.EnderecoOrigem, cenarioSelecionado.EnderecoDestino, cenarioSelecionado.HorarioSaida, string.Empty, "driving");

                ComparativeOptions comparativeOptions = new ComparativeOptions();

                foreach (var item in optionTraffic)
                {
                    Comparatives comparatives = new Comparatives();
                    comparatives.AddressOrigin = new Address {
                        StreetName = cenarioSelecionado.EnderecoOrigem
                    };
                    comparatives.AddressDestine = new Address {
                        StreetName = cenarioSelecionado.EnderecoDestino
                    };
                    comparatives.Duration       = item.DurationValue;
                    comparatives.Distance       = item.DistanceValue;
                    comparatives.Cost           = item.CostValue;
                    comparatives.TransporteType = eTransportOptions.PublicTransportation.ToString();

                    lsComparatives.Add(comparatives);
                }

                //Driver
                foreach (var item in optionDriver)
                {
                    int duration = item.DurationValue;
                    int distance = item.DistanceValue;

                    double valorTransporteAplicativo = transportAppBusiness.GetCosts(duration, distance);
                    double valorTaxi           = cabBusiness.GetCosts(duration, distance, cenarioSelecionado.HorarioSaida);
                    double valorEstacionamento = parkingBusiness.GetBestCostFromAllParkings(estacionamentos, cenarioSelecionado.EnderecoDestino, cenarioSelecionado.HorarioSaida, acceptableParkingDistance).Result;

                    //Aplicativos
                    Comparatives comparativesAplicativos = new Comparatives();
                    comparativesAplicativos.AddressOrigin = new Address {
                        StreetName = cenarioSelecionado.EnderecoOrigem
                    };
                    comparativesAplicativos.AddressDestine = new Address {
                        StreetName = cenarioSelecionado.EnderecoDestino
                    };
                    comparativesAplicativos.Duration       = item.DurationValue;
                    comparativesAplicativos.Distance       = item.DistanceValue;
                    comparativesAplicativos.Cost           = valorTransporteAplicativo;
                    comparativesAplicativos.TransporteType = eTransportOptions.TransportApp.ToString();

                    lsComparatives.Add(comparativesAplicativos);

                    //Taxi
                    Comparatives comparativesTaxi = new Comparatives();
                    comparativesTaxi.AddressOrigin = new Address {
                        StreetName = cenarioSelecionado.EnderecoOrigem
                    };
                    comparativesTaxi.AddressDestine = new Address {
                        StreetName = cenarioSelecionado.EnderecoDestino
                    };
                    comparativesTaxi.Duration       = item.DurationValue;
                    comparativesTaxi.Distance       = item.DistanceValue;
                    comparativesTaxi.Cost           = valorTaxi;
                    comparativesTaxi.TransporteType = eTransportOptions.Cab.ToString();

                    lsComparatives.Add(comparativesTaxi);


                    //Estacionamentos
                    Comparatives comparativesEstacionamentos = new Comparatives();
                    comparativesEstacionamentos.AddressOrigin = new Address {
                        StreetName = cenarioSelecionado.EnderecoOrigem
                    };
                    comparativesEstacionamentos.AddressDestine = new Address {
                        StreetName = cenarioSelecionado.EnderecoDestino
                    };
                    comparativesEstacionamentos.Duration       = item.DurationValue;
                    comparativesEstacionamentos.Distance       = item.DistanceValue;
                    comparativesEstacionamentos.Cost           = valorEstacionamento;
                    comparativesEstacionamentos.TransporteType = eTransportOptions.Driver.ToString();

                    lsComparatives.Add(comparativesEstacionamentos);
                }

                return(lsComparatives);
            }
            else if (cenarioOption.Option.Equals("preferenceOption"))
            {
                //Melhor opção de transporte para cada preferencia do usuario
                List <ePreferences> preferencias = new List <ePreferences> {
                    ePreferences.Cost, ePreferences.Distance, ePreferences.Duration
                };

                foreach (var prefencia in preferencias)
                {
                }


                return(lsComparatives);
            }

            return(null);

            //foreach (var cen in cenarios)
            //{
            //Get Google maps para transporte publico
            //List<Options> optionsTransportePublico = await bestRoutesBusiness.GetBestRoutes(cen.EnderecoOrigem, cen.EnderecoDestino, cen.HorarioSaida, "transit");
            //foreach (var optp in optionsTransportePublico)
            //{
            //    optionValues.Add(new OptionValue { TransportOptions = eTransportOptions.PublicTransportation, Value = optp.CostValue });
            //    optionDistance.Add(new OptionDistance { TransportOptions = eTransportOptions.PublicTransportation, Value = optp.DistanceValue });
            //    optionDuration.Add(new OptionDuration { TransportOptions = eTransportOptions.PublicTransportation, Value = optp.DurationValue });
            //}

            //Get Google maps para veiculos
            //List<Options> optionsVeiculos = await bestRoutesBusiness.GetBestRoutes(cen.EnderecoOrigem, cen.EnderecoDestino, cen.HorarioSaida, "driving");

            //Fazer estimativa de custo com aplicativos de transporte
            //Fazer estimativa de custo com taxi
            //double valorTransporteAplicativo = 0.0;
            //double valorTaxi = 0.0;

            //foreach (var opt in optionsVeiculos)
            //{
            //    valorTransporteAplicativo = transportAppBusiness.GetCosts(opt.DurationValue, opt.DistanceValue);
            //    optionValues.Add(new OptionValue { TransportOptions = eTransportOptions.TransportApp, Value = valorTransporteAplicativo });
            //    optionDistance.Add(new OptionDistance { TransportOptions = eTransportOptions.TransportApp, Value = opt.DistanceValue });
            //    optionDuration.Add(new OptionDuration { TransportOptions = eTransportOptions.TransportApp, Value = opt.DurationValue });

            //    //

            //    valorTaxi = cabBusiness.GetCosts(opt.DurationValue, opt.DistanceValue, cen.HorarioSaida);
            //    optionValues.Add(new OptionValue { TransportOptions = eTransportOptions.Cab, Value = valorTaxi });
            //    optionDistance.Add(new OptionDistance { TransportOptions = eTransportOptions.Cab, Value = opt.DistanceValue });
            //    optionDuration.Add(new OptionDuration { TransportOptions = eTransportOptions.Cab, Value = opt.DurationValue });
            //}

            //Buscar estacionamentos perto da localização de destino
            //buscar preferencias do usuario
            //foreach (var est in estacionamentos)
            //{

            //}
            //}
        }
Пример #3
0
        //Orientation=> if pos = true else false 80%
        protected bool GetOpinionWordOrientation(string word, int position, string sentence)
        {
            FillPositiveWords();
            FillNegativeWords();
            FillAdverbs();
            FillComparatives();
            FillConjunctions();
            FillDecreasers();
            FillFutureWords();
            FillIncreasers();
            FillVerbs();
            FillNegations();
            //{pos}
            if (PositiveWords.Contains(word))
            {
                WordOrientation = true;
            }

            if (NegativeWords.Contains(word))
            {
                WordOrientation = false;
            }

            if (position != 0)
            {
                //{pos} {pos}
                if (PositiveWords.Contains(WordsInSentence[position - 1]))
                {
                    WordOrientation = true;
                }

                //{neg} {pos}
                if (NegativeWords.Contains(WordsInSentence[position - 1]))
                {
                    WordOrientation = false;
                }

                if (position >= 2)
                {
                    //{fut} {verb} {pos}
                    if (FutureWords.Contains(WordsInSentence[position - 2]) &&
                        Verbs.Contains(WordsInSentence[position - 1]) &&
                        PositiveWords.Contains(WordsInSentence[position]))
                    {
                        WordOrientation = true;
                    }

                    //{pos} {neg}
                    if (PositiveWords.Contains(WordsInSentence[position - 1]) &&
                        NegativeWords.Contains(WordsInSentence[position]))
                    {
                        WordOrientation = false;
                    }

                    //{decr} {comp} {pos}
                    if (Decreasers.Contains(WordsInSentence[position - 2]) && Comparatives.Contains(
                            WordsInSentence[position - 1]) &&
                        PositiveWords.Contains(
                            WordsInSentence[position]))
                    {
                        WordOrientation = true;
                    }

                    if (position >= 3)
                    {
                        //{pos} {conj} {nego} {cpos}
                        if (PositiveWords.Contains(WordsInSentence[position - 3]) && Conjunctions.Contains(
                                WordsInSentence[position - 2]) &&
                            Negations.Contains(
                                WordsInSentence[position - 1]) &&
                            PositiveWords.Contains(
                                WordsInSentence[position]))
                        {
                            WordOrientation = true;
                        }

                        //{neg} {conj} {incr} {cneg}
                        if (NegativeWords.Contains(WordsInSentence[position - 3]) && Conjunctions.Contains(
                                WordsInSentence[position - 2]) &&
                            Increasers.Contains(
                                WordsInSentence[position - 1]) &&
                            NegativeWords.Contains(
                                WordsInSentence[position]))
                        {
                            WordOrientation = false;
                        }
                    }
                }
            }

            return(WordOrientation);
        }