You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opennlp.apache.org by jo...@apache.org on 2011/11/07 19:46:26 UTC
svn commit: r1198867 - in
/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention:
AbstractParse.java JWNLDictionary.java
Author: joern
Date: Mon Nov 7 18:46:25 2011
New Revision: 1198867
URL: http://svn.apache.org/viewvc?rev=1198867&view=rev
Log:
OPENNLP-357 Fixed inconsistent line ending style
Modified:
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/AbstractParse.java
incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/JWNLDictionary.java
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/AbstractParse.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/AbstractParse.java?rev=1198867&r1=1198866&r2=1198867&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/AbstractParse.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/AbstractParse.java Mon Nov 7 18:46:25 2011
@@ -15,47 +15,47 @@
* limitations under the License.
*/
-package opennlp.tools.coref.mention;
-
+package opennlp.tools.coref.mention;
+
import java.util.ArrayList;
import java.util.List;
-
-/**
- * Provides default implemenation of many of the methods in the {@link Parse} interface.
- */
-public abstract class AbstractParse implements Parse {
-
- public boolean isCoordinatedNounPhrase() {
- List<Parse> parts = getSyntacticChildren();
- if (parts.size() >= 2) {
- for (int pi = 1; pi < parts.size(); pi++) {
- Parse child = parts.get(pi);
- String ctype = child.getSyntacticType();
- if (ctype != null && ctype.equals("CC") && !child.toString().equals("&")) {
- return true;
- }
- }
- }
- return false;
- }
-
- public List<Parse> getNounPhrases() {
- List<Parse> parts = getSyntacticChildren();
- List<Parse> nps = new ArrayList<Parse>();
- while (parts.size() > 0) {
- List<Parse> newParts = new ArrayList<Parse>();
- for (int pi=0,pn=parts.size();pi<pn;pi++) {
- //System.err.println("AbstractParse.getNounPhrases "+parts.get(pi).getClass());
- Parse cp = parts.get(pi);
- if (cp.isNounPhrase()) {
- nps.add(cp);
- }
- if (!cp.isToken()) {
- newParts.addAll(cp.getSyntacticChildren());
- }
- }
- parts = newParts;
- }
- return nps;
- }
+
+/**
+ * Provides default implemenation of many of the methods in the {@link Parse} interface.
+ */
+public abstract class AbstractParse implements Parse {
+
+ public boolean isCoordinatedNounPhrase() {
+ List<Parse> parts = getSyntacticChildren();
+ if (parts.size() >= 2) {
+ for (int pi = 1; pi < parts.size(); pi++) {
+ Parse child = parts.get(pi);
+ String ctype = child.getSyntacticType();
+ if (ctype != null && ctype.equals("CC") && !child.toString().equals("&")) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public List<Parse> getNounPhrases() {
+ List<Parse> parts = getSyntacticChildren();
+ List<Parse> nps = new ArrayList<Parse>();
+ while (parts.size() > 0) {
+ List<Parse> newParts = new ArrayList<Parse>();
+ for (int pi=0,pn=parts.size();pi<pn;pi++) {
+ //System.err.println("AbstractParse.getNounPhrases "+parts.get(pi).getClass());
+ Parse cp = parts.get(pi);
+ if (cp.isNounPhrase()) {
+ nps.add(cp);
+ }
+ if (!cp.isToken()) {
+ newParts.addAll(cp.getSyntacticChildren());
+ }
+ }
+ parts = newParts;
+ }
+ return nps;
+ }
}
Modified: incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/JWNLDictionary.java
URL: http://svn.apache.org/viewvc/incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/JWNLDictionary.java?rev=1198867&r1=1198866&r2=1198867&view=diff
==============================================================================
--- incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/JWNLDictionary.java (original)
+++ incubator/opennlp/trunk/opennlp-tools/src/main/java/opennlp/tools/coref/mention/JWNLDictionary.java Mon Nov 7 18:46:25 2011
@@ -15,8 +15,8 @@
* limitations under the License.
*/
-package opennlp.tools.coref.mention;
-
+package opennlp.tools.coref.mention;
+
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -44,138 +44,138 @@ import net.didion.jwnl.dictionary.morph.
import net.didion.jwnl.dictionary.morph.TokenizerOperation;
import net.didion.jwnl.princeton.data.PrincetonWN17FileDictionaryElementFactory;
import net.didion.jwnl.princeton.file.PrincetonRandomAccessDictionaryFile;
-
-/**
- * An implementation of the Dictionary interface using the JWNL library.
- */
-public class JWNLDictionary implements Dictionary {
-
- private net.didion.jwnl.dictionary.Dictionary dict;
- private MorphologicalProcessor morphy;
- private static String[] empty = new String[0];
-
- public JWNLDictionary(String searchDirectory) throws IOException, JWNLException {
- PointerType.initialize();
- Adjective.initialize();
- VerbFrame.initialize();
- Map<POS, String[][]> suffixMap = new HashMap<POS, String[][]>();
- suffixMap.put(POS.NOUN,new String[][] {{"s",""},{"ses","s"},{"xes","x"},{"zes","z"},{"ches","ch"},{"shes","sh"},{"men","man"},{"ies","y"}});
- suffixMap.put(POS.VERB,new String[][] {{"s",""},{"ies","y"},{"es","e"},{"es",""},{"ed","e"},{"ed",""},{"ing","e"},{"ing",""}});
- suffixMap.put(POS.ADJECTIVE,new String[][] {{"er",""},{"est",""},{"er","e"},{"est","e"}});
- DetachSuffixesOperation tokDso = new DetachSuffixesOperation(suffixMap);
- tokDso.addDelegate(DetachSuffixesOperation.OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation()});
- TokenizerOperation tokOp = new TokenizerOperation(new String[] {" ","-"});
- tokOp.addDelegate(TokenizerOperation.TOKEN_OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation(),tokDso});
- DetachSuffixesOperation morphDso = new DetachSuffixesOperation(suffixMap);
- morphDso.addDelegate(DetachSuffixesOperation.OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation()});
- Operation[] operations = {new LookupExceptionsOperation(), morphDso , tokOp};
- morphy = new DefaultMorphologicalProcessor(operations);
- FileManager manager = new FileManagerImpl(searchDirectory,PrincetonRandomAccessDictionaryFile.class);
- FileDictionaryElementFactory factory = new PrincetonWN17FileDictionaryElementFactory();
- FileBackedDictionary.install(manager, morphy,factory,true);
- dict = net.didion.jwnl.dictionary.Dictionary.getInstance();
- morphy = dict.getMorphologicalProcessor();
- }
-
- @SuppressWarnings("unchecked")
- public String[] getLemmas(String word, String tag) {
- try {
- POS pos;
- if (tag.startsWith("N") || tag.startsWith("n")) {
- pos = POS.NOUN;
- }
- else if (tag.startsWith("N") || tag.startsWith("v")) {
- pos = POS.VERB;
- }
- else if (tag.startsWith("J") || tag.startsWith("a")) {
- pos = POS.ADJECTIVE;
- }
- else if (tag.startsWith("R") || tag.startsWith("r")) {
- pos = POS.ADVERB;
- }
- else {
- pos = POS.NOUN;
- }
- List<String> lemmas = morphy.lookupAllBaseForms(pos,word);
- return lemmas.toArray(new String[lemmas.size()]);
- }
- catch (JWNLException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public String getSenseKey(String lemma, String pos,int sense) {
- try {
- IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
- if (iw == null) {
- return null;
- }
- return String.valueOf(iw.getSynsetOffsets()[sense]);
- }
- catch (JWNLException e) {
- e.printStackTrace();
- return null;
- }
-
- }
-
- public int getNumSenses(String lemma, String pos) {
- try {
- IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
- if (iw == null){
- return 0;
- }
- return iw.getSenseCount();
- }
- catch (JWNLException e) {
- return 0;
- }
- }
-
- private void getParents(Synset synset, List<String> parents) throws JWNLException {
- Pointer[] pointers = synset.getPointers();
- for (int pi=0,pn=pointers.length;pi<pn;pi++) {
- if (pointers[pi].getType() == PointerType.HYPERNYM) {
- Synset parent = pointers[pi].getTargetSynset();
- parents.add(String.valueOf(parent.getOffset()));
- getParents(parent,parents);
- }
- }
- }
-
- public String[] getParentSenseKeys(String lemma, String pos, int sense) {
- //System.err.println("JWNLDictionary.getParentSenseKeys: lemma="+lemma);
- try {
- IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
- if (iw != null) {
- Synset synset = iw.getSense(sense+1);
- List<String> parents = new ArrayList<String>();
- getParents(synset,parents);
- return parents.toArray(new String[parents.size()]);
- }
- else {
- return empty;
- }
- }
- catch (JWNLException e) {
- e.printStackTrace();
- return null;
- }
- }
-
- public static void main(String[] args) throws IOException, JWNLException {
- String searchDir = System.getProperty("WNSEARCHDIR");
- System.err.println("searchDir="+searchDir);
- if (searchDir != null) {
- Dictionary dict = new JWNLDictionary(System.getProperty("WNSEARCHDIR"));
- String word = args[0];
- String[] lemmas = dict.getLemmas(word,"NN");
- for (int li=0,ln=lemmas.length;li<ln;li++) {
- for (int si=0,sn=dict.getNumSenses(lemmas[li],"NN");si<sn;si++) {
- System.out.println(lemmas[li]+" ("+si+")\t"+java.util.Arrays.asList(dict.getParentSenseKeys(lemmas[li],"NN",si)));
- }
- }
- }
- }
-}
+
+/**
+ * An implementation of the Dictionary interface using the JWNL library.
+ */
+public class JWNLDictionary implements Dictionary {
+
+ private net.didion.jwnl.dictionary.Dictionary dict;
+ private MorphologicalProcessor morphy;
+ private static String[] empty = new String[0];
+
+ public JWNLDictionary(String searchDirectory) throws IOException, JWNLException {
+ PointerType.initialize();
+ Adjective.initialize();
+ VerbFrame.initialize();
+ Map<POS, String[][]> suffixMap = new HashMap<POS, String[][]>();
+ suffixMap.put(POS.NOUN,new String[][] {{"s",""},{"ses","s"},{"xes","x"},{"zes","z"},{"ches","ch"},{"shes","sh"},{"men","man"},{"ies","y"}});
+ suffixMap.put(POS.VERB,new String[][] {{"s",""},{"ies","y"},{"es","e"},{"es",""},{"ed","e"},{"ed",""},{"ing","e"},{"ing",""}});
+ suffixMap.put(POS.ADJECTIVE,new String[][] {{"er",""},{"est",""},{"er","e"},{"est","e"}});
+ DetachSuffixesOperation tokDso = new DetachSuffixesOperation(suffixMap);
+ tokDso.addDelegate(DetachSuffixesOperation.OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation()});
+ TokenizerOperation tokOp = new TokenizerOperation(new String[] {" ","-"});
+ tokOp.addDelegate(TokenizerOperation.TOKEN_OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation(),tokDso});
+ DetachSuffixesOperation morphDso = new DetachSuffixesOperation(suffixMap);
+ morphDso.addDelegate(DetachSuffixesOperation.OPERATIONS,new Operation[] {new LookupIndexWordOperation(),new LookupExceptionsOperation()});
+ Operation[] operations = {new LookupExceptionsOperation(), morphDso , tokOp};
+ morphy = new DefaultMorphologicalProcessor(operations);
+ FileManager manager = new FileManagerImpl(searchDirectory,PrincetonRandomAccessDictionaryFile.class);
+ FileDictionaryElementFactory factory = new PrincetonWN17FileDictionaryElementFactory();
+ FileBackedDictionary.install(manager, morphy,factory,true);
+ dict = net.didion.jwnl.dictionary.Dictionary.getInstance();
+ morphy = dict.getMorphologicalProcessor();
+ }
+
+ @SuppressWarnings("unchecked")
+ public String[] getLemmas(String word, String tag) {
+ try {
+ POS pos;
+ if (tag.startsWith("N") || tag.startsWith("n")) {
+ pos = POS.NOUN;
+ }
+ else if (tag.startsWith("N") || tag.startsWith("v")) {
+ pos = POS.VERB;
+ }
+ else if (tag.startsWith("J") || tag.startsWith("a")) {
+ pos = POS.ADJECTIVE;
+ }
+ else if (tag.startsWith("R") || tag.startsWith("r")) {
+ pos = POS.ADVERB;
+ }
+ else {
+ pos = POS.NOUN;
+ }
+ List<String> lemmas = morphy.lookupAllBaseForms(pos,word);
+ return lemmas.toArray(new String[lemmas.size()]);
+ }
+ catch (JWNLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public String getSenseKey(String lemma, String pos,int sense) {
+ try {
+ IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
+ if (iw == null) {
+ return null;
+ }
+ return String.valueOf(iw.getSynsetOffsets()[sense]);
+ }
+ catch (JWNLException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ }
+
+ public int getNumSenses(String lemma, String pos) {
+ try {
+ IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
+ if (iw == null){
+ return 0;
+ }
+ return iw.getSenseCount();
+ }
+ catch (JWNLException e) {
+ return 0;
+ }
+ }
+
+ private void getParents(Synset synset, List<String> parents) throws JWNLException {
+ Pointer[] pointers = synset.getPointers();
+ for (int pi=0,pn=pointers.length;pi<pn;pi++) {
+ if (pointers[pi].getType() == PointerType.HYPERNYM) {
+ Synset parent = pointers[pi].getTargetSynset();
+ parents.add(String.valueOf(parent.getOffset()));
+ getParents(parent,parents);
+ }
+ }
+ }
+
+ public String[] getParentSenseKeys(String lemma, String pos, int sense) {
+ //System.err.println("JWNLDictionary.getParentSenseKeys: lemma="+lemma);
+ try {
+ IndexWord iw = dict.getIndexWord(POS.NOUN,lemma);
+ if (iw != null) {
+ Synset synset = iw.getSense(sense+1);
+ List<String> parents = new ArrayList<String>();
+ getParents(synset,parents);
+ return parents.toArray(new String[parents.size()]);
+ }
+ else {
+ return empty;
+ }
+ }
+ catch (JWNLException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static void main(String[] args) throws IOException, JWNLException {
+ String searchDir = System.getProperty("WNSEARCHDIR");
+ System.err.println("searchDir="+searchDir);
+ if (searchDir != null) {
+ Dictionary dict = new JWNLDictionary(System.getProperty("WNSEARCHDIR"));
+ String word = args[0];
+ String[] lemmas = dict.getLemmas(word,"NN");
+ for (int li=0,ln=lemmas.length;li<ln;li++) {
+ for (int si=0,sn=dict.getNumSenses(lemmas[li],"NN");si<sn;si++) {
+ System.out.println(lemmas[li]+" ("+si+")\t"+java.util.Arrays.asList(dict.getParentSenseKeys(lemmas[li],"NN",si)));
+ }
+ }
+ }
+ }
+}