From 9bd8588210b09b1b9c30d085300d32c6b0b91091 Mon Sep 17 00:00:00 2001
From: Bartlomiej Niton <bartek.niton@gmail.com>
Date: Mon, 30 Jan 2017 16:46:48 +0100
Subject: [PATCH] AddMentionsByGroups comment update.

---
 src/main/java/pl/waw/ipipan/zil/core/md/detection/Detector.java | 214 +++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1 file changed, 3 insertions(+), 211 deletions(-)

diff --git a/src/main/java/pl/waw/ipipan/zil/core/md/detection/Detector.java b/src/main/java/pl/waw/ipipan/zil/core/md/detection/Detector.java
index 6eb7989..17e9ef2 100644
--- a/src/main/java/pl/waw/ipipan/zil/core/md/detection/Detector.java
+++ b/src/main/java/pl/waw/ipipan/zil/core/md/detection/Detector.java
@@ -98,25 +98,15 @@ public class Detector {
     }
 
     /**
-     * Wyszukuję i oznaczam wszystkie NG*
+     * Wyszukuję i oznaczam wszystkie NG lub ciagi grup NG i PrepNG
+     * pasujace do schematow rzeczownikowych z Walentego
      *
      * @param sentence
      */
     private static void addMentionsByGroups(Sentence sentence, 
     		Map<ValenceDicts,Map<String,ArrayList<String>>> valence) {
     	
-    	for (SyntacticGroup group : sentence.getGroups()) {
-    		
-    		/*SyntacticGroup nextGroup = group.getFollowingGroup();
-    		SyntacticGroup nextnextGroup = null;
-    		SyntacticGroup nextnextnextGroup = null;
-    		if (nextGroup != null) {
-    			nextnextGroup = nextGroup.getFollowingGroup();
-    			if (nextnextGroup != null) {
-    				nextnextnextGroup = nextnextGroup.getFollowingGroup();
-    			}
-    		}*/
-    		
+    	for (SyntacticGroup group : sentence.getGroups()) {    		
     		if (group.getType().startsWith("NG")) {
 	    		ArrayList<SyntacticGroup> nestedGroups = new ArrayList<SyntacticGroup>();
 	    		nestedGroups.add(group);
@@ -130,194 +120,9 @@ public class Detector {
 	    		Mention mention = createMention(nestedGroups, valence.get(ValenceDicts.NounsValence));
 	    		sentence.addMention(mention);
     		}
-    		
-    		/*if (group.getType().startsWith("NG") && nextGroup != null && 
-    				nextnextGroup != null && nextnextnextGroup != null &&
-    				quatroCompatibility(group, nextGroup, nextnextGroup, 
-    						nextnextnextGroup, valence.get(ValenceDicts.NounsValence))) {
-    			List<Token> heads = group.getSemanticHeadTokens();
-    			List<Token> segments = new ArrayList<Token>();
-    			segments.addAll(group.getTokens());
-    			segments.addAll(nextGroup.getTokens());
-    			segments.addAll(nextnextGroup.getTokens());
-    			segments.addAll(nextnextnextGroup.getTokens());
-    			
-    			sentence.addMention(new Mention(segments, heads));
-    		} else if (group.getType().startsWith("NG") && nextGroup != null && 
-    				nextnextGroup != null && tripleCompatibility(group, nextGroup, nextnextGroup, valence.get(ValenceDicts.NounsValence))) {
-    			List<Token> heads = group.getSemanticHeadTokens();
-    			List<Token> segments = new ArrayList<Token>();
-    			segments.addAll(group.getTokens());
-    			segments.addAll(nextGroup.getTokens());
-    			segments.addAll(nextnextGroup.getTokens());
-    			
-    			sentence.addMention(new Mention(segments, heads));
-    		} else if (group.getType().startsWith("NG") && nextGroup != null &&
-    				groupsValenceCompatibility(group, nextGroup, sentence, valence.get(ValenceDicts.NounsValence))
-    				) {
-    			List<Token> heads = group.getSemanticHeadTokens();
-    			List<Token> segments = new ArrayList<Token>();
-    			segments.addAll(group.getTokens());
-    			segments.addAll(nextGroup.getTokens());
-    			
-    			sentence.addMention(new Mention(segments, heads));
-    		} else if (group.getType().startsWith("NG")) {
-                List<Token> segments = group.getTokens();
-                List<Token> heads = group.getSemanticHeadTokens();
-
-                sentence.addMention(new Mention(segments, heads));
-            }*/
-    	}
-    }
-    
-    /*private static boolean isProperSchema(String schema, ArrayList<String> group1Types,
-    		ArrayList<String> group2Types) {
-    	for (String group1Type : group1Types) {
-    		if (schemaContains(schema, group1Type)) {
-    			for (String group2Type : group2Types) {
-    				if (schemaContains(schema, group2Type)) {
-        				return true;
-        			}
-    			}
-    		}
-    	}
-    	return false;
-    }*/
-    
-    /*private static boolean isProperSchema(String schema, ArrayList<String> group1Types,
-    		ArrayList<String> group2Types) {
-    	ArrayList<String> group1MPositions = getMatchingPositions(schema, group1Types);
-    	ArrayList<String> group2MPositions = getMatchingPositions(schema, group2Types);
-    	
-    	ArrayList<ArrayList<String>> matchingPositions = new ArrayList<ArrayList<String>>();
-    	matchingPositions.add(group1MPositions);
-    	matchingPositions.add(group2MPositions);
-    	
-    	if (matchingPositionsExists(matchingPositions)) {
-    		ArrayList<ArrayList<String>> product = cartesianProduct(matchingPositions);
-    		for (ArrayList<String> combination : product) {
-    			Set<String> combinationSet = new HashSet<String>(combination);
-    			if (combinationSet.size() == matchingPositions.size()) {
-    				return true;
-    			}
-    		}
     	}
-    	return false;
-    }*/
-    
-    /*private static boolean groupsValenceCompatibility(SyntacticGroup NG1,
-    		SyntacticGroup NG2, Sentence sentence, 
-    		Map<String,ArrayList<String>> walentyMapping) {
-    	Token NG1Head = NG1.getSemanticHeadTokens().get(0);
-    	
-    	String NGHeadBase = NG1Head.getBase();
-		
-		if (!walentyMapping.containsKey(NGHeadBase)) {
-			return false;
-		} else {
-			ArrayList<String> NG2realizations = NG2.getWalentyRealizations();
-			
-			ArrayList<String> schemata = walentyMapping.get(NGHeadBase);
-			for (String real : NG2realizations) {
-				for (String schema : schemata) {
-					if (schemaContains(schema, real)) {
-						return true;
-					}
-				}
-			}
-		}
-		return false;
     }
     
-    private static boolean tripleCompatibility(SyntacticGroup group1,
-    		SyntacticGroup group2, SyntacticGroup group3, 
-    		Map<String,ArrayList<String>> walentyMapping) {
-    	Token group1Head = group1.getSemanticHeadTokens().get(0);
-    	
-    	String group1HeadBase = group1Head.getBase();
-		
-		if (!walentyMapping.containsKey(group1HeadBase)) {
-			return false;
-		} else {
-			ArrayList<String> group2realizations = group2.getWalentyRealizations();
-			ArrayList<String> group3realizations = group3.getWalentyRealizations();
-			
-			ArrayList<String> schemata = walentyMapping.get(group1HeadBase);
-			for (String schema : schemata) {
-				if (isProperSchema(schema, group2realizations, group3realizations)) {
-					return true;
-				}
-			}
-		}
-		return false;
-    }
-    
-    private static boolean quatroCompatibility(SyntacticGroup group1,
-    		SyntacticGroup group2, SyntacticGroup group3, SyntacticGroup group4,
-    		Map<String,ArrayList<String>> walentyMapping) {
-    	Token group1Head = group1.getSemanticHeadTokens().get(0);
-    	
-    	String group1HeadBase = group1Head.getBase();
-		
-		if (!walentyMapping.containsKey(group1HeadBase)) {
-			return false;
-		} else {
-			ArrayList<String> group2realizations = group2.getWalentyRealizations();
-			ArrayList<String> group3realizations = group3.getWalentyRealizations();
-			ArrayList<String> group4realizations = group4.getWalentyRealizations();
-			
-			ArrayList<String> schemata = walentyMapping.get(group1HeadBase);
-			for (String schema : schemata) {
-				if (isTripleProperSchema(schema, group2realizations, group3realizations,
-						group4realizations)) {
-					return true;
-				}
-			}
-		}
-		return false;
-    }
-    
-    private static boolean isTripleProperSchema(String schema, ArrayList<String> group1Types,
-    		ArrayList<String> group2Types, ArrayList<String> group3Types) {
-    	for (String group1Type : group1Types) {
-    		if (schemaContains(schema, group1Type)) {
-    			for (String group2Type : group2Types) {
-    				if (schemaContains(schema, group2Type)) {
-    					for (String group3Type : group3Types) {
-    						if (schemaContains(schema, group3Type)) {
-    							return true;
-    						}
-    					}
-        			}
-    			}
-    		}
-    	}
-    	return false;
-    }
-    
-    private static boolean isTripleProperSchema(String schema, ArrayList<String> group1Types,
-    		ArrayList<String> group2Types, ArrayList<String> group3Types) {
-    	
-    	ArrayList<String> group1MPositions = getMatchingPositions(schema, group1Types);
-    	ArrayList<String> group2MPositions = getMatchingPositions(schema, group2Types);
-    	ArrayList<String> group3MPositions = getMatchingPositions(schema, group3Types);
-    	
-    	ArrayList<ArrayList<String>> matchingPositions = new ArrayList<ArrayList<String>>();
-    	matchingPositions.add(group1MPositions);
-    	matchingPositions.add(group2MPositions);
-    	matchingPositions.add(group3MPositions);
-    	
-    	if (matchingPositionsExists(matchingPositions)) {
-    		ArrayList<ArrayList<String>> product = cartesianProduct(matchingPositions);
-    		for (ArrayList<String> combination : product) {
-    			Set<String> combinationSet = new HashSet<String>(combination);
-    			if (combinationSet.size() == matchingPositions.size()) {
-    				return true;
-    			}
-    		}
-    	}
-    	return false;
-    }*/
     
     private static Mention createMention(ArrayList<SyntacticGroup> nestedGroups,
     		Map<String,ArrayList<String>> walentyNouns) {
@@ -430,19 +235,6 @@ public class Detector {
     	}
     	return positions;
     }
-    
-    private static boolean schemaContains(String schema, String phraseType) {
-    	for (String position : schema.split("\\s\\+\\s")) {
-    		position = position.trim();
-    		position = position.substring(1, position.length()-1);
-    		for (String phrT : position.split(";")) {
-    			if (phrT.equals(phraseType)) {
-    				return true;
-    			}
-    		}
-    	}
-    	return false;
-    }
 
     /**
      * Wyszukuję i oznaczam wszystkie NER
--
libgit2 0.22.2