here is a program I made : P, use the addWord(word,“syn1,syn2,syn3,…”) to add words. Good luck
Code
ArrayList<String> documented = new ArrayList<String>(), words = new ArrayList<String>();
ArrayList<ArrayList<String>> syn = new ArrayList<ArrayList<String>>();
String text = "the new world is a small world";
char acceptable[] = ("aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789").toCharArray();
void setup() {
size(600,600);
addWord("small","meager,minuscule,paltry");
addWord("new","novel,current,modern");
printArray(documented);
printArray(syn);
splitWords();
printArray(words);
for(int i = 0; i < words.size(); i++) print(wordSwap(words.get(i))+ " ");
}
void draw() {
}
void addWord(String word, String syn_s) {
documented.add(word);
String syn_s2[] = split(word+","+syn_s,",");
ArrayList<String> syn_s3 = new ArrayList<String>();
for(int i = 0; i < syn_s2.length; i++) syn_s3.add(syn_s2[i]);
syn.add(syn_s3);
}
void splitWords() {
String words_[] = split(text, " ");
for(int i = 0; i < words_.length; i++) words.add(purify(words_[i]));
}
String wordSwap(String word) {
if(documented.contains(word)) {
int pos = getIndex(documented,word);
//if(pos != -1) return syn.get(pos).get(floor(random(syn.get(pos).size())));
if(pos != -1) {
return syn.get(pos).get(floor(random(syn.get(pos).size())));
}
//syn.get(index).get(floor(random(syn.get(index).size()))))
}
return word;
}
int getIndex(ArrayList<String> reference, String item) {
for(int i = 0; i < reference.size() && reference.contains(item); i++) if(reference.get(i).equals( item )) return i;
return -1;
}
String purify(String input) {
String newString = "";
for (int i = 0; i < input.length(); i++) for (int j = 0; j < acceptable.length; j++) if (input.charAt(i) == acceptable[j]) {
newString += acceptable[j];
break;
}
return newString;
}