/// <summary>
        /// Obtains sentiment of the passed review
        /// </summary>
        /// <param name="review"></param>
        /// <returns></returns>
        public static dynamic GetSentimentAnalysisOfReviewsFromParallelDots(String review)
        {
            String       parallelDotsApiKey = ConfigReader.ReadApiKey();
            paralleldots pd = new paralleldots(parallelDotsApiKey);
            dynamic      sentimentOfAnimeReviews;

            sentimentOfAnimeReviews = JObject.Parse(pd.sentiment(review));
            return(sentimentOfAnimeReviews);
        }
Ejemplo n.º 2
0
        public ActionResult FeedbackFormView([Bind(Include = "DeveloperId,SubtaskId,FeedbackStr,Positivity")] Feedback feedback)
        {
            Db_1Entities db = new Db_1Entities();

            if (ModelState.IsValid)
            {
                paralleldots pd        = new paralleldots("qZA1qGaGDNNbSUGiNSEOpBjxZreiijYM7y77VLCrlvw");
                var          sentiment = pd.sentiment(feedback.FeedbackStr);
                var          objects   = JObject.Parse(sentiment);
                var          posprob   = objects["probabilities"]["positive"].ToString();
                feedback.Positivity = Double.Parse(posprob);
                db.Feedbacks.Add(feedback);
                db.SaveChanges();
                return(RedirectToAction("FeedbackFormView"));
            }

            return(View(feedback));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// https://user.apis.paralleldots.com/
        /// Key:82ByzdYGAOwfVQwLoF76lcj1BgqbYQ2FMwd37BU0BbU
        /// this api is free for a month
        /// return keywords from the above api
        /// </summary>
        /// <returns>an array of all the keywords</returns>
        private string KeyWordsAPI(string phraseToAnalise)
        {
            if (String.IsNullOrEmpty(phraseToAnalise) || String.IsNullOrWhiteSpace(phraseToAnalise))
            {
                //no phrase to analise return empty
                return("");
            }
            // Initialize instance of api class
            paralleldots pd = new paralleldots("82ByzdYGAOwfVQwLoF76lcj1BgqbYQ2FMwd37BU0BbU");

            // for single sentences
            String keywords = pd.keywords(phraseToAnalise);

            return(keywords);

            //// for multiple sentence
            //JArray text_list = JArray.Parse("[\"" + phraseToAnalise + "\"]");
            //String keywords_batch = pd.keywords_batch(text_list);
            //return keywords_batch;
        }
        public ActionResult <bool> EvaluateStudents([FromBody] List <Evaluation> evaluations)
        {
            var dao = new EvaluationsDao();

            Directory.CreateDirectory(STUDENT_ANS_SHEET_UPLOAD_PATH);
            foreach (var e in evaluations)
            {
                Console.WriteLine("-------------------------------------------------------");
                Console.WriteLine($"Student Id {e.Student.Id}");
                Console.WriteLine($"DateTime {e.DateTime?.ToString("yyyy-MM-dd")}");
                var date     = e.DateTime?.ToString("yyyy_MM_dd");
                var fileName = $"AnswerKey_Student_{e.Student.Id}_{e.Examination.Course.CourseCode}_{date}.pdf";
                var filePath = Path.Combine(STUDENT_ANS_SHEET_UPLOAD_PATH, fileName);
                var bytes    = Convert.FromBase64String(e.AnswerSheet);
                System.IO.File.WriteAllBytes(filePath, bytes);
                Console.WriteLine("File Written");

                var refSheetName =
                    e.Examination.ReferenceAnswerSheet.Substring(
                        e.Examination.ReferenceAnswerSheet.LastIndexOf("/") + 1);

                var refSheetPath = Path.Combine(REFERENCE_ANS_SHEET_UPLOAD_PATH, refSheetName);
                Console.WriteLine($"Ref Sheet Path = {refSheetPath}");

                var studentPdf = new PdfFocus();
                Console.WriteLine($"Opening Student Pdf...");
                studentPdf.OpenPdf(filePath);
                var studentAnsText = studentPdf.ToText();
                Console.WriteLine("Student pdf read successfully!");
                studentPdf.ClosePdf();
                Console.WriteLine("Closing student pdf");

                var refPdf = new PdfFocus();
                Console.WriteLine("Opening reference pdf");
                refPdf.OpenPdf(refSheetPath);
                var refAnsText = refPdf.ToText();
                Console.WriteLine("Reference pdf read successfully!");
                refPdf.ClosePdf();
                Console.WriteLine("Closing reference pdf");

                paralleldots pd = new paralleldots("AliC73YnPPScR8dJJEMD8qxinhFTTUjFPmJGs5yknY0");
                Console.WriteLine("Calculating score");
                var similarity = pd.similarity(studentAnsText, refAnsText);

                var json  = JsonValue.Parse(similarity);
                var score = double.Parse(json["normalized_score"].ToString());
                Console.WriteLine($"Score = {score}");
                var percent = score / 5.0;
                Console.WriteLine($"Percentage = {percent}");

                e.MarksObtained = (int?)(e.Examination.TotalMarks * percent);

                e.AnswerSheet = $"/api/examinations/student-ans-sheet/get/{fileName}";

                Console.WriteLine("Writing result to database");
                dao.CreateEvaluation(e);
                Console.WriteLine("Written Successfully!");
            }

            return(true);
        }