Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package randomPhrase;
- import java.awt.Dimension;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Random;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class RandomPhrase {
- static Random random = new Random();
- public static void main(String[] args) throws IOException {
- JFrame frame = new JFrame("Random Phrase");
- JPanel panel = new JPanel();
- //frame.setPreferredSize(new Dimension(600,400));
- frame.add(panel);
- JButton npButton = new JButton("Noun phrase");
- panel.add(npButton);
- JButton vpButton = new JButton("Verb phrase");
- panel.add(vpButton);
- JButton sentenceButton = new JButton("Sentence (NP + VP)");
- panel.add(sentenceButton);
- frame.pack();
- frame.setVisible(true);
- npButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- String np = generateNP(random.nextBoolean());
- System.out.println(np);
- System.out.println();
- }
- });
- vpButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- String vp = generateVP(random.nextBoolean());
- System.out.println(vp);
- System.out.println();
- }
- });
- sentenceButton.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e)
- {
- Boolean bool = random.nextBoolean();
- String np = generateNP(bool);
- String vp = generateVP(bool);
- System.out.println(np + " " + vp);
- System.out.println();
- }
- });
- }
- public static String generateNP(boolean plural) {
- StringBuilder npsb = new StringBuilder();
- // Chance of determiner
- if(random.nextBoolean()) {
- String buffer = null;
- FileInputStream fistream = null;
- try {
- if(!plural) fistream = new FileInputStream("determiners.txt");
- else fistream = new FileInputStream("determinersplural.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- npsb.append(lines.get(random.nextInt(lines.size())));
- npsb.append(" ");
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- // Chance of adjective(s)
- while(random.nextInt(3) == 0) {
- String buffer = null;
- FileInputStream fistream = null;
- try {
- fistream = new FileInputStream("adjectives.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- npsb.append(lines.get(random.nextInt(lines.size())));
- npsb.append(" ");
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- // Noun
- String buffer = null;
- FileInputStream fistream = null;
- try {
- fistream = plural ? new FileInputStream("nounsplural.txt") : new FileInputStream("nouns.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- npsb.append(lines.get(random.nextInt(lines.size())));
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- // Chance of PP(s)
- while(random.nextInt(5) == 0) {
- npsb.append(" ");
- npsb.append(generatePP());
- }
- return npsb.toString();
- }
- public static String generatePP() {
- StringBuilder ppsb = new StringBuilder();
- // Preposition
- String buffer = null;
- try {
- FileInputStream fistream = new FileInputStream("prepositions.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- ppsb.append(lines.get(random.nextInt(lines.size())));
- ppsb.append(" ");
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- // Noun phrase
- ppsb.append(generateNP(random.nextBoolean()));
- return ppsb.toString();
- }
- public static String generateVP(boolean plural) {
- StringBuilder vpsb = new StringBuilder();
- String buffer = null;
- switch(random.nextInt(3)) {
- case 0: // Intransitive
- // Verb
- try {
- FileInputStream fistream = new FileInputStream("intransitives.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- vpsb.append(plural ? "are " : "is ");
- String line = lines.get(random.nextInt(lines.size()));
- // Parse line to find -ing form
- String parse[];
- String delims = "[,]+";
- parse = line.split(delims);
- if(line.indexOf(',') != -1) line = parse[1];
- else {
- StringBuilder sb = new StringBuilder();
- sb.append(line);
- sb.append("ing");
- line = sb.toString();
- }
- vpsb.append(line);
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- break;
- case 1: // State of being + adjective
- vpsb.append(plural ? "are " : "is ");
- // Adjective
- buffer = null;
- FileInputStream fistream = null;
- try {
- fistream = new FileInputStream("adjectives.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- vpsb.append(lines.get(random.nextInt(lines.size())));
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- break;
- case 2: // Transitive
- try {
- fistream = new FileInputStream("transitives.txt");
- BufferedReader br = new BufferedReader(new InputStreamReader(fistream));
- ArrayList<String> lines = new ArrayList<String>();
- buffer = br.readLine();
- while(buffer != null) {
- lines.add(buffer);
- buffer = br.readLine();
- }
- String line = lines.get(random.nextInt(lines.size()));
- // Parse line to find -s form
- String parse[];
- String delims = "[,]+";
- parse = line.split(delims);
- if(line.indexOf(',') != -1) line = parse[1];
- else {
- StringBuilder sb = new StringBuilder();
- sb.append(line);
- if(!plural) sb.append("s");
- line = sb.toString();
- }
- vpsb.append(line);
- vpsb.append(" ");
- br.close();
- } catch (FileNotFoundException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- // Noun phrase
- vpsb.append(generateNP(random.nextBoolean()));
- break;
- }
- return vpsb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement