Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.lang.stem;
 
 import java.util.Set;
 
 
 public class IndexUtility {
 	static protected Set<Stringstopwords = new HashSet<String>();
 
 	/*
 	static public boolean isStopWord(String word) {
 		return FullTextIndex.stopwords.contains(FullTextIndex.prepPhrase(word));
 	}
 	*/
 
 	static public IndexInfo stemEnglishPhrase(CharSequence phraseint score) {
 		IndexInfo info = new IndexInfo();		
 		IndexUtility.stemEnglishPhraseAppend(phrasescoreinfo);        
 		return info;
 	}
 	
 	static public void stemEnglishPhraseAppend(CharSequence phraseint scoreIndexInfo info) {
 		if ((phrase == null) || (info == null))
 			return;
 		
 	    StringBuilder32 word = new StringBuilder32();
         int start = 0;
 	    int prior = info.getContentLength();
 	    
 	    if (prior > 0)
 	    	prior++;		// for the padding 
 	    
 	    // TODO strip out any "words" (alphanumerics) more than 125 characters long
 	    
         info.addContent(phrase);
 	            
         for (int i = 0; i < phrase.length(); i++) {
         	char l = phrase.charAt(i);
         	
         	// translate extended chars
         	// TODO restore this, see initial example
         	// https://github.com/Gadreel/divconq/blob/086c03af97018d496f35e712e8b75dfa394a431c/divconq.core/src/main/java/divconq/lang/stem/IndexUtility.java
         	
         	// allow only A - Z, a - z and '
         	if (((l < 65) && (l != 39)) || ((l > 90) && (l < 97)) || (l > 122)) {
         		if (word.length() > 2) {
         			String proposed = word.toString().toLowerCase();
         			
         			if (!..contains(proposed)) { 
 	        			info.add(English.toStem(proposed), scoreprior + start + 1);
 	        			
 	        			if (proposed.indexOf('\'') > -1)
 		        			info.add(English.toStem(proposed).replaceAll("'"""), scoreprior + start + 1);
         			}
         		}
         		
         		word.reset();
         		start = i;
         	}
         	else
         		word.append(l);
         }
         
 		if (word.length() > 2) {
 			String proposed = word.toString().toLowerCase();
 			
 			if (!..contains(proposed)) { 
     			info.add(English.toStem(proposed), scoreprior + start + 1);
     			
     			if (proposed.indexOf('\'') > -1)
         			info.add(English.toStem(proposed).replaceAll("'"""), scoreprior + start + 1);
 			}
 		}
 	}
 	
 	static {
		..add("yourselves");
		..add("themselves");
	}
New to GrepCode? Check out our FAQ X