コード例 #1
0
        public void TestAccuracy()
        {
            int correct = 0, total = 0;
            var mostFrequentTreeAutoSemantic = new MostFrequentTreeAutoSemantic(wordNet, fsm);
            var treeBank1 = new TreeBankDrawable("../../../new-trees/");
            var treeBank2 = new TreeBankDrawable("../../../old-trees/");

            for (var i = 0; i < treeBank1.Size(); i++)
            {
                var parseTree1 = treeBank1.Get(i);
                var parseTree2 = treeBank2.Get(i);
                mostFrequentTreeAutoSemantic.AutoSemantic(parseTree1);
                var nodeDrawableCollector1 =
                    new NodeDrawableCollector((ParseNodeDrawable)parseTree1.GetRoot(), new IsTurkishLeafNode());
                var leafList1 = nodeDrawableCollector1.Collect();
                var nodeDrawableCollector2 =
                    new NodeDrawableCollector((ParseNodeDrawable)parseTree2.GetRoot(), new IsTurkishLeafNode());
                var leafList2 = nodeDrawableCollector2.Collect();
                for (var j = 0; j < leafList1.Count; j++)
                {
                    total++;
                    var parseNode1 = leafList1[j];
                    var parseNode2 = leafList2[j];
                    if (parseNode1.GetLayerData(ViewLayerType.SEMANTICS) != null && parseNode1
                        .GetLayerData(ViewLayerType.SEMANTICS).Equals(parseNode2.GetLayerData(ViewLayerType.SEMANTICS)))
                    {
                        correct++;
                    }
                }
            }

            Assert.AreEqual(475, total);
            Assert.AreEqual(260, correct);
        }
コード例 #2
0
        public Corpus.Corpus Convert(IConstituencyToDependencyTreeConverter constituencyToDependencyTreeConverter)
        {
            var annotatedCorpus = new Corpus.Corpus();

            for (var i = 0; i < _treeBank.Size(); i++)
            {
                annotatedCorpus.AddSentence(constituencyToDependencyTreeConverter.Convert(_treeBank.Get(i), null));
            }
            return(annotatedCorpus);
        }
コード例 #3
0
        /**
         * <summary> Creates a dataSet from the treeBank. Calls generateInstanceListFromTree for each parse tree in the treeBank.</summary>
         * <returns>Created dataSet.</returns>
         */
        public DataSet Generate()
        {
            var dataSet = new DataSet();

            for (var i = 0; i < _treeBank.Size(); i++)
            {
                var parseTree = _treeBank.Get(i);
                dataSet.AddInstanceList(GenerateInstanceListFromTree(parseTree));
            }

            return(dataSet);
        }
コード例 #4
0
        /**
         * <summary> Creates a named entity recognition corpus from the treeBank. Calls generateAnnotatedSentence for each parse tree
         * in the treebank.</summary>
         *
         * <returns>Created corpus.</returns>
         */
        public NERCorpus Generate()
        {
            var corpus = new NERCorpus();

            for (var i = 0; i < _treeBank.Size(); i++)
            {
                var parseTree = _treeBank.Get(i);
                if (parseTree.LayerAll(ViewLayerType.NER))
                {
                    Sentence sentence = parseTree.GenerateAnnotatedSentence();
                    corpus.AddSentence(sentence);
                }
            }

            return(corpus);
        }
コード例 #5
0
        /**
         * <summary> Creates a morphological disambiguation corpus from the treeBank. Calls generateAnnotatedSentence for each parse
         * tree in the treebank.</summary>
         *
         * <returns>Created disambiguation corpus.</returns>
         */
        public DisambiguationCorpus Generate()
        {
            var corpus = new DisambiguationCorpus();

            for (var i = 0; i < _treeBank.Size(); i++)
            {
                var parseTree = _treeBank.Get(i);
                if (parseTree.LayerAll(ViewLayerType.INFLECTIONAL_GROUP))
                {
                    var sentence = parseTree.GenerateAnnotatedSentence();
                    var disambiguationSentence = new AnnotatedSentence.AnnotatedSentence("");
                    for (var j = 0; j < sentence.WordCount(); j++)
                    {
                        disambiguationSentence.AddWord(new DisambiguatedWord(sentence.GetWord(j).GetName(),
                                                                             ((AnnotatedWord)sentence.GetWord(j)).GetParse()));
                    }

                    corpus.AddSentence(sentence);
                }
            }

            return(corpus);
        }