regex - Automatically paraphrasing sentences in Java -


in java, i'm trying automatically paraphrase text using regular expressions.

so i'll need find way replace first match of regular expression randomly generated match of regular expression, this:

public static string paraphraseusingregularexpression(string texttoparaphrase, string regextouse){     //in texttoparaphrase, replace first match of regextouse randomly generated match of regextouse, , return modified string. } 

so how can replace first match of regular expression in string randomly generated match of regular expression? (perhaps library called xeger useful purpose.)

for example, paraphraseusingregularexpression("i happy today", "(very|extremely) (happy|joyful) (today|at (moment|time|instant in time))"); replace first match of regular expression randomly generated match of regular expression, produce output "i extremely joyful @ moment in time", or "i happy @ time".

you can steps bellow:

first, split texttoparaphrase string regextouse , array portions of texttoparaphrase doesn't matched provided expression. example: if,

 texttoparaphrase = "i happy today you";  regextouse = "(very|extremely) (happy|joyful) (today|at (moment|time|instant in time))"; 

the output : {"i ", "for you"}. create regular expression these generated strings (like "(i |for you)"). again split texttoparaphrase generated expression , array of matched portions of given regular expression. , replace each of matched portion randomly generated string.

the code bellow:

public static string paraphraseusingregularexpression(string texttoparaphrase, string regextouse){     string[] unmatchedportionarray = texttoparaphrase.split(regextouse);     string regextofilter = "(";     for(int = 0; i< unmatchedportionarray.length; i++){         if(i == unmatchedportionarray.length -1){             regextofilter+=unmatchedportionarray[i];         } else {             regextofilter+=unmatchedportionarray[i]+"|";         }     }     regextofilter+=")";      string[] matchedportionarray = texttoparaphrase.split(regextofilter);     xeger generator = new xeger(regextouse);     (string matchedsegment : matchedportionarray){     string result = generator.generate(); //generates randomly (according you!)         texttoparaphrase = texttoparaphrase.replace(matchedsegment, result);     }     return texttoparaphrase; } 

cheers!


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

CSS3 Transition to highlight new elements created in JQuery -