package nisrulz.github.sample.usingopennlp;
import android.app.Activity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import nisrulz.github.sample.usingopennlp.opennlp.NamedEntityExtraction;
import nisrulz.github.sample.usingopennlp.opennlp.SentenceDetector;
public class MainActivity extends AppCompatActivity {
private EditText editText;
private TextView textView;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
editText = (EditText) findViewById(R.id.editText);
textView = (TextView) findViewById(R.id.textView);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!TextUtils.isEmpty(editText.getText().toString())) {
button.setEnabled(false);
button.setText("Processing...");
Activity activity = MainActivity.this;
String text = editText.getText().toString();
StringBuilder stringBuilder = new StringBuilder().append("Sentences:\n")
.append(getSentencesFromParagraph(activity, text))
.append("\n\nNames:\n")
.append(getNamesFromParagraph(activity, text))
.append("\n\nLocations:\n")
.append(getLocationFromParagraph(activity, text));
textView.setText(stringBuilder.toString());
button.setText("Run Analysis");
button.setEnabled(true);
}
}
});
}
private String generateString(String[] values) {
String finalData = "";
for (int i = 0; i < values.length; i++) {
finalData += values[i] + "\n";
}
return finalData;
}
private String getSentencesFromParagraph(Activity activity, String paragraph) {
String[] sentences = new SentenceDetector().findSentences(activity, paragraph);
return generateString(sentences);
}
private String getNamesFromParagraph(Activity activity, String paragraph) {
String[] names =
new NamedEntityExtraction().findNames(activity, paragraph, R.raw.en_ner_person);
return generateString(names);
}
private String getLocationFromParagraph(Activity activity, String paragraph) {
String[] locations =
new NamedEntityExtraction().findNames(activity, paragraph, R.raw.en_ner_location);
return generateString(locations);
}
}