Я просто разработал базовый английский язык для словаря Чавакано (родной язык) в андроиде.Алгоритм перевода для моего приложения
Ну, я уже закончил строку Tokenization, в которой для каждого слова, которое было Tokenize, приложение выберет соответствующий эквивалент в базе данных.
Чтобы визуально понять это, я собираюсь объяснить его далее, используя диаграммы и коды.
БАЗ ДАННЫЕ:
_id | english | chavacano
1 I yo
2 you tú
3 I love you ta ama yo contigo
Главная Activity.java
DataBaseHelper myDatabaseHelper = new DataBaseHelper(this);
//Declared EditText
TextView view = (TextView) getView().findViewById(R.id.editText4);
TextView view2 = (TextView) getView().findViewById(R.id.editText3);
enter code here
//First check if text input is phrase and store to String but if not return false
myDatabaseHelper.openDatabase();
String preText = myDatabaseHelper.Translator(view2.getText().toString());
myDatabaseHelper.closeDataBase();
//Check if bool is true , true if the text is translated but if false means there's no corresponding translation for it so do the String Tokenization
if(myDatabaseHelper.indicator==true{
view.setText(preText.getText());
}
else if (myDatabaseHelper.indicator==false{
//Lets do the string tokenization
StringTokenizer st = new StringTokenizer(view2.getText().toString());
while (st.hasMoreTokens()) {
myDatabaseHelper.openDatabase();
String text = myDatabaseHelper.translator(st.nextToken().toString()); //this is the method to query
myDatabaseHelper.closeDataBase();
sb.append(text);
sb.append(" ");
}
view.setText(sb.toString());
}
Код для DatabaseHelper.java
boolean indicator=false;
public String translator(String answer) {
String translated="x";
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery("SELECT chavacano FROM dictionary where english'"+answer+"'", null);
if(c.moveToFirst()){
do{
translated= c.getString(0);
}while(c.moveToNext());
indicator=false;
}
else{
indicator=true;
return answer;
}
c.close();
db.close();
return translated;
}
Так вот мы идем, я мог перевести Я люблю тебя в тот ama you contigo Но если я поместил другой текст в Я люблю тебя. Как я люблю тебя Девочка
Будет переведена на «yo love tu girl» И как я могу получить «ta ama you contigo Girl»?
Что вам нужно сделать или какой алгоритм следует добавить, чтобы сделать это приложение более точным? Одна из вещей, что я также думал использую Разделить строку, если текст содержит (AND, punctations знаков) и так далее
Спасибо
Как я уже сказал, это родной язык. Этот язык недоступен в google tranlsate api. Если это доступно, почему я сделал бы это. Итак, я должен разработать свой собственный перевод. Есть ли решение в моей проблеме? Спасибо –