public virtual void convert(TaggedLemma tagged_lemma)
 {
     morphodita_csharpPINVOKE.TagsetConverter_convert(swigCPtr, TaggedLemma.getCPtr(tagged_lemma));
     if (morphodita_csharpPINVOKE.SWIGPendingException.Pending)
     {
         throw morphodita_csharpPINVOKE.SWIGPendingException.Retrieve();
     }
 }
Exemple #2
0
    public static int Main(string[] args)
    {
        if (args.Length < 1)
        {
            Console.Error.WriteLine("Usage: RunMorphoCli tagger_file");
            return(1);
        }

        Console.Error.Write("Loading tagger: ");
        Tagger tagger = Tagger.load(args[0]);

        if (tagger == null)
        {
            Console.Error.WriteLine("Cannot load tagger from file '{0}'", args[0]);
            return(1);
        }
        Console.Error.WriteLine("done");

        Forms        forms     = new Forms();
        TaggedLemmas lemmas    = new TaggedLemmas();
        TokenRanges  tokens    = new TokenRanges();
        Tokenizer    tokenizer = tagger.newTokenizer();

        if (tokenizer == null)
        {
            Console.Error.WriteLine("No tokenizer is defined for the supplied model!");
            return(1);
        }

        XmlTextWriter xmlOut = new XmlTextWriter(Console.Out);

        for (bool not_eof = true; not_eof;)
        {
            string        line;
            StringBuilder textBuilder = new StringBuilder();

            // Read block
            while ((not_eof = (line = Console.In.ReadLine()) != null) && line.Length > 0)
            {
                textBuilder.Append(line).Append('\n');
            }
            if (not_eof)
            {
                textBuilder.Append('\n');
            }

            // Tokenize and tag
            string text = textBuilder.ToString();
            tokenizer.setText(text);
            int t = 0;
            while (tokenizer.nextSentence(forms, tokens))
            {
                tagger.tag(forms, lemmas);

                for (int i = 0; i < lemmas.Count; i++)
                {
                    TaggedLemma lemma = lemmas[i];
                    int         token_start = (int)tokens[i].start, token_length = (int)tokens[i].length;
                    xmlOut.WriteString(text.Substring(t, token_start - t));
                    if (i == 0)
                    {
                        xmlOut.WriteStartElement("sentence");
                    }
                    xmlOut.WriteStartElement("token");
                    xmlOut.WriteAttributeString("lemma", lemma.lemma);
                    xmlOut.WriteAttributeString("tag", lemma.tag);
                    xmlOut.WriteString(text.Substring(token_start, token_length));
                    xmlOut.WriteEndElement();
                    if (i + 1 == lemmas.Count)
                    {
                        xmlOut.WriteEndElement();
                    }
                    t = token_start + token_length;
                }
            }
            xmlOut.WriteString(text.Substring(t));
        }
        return(0);
    }
Exemple #3
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TaggedLemma obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }