Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.daisy.pipeline.nlp.ruledcategorizers;
  
  
  
 
 	public static int LOWEST_PRIORITY = 0;
 	public static int COMMON_WORD_MAX_PRIORITY = 50;
 	public static int SPACE_MAX_PRIORITY = 100;
 	public static int QUOTE_MAX_PRIORITY = 125;
 	public static int NUMBER_MAX_PRIORITY = 150;
 	public static int ACRONYM_MAX_PRIORITY = 160;
 	public static int ABBR_MAX_PRIORITY = 220;
 	public static int WEBLINK_MAX_PRIORITY = 300;
 	public static int SPACE_COMPOSED_MAX_PRIORITY = 500;
 	public static int NUMBER_COMPOSED_MAX_PRIORITY = 600;
 	public static int DICTIONARY_MAX_PRIORITY = 700;
 	protected static String CommonWordPattern = "[@\\p{L}][-_@\\p{L}\\p{Nd}]*";
 
 	//line breaks cannot be written with the usual unicode notation	
 	protected static String Space = "";
 	static {
 		char[] SpaceChars = {
 		        0x0020, 0x0085, 0x00A0, 0x1680, 0x180E, 0x2028, 0x2029, 0x202F, 0x205F, 0x3000
 		};
 		for (char spaceChar : SpaceChars) {
 			 += new Character(spaceChar);
 		}
 		 += new Character((char) 0x0009) + "-" + new Character((char) 0x000D);
 		 += new Character((char) 0x2000) + "-" + new Character((char) 0x200A);
 	}
 
 	public void init(MatchMode matchModethrows IOException {
 		super.init(matchMode);
 
 
 		// ==== DATES ====
 		String year = "([1-9][0-9]{1,3}|[0-9]{2})";
 		String month = "(1[0-2]|0?[1-9])";
 		String days = "(3[01]|[12]0|[0-2]?[1-9])";
 
 		rsm.init(year + "-" + month + "-" + days + "(?![-\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		rsm.init(month + "-" + days + "(?![-\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		rsm.init(days + "/" + month + "/" + year + "(?![/\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		rsm.init(days + "/" + month + "(?![/\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		        ));
 
 		rsm.init(year + "-" + month + "(?![-\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		rsm.init(month + "/" + year + "(?![/\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		// ==== TIME ====
 		rsm.init("(2[0-4]|[01][0-9]):[0-6][0-9](?![0-9])");
 		addRule(rsm);
 
 		// TODO: more regexp for the time
 
 		// ==== OTHER NUMBERS ====
 		String integer = "([1-9]{1,3}([,' ][0-9]{3})+|[1-9][0-9]*)";
 		String real = "(" + integer + "(\\.[0-9]+)?)";
 		String currency = "([\\$€£₤¥]|usd|euro[s]?)";
 
 		        );
 		rsm.init(real + "(x|[ ]x[ ])" + real + "(?![\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		        );
 		rsm.init(real + currency + "(?![\\p{L}\\p{Nd}])");
 		addRule(rsm);
 
 		        );
 		rsm.init(currency + real + "(?![\\p{L}\\p{Nd}])");
		addRule(rsm);
		        );
		rsm.init("[0-9]+([-.][0-9]+)*\\." + "(?![\\p{L}\\p{Nd}])");
		addRule(rsm);
		rsm.init(real);
		addRule(rsm);
		        );
		rsm.init("[0-9]+([-_:][0-9]+)*" + "(?![\\p{L}\\p{Nd}])");
		addRule(rsm);
		// ==== SPACES ====
		rsm.init("[" +  + "]+");
		addRule(rsm);
		// ==== QUOTES ====
		rsm.init("[\\p{Pf}\\p{Pi}\"']");
		addRule(rsm);
		// ==== SPECIAL STRINGS ====
		rsm.init("[a-z]+://[^" +  + "]*");
		addRule(rsm);
		rsm.init("www\\.[^" +  + "]+");
		addRule(rsm);
		rsm.init("[\\p{L}][-_.\\p{L}\\p{Nd}]*(@|\\(at\\))[\\p{L}][-_.\\p{L}\\p{Nd}]*");
		addRule(rsm);
		// ==== ACRONYMS, INITIALISMS AND ABBREVIATIONS ====
		String acronymPrefix = "[\\p{L}]\\.([-]?[\\p{L}\\p{Nd}]\\.)+";
		// 2 or more characters acronyms terminated by a point (if the following
		// character is not a capital letter). Example:
		// The U.S. are ...
		// but not: ... to the U.S. As a consequence, ... 
		rsm.init(acronymPrefix + "(?=[" +  + "]+[\\p{Ll}])");
		addRule(rsm);
		// 3 or more characters acronyms not terminated by a point
		rsm.init(acronymPrefix + "[\\p{L}\\p{Nd}]");
		addRule(rsm);
		// one-letter acronyms. There are a few cases where they shouldn't be recognized as
		//acronyms, such as 'he and I.', but those as not as frequent as acronyms and initialisms.
		//Examples: "R. Descartes", "B. IV" (B for Book)
		rsm.init("[\\p{Lu}]\\.(?=[" +  + "])");
		addRule(rsm);
		//plausible abbreviation
		rsm.init("[\\p{Ll}]\\.(?=[" +  + "])");
		addRule(rsm);
		// ==== COMMON WORDS ====
		addRule(rsm);
		// ==== DEFAULT ====
		rsm.init(".");
		addRule(rsm);
	}
New to GrepCode? Check out our FAQ X