コード例 #1
0
        public LingvisticsResult ProcessText(LingvisticsTextInput input)
        {
//System.Diagnostics.Debugger.Break();
            if (input == null)
            {
                throw (new ArgumentNullException("input"));
            }
            if (input.Options == LingvisticsResultOptions.None)
            {
                return(null);
            }

            var rdfXml      = _LinguisticsKernelConroller.GetRDF_New(input.Text, input.AfterSpellChecking, input.BaseDate, (int)input.Mode);
            var coreference = _CoreferenceResolver?.Process(rdfXml);
            var result      = GetResultFromRDF(rdfXml, coreference, input.Options, input.GenerateAllSubthemes);

#if WITH_OM_TM
            if ((input.Options & LingvisticsResultOptions.OpinionMiningWithTonality) == LingvisticsResultOptions.OpinionMiningWithTonality)
            {
                DigestOutputResult opinionMiningWithTonalityResult = CreateOpinionMiningWithTonalityResult(rdfXml, coreference, input.ObjectAllocateMethod);
                return(new LingvisticsResult(input.Options, result.RDF, result.ThemeList, result.LinkList, opinionMiningWithTonalityResult));
            }
            else
            if ((input.Options & LingvisticsResultOptions.Tonality) == LingvisticsResultOptions.Tonality)
            {
                TonalityMarkingOutputResult tonalityResult = CreateTonalityResult(rdfXml, coreference, input.ObjectAllocateMethod, input.TonalityMarkingInput);
                return(new LingvisticsResult(input.Options, result.RDF, result.ThemeList, result.LinkList, tonalityResult));
            }
#endif
            return(result);
        }
コード例 #2
0
        public LingvisticsResult ProcessRDF(LingvisticsRDFInput input)
        {
            if (input == null)
            {
                throw (new ArgumentNullException("input"));
            }
            if (input.Options == LingvisticsResultOptions.None || input.Options == LingvisticsResultOptions.RDF)
            {
                return(null);
            }

            var rdfXml      = XElement.Parse(input.Rdf);
            var coreference = _CoreferenceResolver?.ReadFromRdf(rdfXml);
            var result      = GetResultFromRDF(rdfXml, coreference, input.Options, input.GenerateAllSubthemes);

#if WITH_OM_TM
            if ((input.Options & LingvisticsResultOptions.OpinionMiningWithTonality) == LingvisticsResultOptions.OpinionMiningWithTonality)
            {
                DigestOutputResult opinionMiningWithTonalityResult = CreateOpinionMiningWithTonalityResult(rdfXml, coreference, input.ObjectAllocateMethod);
                return(new LingvisticsResult(input.Options, result.RDF, result.ThemeList, result.LinkList, opinionMiningWithTonalityResult));
            }
            else
            if ((input.Options & LingvisticsResultOptions.Tonality) == LingvisticsResultOptions.Tonality)
            {
                TonalityMarkingOutputResult tonalityResult = CreateTonalityResult(rdfXml, coreference, input.ObjectAllocateMethod, input.TonalityMarkingInput);
                return(new LingvisticsResult(input.Options, result.RDF, result.ThemeList, result.LinkList, tonalityResult));
            }
#endif
            return(result);
        }
コード例 #3
0
 public LingvisticsResult(LingvisticsResultOptions options
                          , string rdf
                          , ThemeItem[] themeList
                          , LinkItem[]  linkList
                          , DigestOutputResult opinionMiningWithTonalityResult
                          )
     : this(options, rdf, themeList, linkList)
 {
     OpinionMiningWithTonalityResult = opinionMiningWithTonalityResult;
 }
コード例 #4
0
        private static string ConvertToHtml(HttpContext context, DigestOutputResult result)
        {
            const string ANYTHING_ISNT_PRESENT = "<span style='color: maroon; font-size: x-small;'>[Ничего нет.]</span>";
            const string TABLE_START           = "<table border='1' style='font-size: x-small;'><tr><th>#</th><th>SUBJECT</th><th>OBJECT</th><th>SENTENCE</th></tr>";
            const string TABLE_END             = "</table>";
            const string TABLE_ROW_FORMAT      = "<tr valign='top'><td>{0}</td><td>&nbsp;{1}</td><td>&nbsp;{2}</td><td style='padding: 3px;'>{3}</td></tr>";

            if (!result.Tuples.Any())
            {
                return(ANYTHING_ISNT_PRESENT);
            }

            const string XSLT_FILENAME = "FinalTonality.Digest.test.xslt";

            var xslt = new XslCompiledTransform(false);

            xslt.Load(context.Server.MapPath("~/App_Data/" + XSLT_FILENAME));

            var tmp    = new StringBuilder();
            var sb     = new StringBuilder(TABLE_START);
            var number = 0;

            foreach (var tuple in result.Tuples)
            {
                sb.AppendFormat
                (
                    TABLE_ROW_FORMAT,
                    (++number),
                    tuple.Subject.ToHtml(),
                    tuple.Object.ToHtml(),
                    tuple.GetSentence().Transform(xslt, tmp)
                );
            }
            sb.Append(TABLE_END);

            return(sb.ToString());
        }