2017-01-09 2 views
-1

Ich entwickle gerade eine grundlegende Englisch zu Chavacano (Muttersprache) Translator Application in Android.Übersetzungsalgorithmus für meine App

Nun, ich beende die Zeichenfolge Tokenization, wobei für jedes Wort, das Tokenize war, die App das entsprechende Äquivalent in der Datenbank auswählen wird.

Um es deutlich zu visualisieren, werde ich es weiter mit Diagrammen und Codes erklären.

DATABASE:

_id | english | chavacano 
1  I   yo 
2  you   tú 
3 I love you ta ama yo contigo 

Haupt 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()); 
} 

-Code für 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; 
} 

So hier gehen wir, Ich konnte übersetzen Ich liebe dich in ta ama du contigo Aber wenn ich einen anderen Text in die Phrase einfügen Ich liebe dich. Wie ich Sie Mädchen lieben

Es in „yo Liebe tu Mädchen“ übersetzt wird Und wie könnte ich das „ta ama Sie Mädchen Contigo“ erhalten?

Was muss ich tun oder welchen Algorithmus soll ich hinzufügen, um diese App genauer zu machen? Einer der Sache, dass ich auch unter Verwendung von Split-String zu denken, wenn der Text enthält (AND, punctations marks) und so weiter

Danke

Antwort

3

Warum nicht Übersetzer Apis verwenden, die viel besser funktionieren dann, was Sie

seine einfache wie unten Linien

GoogleAPI.setKey(/* Enter your API key here */); 

String translatedText = Translate.DEFAULT.execute("Bonjour le monde", Language.FRENCH, Language.ENGLISH); 

beziehen sich auf diesen Link für android Übersetzer gemacht https://developers.google.com/translate/

ein Demoprojekt Link See here

ein vollständiges Beispiel ist in diesem Blog gibt http://android-er.blogspot.in/2009/10/androidtranslate-using-google-translate.html

+0

Was ich gesagt habe Es ist eine Muttersprache. Diese Sprache ist nicht auf google translation api verfügbar. Wenn es verfügbar ist, warum sollte ich eins machen. Also muss ich meine eigene Übersetzung entwickeln. Gibt es eine Lösung in meinem Problem? Danke –

2

Wie Sie selbst herausgefunden haben, Text übersetzen, indem Sie einfach Worte und Phrasen auf Muster oder eine Lookup-Tabelle nicht gut basiertes Mapping geben Ergebnisse.

Allerdings ist es sehr schwierig, eine ordentliche Übersetzung zu machen. Wenn du von Null angefangen hast (und ein gutes Lehrbuch), wirst du jahrelange Mühe haben.

Ein praktischerer Ansatz besteht also darin, entweder die vorhandene Google Übersetzer-Integration zu verwenden oder Drittanbieteralternativen zu untersuchen ... für Android.

Wenn dies ein Studentenprojekt ist, dann würde ich raten ein gutes Lehrbuch zu finden und zu lesen. Diskutieren Sie auch mit Ihrem Projektberater, wie gut "gut genug" ist, denn eine wirklich gute Arbeit ist höchstwahrscheinlich nicht machbar.

(Es gibt keine Möglichkeit, dass wir erklären können, wie man eine Sprachübersetzung in einer Stack Overflow-Antwort durchführt. Das Thema ist viel zu groß.)