Code Monkey home page Code Monkey logo

Comments (10)

sergey-tihon avatar sergey-tihon commented on July 17, 2024

most probably you cannot use typeof you need java.lang.Class

public static java.lang.Class GetAnnotationClass<T>()
            => ikvm.@internal.ClassLiteral<T>.Value; // or = new T().getClass()

var sentences = annotation.get(GetAnnotationClass<CoreAnnotations.SentencesAnnotation>());
foreach(CoreMap sentence in sentences as ArrayList){
    var tree = sentence.get(GetAnnotationClass<TreeCoreAnnotations.TreeAnnotation>()) as Tree;
    tree.constituents(); // most likely Tree is edu.stanford.nlp.trees.Tree
}

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

Thank you for the quick response!

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

I get the error " cannot convert from 'method group' to 'Class' " on these two lines:

GetAnnotationClass<CoreAnnotations.SentencesAnnotation>
GetAnnotationClass<TreeCoreAnnotations.TreeAnnotation>

from stanford.nlp.net.

sergey-tihon avatar sergey-tihon commented on July 17, 2024

Sorry, I forgot brackets, GetAnnotationClass is a method that that we should call, so GetAnnotationClass<T>()

var sentences = annotation.get(GetAnnotationClass<CoreAnnotations.SentencesAnnotation>());

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

Thank you so much it worked! I am just still new with C# so I don't understand why I'm getting "Object reference not set to an instance of an object." when using "java.util.ArrayList":

            var sentences = annotation.get(GetAnnotationClass<CoreAnnotations.SentencesAnnotation>());
            foreach (CoreMap sentence in sentences as java.util.ArrayList)
            {
                Tree tree = sentence.get(GetAnnotationClass<TreeCoreAnnotations.TreeAnnotation>()) as Tree;
                var treeConstituents = tree.constituents(new LabeledScoredConstituentFactory());
                foreach (Constituent constituent in treeConstituents as java.util.ArrayList) // I get the error here
                {
                    if (constituent.label().toString().Equals("NP"))
                    {
                        Console.WriteLine(constituent.toString());
                        Console.WriteLine(tree.getLeaves().subList(constituent.start(), constituent.end() + 1));
                    }
                }

            }

As compared with the example I showed previously by the CoreNLP website, I cannot use "Set<Constituent>" so I used "var" instead but still get the error.

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

Nevermind! I think I might have solved it by using "java.util.AbstractSet" instead of "java.util.ArrayList". Thanks again!

from stanford.nlp.net.

sergey-tihon avatar sergey-tihon commented on July 17, 2024

interior with Java/IKVM types is not very intuitive.
If you not sure what exact type is returned from annotation, you can take a look in debugger it Console.WriteLine(obj.GetType())

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

Oh I see now, thank you. Excuse me for bothering, and perhaps this is out of your area of expertise but, I have been using CoreNLP within Unity and since adding the lines:

    public static java.lang.Class GetAnnotationClass<T>()
        	=> ikvm.@internal.ClassLiteral<T>.Value;

I have been getting an error about not being able to load the file "IKVM.OpenJDK.Core, Version 8.1". I was wondering if you could think of any DLL that I could be missing which could add the "GetAnnotationClass()" functionality within Unity? The full error within the console is this:

Error: Could not load signature of NLP:GetAnnotationClass due to: Could not load file or assembly 'IKVM.OpenJDK.Core, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58' or one of its dependencies. assembly:IKVM.OpenJDK.Core, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58 type: member:(null) signature:

I greatly appreciate any feedback.

from stanford.nlp.net.

sergey-tihon avatar sergey-tihon commented on July 17, 2024
  1. I would check that IKVM.OpenJDK.Core is actually present near you exe or
  2. If you are on Windows you use Fuslogvw.exe to log all assembly resolution requests and result to find out what file was no resolved.
  3. you can try to replace GetAnnotationClass<T>() call by new T().getClass() and compare results

from stanford.nlp.net.

Eric-Ryan avatar Eric-Ryan commented on July 17, 2024

new T().getClass() worked perfectly. Thanks again.

from stanford.nlp.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.