hltfbk / Excitement-Transduction-Layer

1 stars 1 forks source link

Fragment and modifier annotation #365

Closed adrianaf closed 9 years ago

adrianaf commented 9 years ago

Hello,

we are integrating the verion 1.0.10 of the Tranduction Layer with our system.

The problem is that the Transduction Layer doesn't generate any graph (neither raw nor collapsed) because it doesn't generate any annotation (neither fragment annotation nor modifier annotation). Below you can find some raws of my logs:

10:54:21,962 INFO stdout 04.12.2014 10:54:21.961 INFO [eu.excitementproject.tl.toplevel.usecaseonerunner.UseCaseOneRunnerPrototype] INFO:NR_OF_NODES = 1.0 10:54:21,962 INFO stdout 04.12.2014 10:54:21.962 INFO [eu.excitementproject.tl.toplevel.usecaseonerunner.UseCaseOneRunnerPrototype] INFO:NR_OF_NODES_CUMULATIVE = 99 10:54:21,975 INFO stdout 04.12.2014 10:54:21.975 INFO [eu.excitementproject.tl.decomposition.fragmentannotator.KeywordBasedFixedLengthFragmentAnnotator] No keyword annotations found 10:54:21,976 INFO stdout 04.12.2014 10:54:21.976 INFO [eu.excitementproject.tl.decomposition.fragmentannotator.KeywordBasedFixedLengthFragmentAnnotator] Annotated 0 determined fragments 10:54:21,976 INFO stdout 04.12.2014 10:54:21.976 INFO [eu.excitementproject.tl.decomposition.modifierannotator] No Fragment annotations found

I'm using the following interface to call the Transduction Layer:

eu.excitementproject.tl.toplevel.usecaseonerunner.UseCaseOneRunnerPrototype.UseCaseOneRunnerPrototype(String configFileName, String outputPath, Class<?> lapClass, Class<?> edaClass, String setting)

I'm using the following configuration:

My input is composed by 100 txt files representing the interactions.

Where am I wrong?

Thank you Best regards Adriana

vnastase commented 9 years ago

Hi Adriana

Your interactions have no keyword annotations and you are using the "default" fragment annotator that needs keywords. Use instead the SentenceAsFragmentAnnotator. You can set it explicitly either in constructor or by calling the corresponding method (setFragmentAnnotator) from the experiment class (inherited from UseCaseOneRunnerPrototype)

Vivi

adrianaf commented 9 years ago

Yes, you're right, I saw my mistake as soon as I submitted the question, sorry!

Thank you very much! Best regards Adriana

adrianaf commented 9 years ago

Just another question: what are the "best" fragment annotator and modifier annotator I can use? I'm feeding the system with 100 interactions taken from the three clusters of the social channel I wrote you about in an email I sent you.

Thank you Best regards Adriana

vnastase commented 9 years ago

If you don't have keywords, the only fragment annotator that can be used now is the SentenceAsFragmentAnnotator. As for modifiers, the best performer right now is AdvAdjPPAsModifierAnnotator . The problem is that it will annotate lots of modifiers, and with long fragments as the SentenceAsFragmentAnnotator will produce, the fragment graphs will be very very big, so I suggest you use FragmentGraphLiteGeneratorFromCAS.

Vivi

adrianaf commented 9 years ago

Ok, so I'll use the FragmentGraphLiteGeneratorFromCAS with AdvAdjPPAsModifierAnnotator.

Thank you very much! Best regards Adriana

vnastase commented 9 years ago

You use SentenceAsFragmentAnnotator with AdvAdjPPAsModifierAnnotator, and then FragmentGraphLiteGeneratorFromCAS when generating the graphs.

Vivi

On Thu, Dec 4, 2014 at 12:11 PM, adrianaf notifications@github.com wrote:

Ok, so I'll use the FragmentGraphLiteGeneratorFromCAS with AdvAdjPPAsModifierAnnotator.

Thank you very much! Best regards Adriana

— Reply to this email directly or view it on GitHub https://github.com/hltfbk/Excitement-Transduction-Layer/issues/365#issuecomment-65617210 .


Dr. Vivi Nastase

Human Language Technologies Research Unit Fondazione Bruno Kessler Via Sommarive 18, 38123 Povo - Trento (Italy) nastase@fbk.eu

adrianaf commented 9 years ago

Ok, so when I initialize the UseCaseOneRunnerPrototype, I set (there are a lot of setter methods, thank you! :) ) the fragment annotator, the modifier annotator and the fragment graph generator, right?

vnastase commented 9 years ago

You can specify the fragment and modifier annotators in the constructor:

UseCaseOneRunnerPrototype(String configFileName, String outputPath, FragmentAnnotator fragmentAnnotator, ModifierAnnotator modifierAnnotator)

and then set the fragment graph generator:

setFragmentGraphGenerator(FragmentGraphGenerator fragGen)

Vivi

adrianaf commented 9 years ago

Yes but I need to use the constructor that allows to specify the lap class: .UseCaseOneRunnerPrototype(String configFileName, String outputPath, Class<?> lapClass, Class<?> edaClass) I think it's ok to set the fragment and modifier annotators using the setter methods, am I right?

Thank you again Adriana

vnastase commented 9 years ago

You can specify the lap class and the EDA class in the configuration file, but you can do it in the constructor as well. We have put lots of constructor that cover a variety of situtaions, but putting all combinations is not feasuble, This one could work for you, or you can use whatever combination of set methods you need.

UseCaseOneRunnerPrototype(String configFileName, String outputPath, Class<?> lapClass, Class<?> edaClass, FragmentAnnotator fragmentAnnotator, ModifierAnnotator modifierAnnotator)

On Thu, Dec 4, 2014 at 12:25 PM, adrianaf notifications@github.com wrote:

Yes but I need to use the constructor that allows to specify the lap class: .UseCaseOneRunnerPrototype(String configFileName, String outputPath, Class<?> lapClass, Class<?> edaClass) I think it's ok to set the fragment and modifier annotators using the setter methods, right?

Thank you again Adriana

— Reply to this email directly or view it on GitHub https://github.com/hltfbk/Excitement-Transduction-Layer/issues/365#issuecomment-65618670 .


Dr. Vivi Nastase

Human Language Technologies Research Unit Fondazione Bruno Kessler Via Sommarive 18, 38123 Povo - Trento (Italy) nastase@fbk.eu

adrianaf commented 9 years ago

Ok, thank you very much! The thing that there is a wide variety of setter methods and constructors is a really good thing in my opinion: this gives the user great flexibility.

Thank you again Adriana