Exemplo n.º 1
0
        /// <summary>
        /// おみくじ分析
        /// </summary>
        public void AnalysOmikuji()
        {
            MOmikuji omikuji = this.OmikijiEntities.Omikujis.First();

            Console.WriteLine($"おみくじ結果:{this.GetCodeText(omikuji.RankCode)}");
            this.SentimentAnalysOmikuji(omikuji);
        }
Exemplo n.º 2
0
        /// <summary>
        /// おみくじ内容分析
        /// </summary>
        /// <param name="omikuji"></param>
        /// <param name="omikujiText"></param>
        /// <param name="categoryCode"></param>
        private void AnalysOmikujiText(MOmikuji omikuji, string omikujiText, string categoryCode)
        {
            // 分析実行
            DocumentSentiment sentiment = this.Client.AnalyzeSentiment(omikujiText);

            // おみくじ分析結果生成
            TOmikujiAnalytics omikujiAnalytics = new TOmikujiAnalytics(omikuji.Id, omikujiText, categoryCode, sentiment);

            Console.WriteLine($"{this.GetCodeText(categoryCode)}:");

            this.OmikijiEntities.OmikujiAnalytics.Add(omikujiAnalytics);
            // 分析結果をコンソールに出力
            this.ConsoleOutput(omikujiText, sentiment.Sentiment, sentiment.ConfidenceScores);
            this.OmikijiEntities.SaveChanges();

            // 分析結果が複数ある場合(文1,文2…)、文章全体の分析結果を親とし、さらに細かく分析し子要素を作成
            if (sentiment.Sentences.Count > 1)
            {
                // 文章をさらに分析(句読点がついている場合に文1,文2…となる)
                foreach (SentenceSentiment sentence in sentiment.Sentences)
                {
                    // 最初の分析結果に紐づけ、おみくじ分析結果生成
                    TOmikujiAnalytics child = new TOmikujiAnalytics(omikuji.Id, omikujiAnalytics.Id, categoryCode, sentence);
                    this.OmikijiEntities.OmikujiAnalytics.Add(child);
                    // 分析結果をコンソールに出力
                    this.ConsoleOutput(sentence.Text, sentence.Sentiment, sentence.ConfidenceScores);
                }

                this.OmikijiEntities.SaveChanges();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// おみくじデータ追加
        /// </summary>
        public void AddOmikuji()
        {
            MOmikuji     omikuji = this.GetMOmikuji();
            List <MCode> codes   = this.GetCodes();

            this.OmikijiEntities.Omikujis.Add(omikuji);
            this.OmikijiEntities.Codes.AddRange(codes);
            this.OmikijiEntities.SaveChanges();
        }
Exemplo n.º 4
0
        /// <summary>
        /// センチメント分析
        /// </summary>
        /// <param name="omikuji"></param>
        private void SentimentAnalysOmikuji(MOmikuji omikuji)
        {
            Type type = typeof(MOmikuji);

            PropertyInfo[] propertyInfos = type.GetProperties();

            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                // プロパティがおみくじ属性を持つ場合、分析実施
                OmikujiAttribute attribute = propertyInfo.GetCustomAttributes <OmikujiAttribute>().FirstOrDefault();
                if (attribute != null)
                {
                    // 分析内容取得
                    string omikujiText = propertyInfo.GetGetMethod().Invoke(omikuji, null).ToString();
                    this.AnalysOmikujiText(omikuji, omikujiText, attribute.CategoryCode);
                }
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// おみくじデータ追加
        /// </summary>
        /// <returns></returns>
        private MOmikuji GetMOmikuji()
        {
            MOmikuji omikuji = new MOmikuji();

            omikuji.RankCode    = OmikujiConst.CD_OMIKUJI_KEKKA + OmikujiConst.KEKKA_SUEKICHI;
            omikuji.Body        = "暦の上ではうららかな春を迎えながらも依然として冬の様な時候。しかしながら冬ごもりの草木が芽を出すのは目前にある。苦あれば、楽あり。くよくよせずに春を待つがよい。";
            omikuji.Ganbo       = "叶う。されど無理な願いはよせ";
            omikuji.Machibito   = "遅けれど来たる";
            omikuji.Shitsubutsu = "長引けど出る";
            omikuji.Ryoko       = "あせらぬが吉";
            omikuji.Syobai      = "後程利益多し";
            omikuji.Hogaku      = "北東の方よし";
            omikuji.Gakugyo     = "人にたよるな。自分でなせば叶う。";
            omikuji.Arasoigoto  = "よくよく見定めよ";
            omikuji.Tenkyo      = "さわりなし吉";
            omikuji.Syussan     = "思いのほかかるし";
            omikuji.Byoki       = "危き様なるも癒ゆ";
            omikuji.Endan       = "良縁ありまとまる";

            return(omikuji);
        }