# Frage zur Stanford NLP-API



## HPL (1. Nov 2012)

Ich beschäftige mich gerade mit der Stanford NLP: Stanford JavaNLP API

Es gibt dort ein Interface mit dem namen "TagProcejtion" mit den folgenden Daten:


> edu.stanford.nlp.parser.lexparser
> Interface TagProjection
> 
> All Superinterfaces:
> Serializable



Das Interface an sich ist nichts Besonderes. Was ich aber nicht verstehe, ist die Tatsache, dass es in der Argumentliste eines Konstruktors vorkommt, nämlich des AbstractDependencyGrammar-Objekts.

Dies ist wie folgt definiert:


> edu.stanford.nlp.parser.lexparser
> Class AbstractDependencyGrammar
> 
> java.lang.Object
> ...



Und sein Konstruktor sieht wie folgt aus: *AbstractDependencyGrammar(TreebankLanguagePack tlp, TagProjection tagProjection, boolean directional, boolean useDistance, boolean useCoarseDistance, Options op, Index<String> wordIndex, Index<String> tagIndex)* 


Ich habe 2 Fragen dazu:

-Wie kann es sein, dass ein Interface Argument eines Konstruktors ist?

-Wenn jemand Ahnung von diesem Stanford-Core-NLP-Ding hat - wozu wird denn TagProjection verwendet? Ich werde aus der in der API sethenden Beschreibung 





> An interface for projecting POS tags onto a reduced set for the dependency grammar.


 nicht so recht schlau.

Im Voraus besten Dank für Rückmeldungen!


----------



## nillehammer (1. Nov 2012)

> -Wie kann es sein, dass ein Interface Argument eines Konstruktors ist?


Weil die entsprechende Klasse gerne eine Methode/Methoden des Interfaces aufrufen möchte. Übergeben tust Du natürlich eine Instanz einer Klasse, die das Interface implementiert. (Es wäre auch denkbar, eine enum-Konstante zu übergeben, die das Interface implementiert)

Als Beispiel fallen mir die Konstruktoren von TreeSet/TreeMap ein. Die sind per se sortiert. Mit einer Implementierung eines Comparators kannst du denen mitgeben, wie die Elemente sortiert sein sollen. So kann man auch Elemente sortieren, die selbst nicht Comparable sind.


----------



## HPL (1. Nov 2012)

Achso, klar - Danke Dir!


----------

