תרגול מס' 5 : המתרגם
DESCRIPTION
תרגול מס' 5 : המתרגם. שימוש במחלקות קיימות. משימה. תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם. שאלות. האם כבר יש שירות תרגום שאנחנו יכולים להשתמש בו? אולי נוכל לעשות שימוש ב Microsoft Translate ? כיצד קוראים מקבצים? - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/1.jpg)
: המתרגם5תרגול מס'
שימוש במחלקות קיימות
![Page 2: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/2.jpg)
משימה
תכנית המתרגמת קטעי טקסט לשפהאחרת
הקלט: קובץ המכיל את קטעי הטקסט וכןאת
השפה אליה רוצים לתרגם
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
2
![Page 3: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/3.jpg)
שאלות
האם כבר יש שירות תרגום שאנחנו יכוליםלהשתמש בו?
אולי נוכל לעשות שימוש בMicrosoft Translate??כיצד קוראים מקבצים?מה הפורמט של הקלט
נצטרך להחליט
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
3
![Page 4: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/4.jpg)
הפשטה
כצעד ראשון נפתור בעיה הרבה יותר פשוטה
תכנית שמתרגמת את המילה“Hello ”מאנגלית לצרפתית
יש: שימוש בשירות תרגוםאין: קלט, טקסט, עבודה עם קבצים, פורמט
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
4
![Page 5: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/5.jpg)
API – Application Programming Interface
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
5
ממשק המאפשר לאפליקציה לתקשר עםתוכנה אחרת
![Page 6: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/6.jpg)
Eureka!
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
6
![Page 7: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/7.jpg)
שלב א'
public class TranslatorEngine1 {private static final String APIkey = "Your Bing Developer API key goes here";
public static void main(String[] args) throws Exception {Translate.setKey(APIkey);
String TranslatedText = Translate.execute("Hello", Language.ENGLISH, Language.FRENCH);
System.out.println(TranslatedText);}
}
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
7
![Page 8: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/8.jpg)
אינטראקציה עם המשתמש
נתחיל להתקדם עקב בצד אגודל אל היעדשלנו
קלט מהמשתמש יינתן בשורת הפקודה:המילה לתרגוםפרמטר ראשון פרמטר שני: שפת המקורפרמטר שלישי: שפת היעד
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
8
![Page 9: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/9.jpg)
שלב ב'
public class TranslatorEngine2 {private static final String APIkey = "Your Bing Developer API key goes here";
public static void main(String[] args) throws Exception {\Translate.setKey(APIkey);
String TranslatedText = Translate.execute(args[0],
Language.fromString(args[1]),Language.fromString(args[2]));
System.out.println(TranslatedText);}
}
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
9
![Page 10: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/10.jpg)
קריאת קלט
( נקרא קלט מהמשתמשconsole)עדיין מילה אחתאין שימוש בקבצים
נשתמש במחלקהScanner?מה הפורמט של הקלט
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
10
![Page 11: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/11.jpg)
Scannerהמחלקה
סורק טקסט פשוט"את הקלט לרכיביו השונים )מילה, "שובר
מספר וכדומה( בעת יצירה מקבל כפרמטר מהיכן לקרוא את
הקלט
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
11
Scanner s = new Scanner(System.in);int anInt = s.nextInt();float aFloat = s.nextFloat();String aString = s.next();String aLine = s.nextLine();
![Page 12: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/12.jpg)
פורמט הקלט
מהו הפרוטוקול המשותף שחולקיםהאפליקציה והמשתמש לצורך התקשורת
ביניהםאיזה מידע דרוש)... ,כיצד הוא מקודד )מספר, מחרוזתמה סדר הפרמטרים
:נבחר<word< <source-lang< <target-lang<
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
12
![Page 13: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/13.jpg)
דוגמא
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
13
Scanner s = new Scanner(System.in);System.out.println("enter line:");while (s.hasNext())
System.out.println(s.next());
standard inputקרא מ-
הבאTokenקרא את ה-
![Page 14: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/14.jpg)
public class TranslatorEngine3 {private static final String APIkey = "Your Bing Developer API key goes here";
public static void main(String[] args) throws Exception {Translate.setKey(APIkey);
Scanner s = new Scanner(System.in);String[] fragments = s.nextLine().split(" ");String TranslatedText =
Translate.execute(fragments[0],
Language.fromString(fragments[1]),
Language.fromString(fragments[2]));System.out.println(TranslatedText);
}}
שלב ג'
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
14
![Page 15: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/15.jpg)
קבצים
במקום לקרוא את שורת הקלט מהמשתמשנקרא אותה מקובץ
קובץ מיצג ע"י המחלקהFile( נאתחל את האוביקט עם המסלולpath )
לקובץ
File f = new File(“C:\\Software1\\example.txt”);
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
15
![Page 16: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/16.jpg)
( לקובץPathמסלול )
– מסלול יחסיRelative pathnew File)“example.txt”(-בeclipse המיקום הנוכחי הוא Project root
– מסלול מלאAbsolute pathnew File)“C:\\Software1\\example.txt”(
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
16
![Page 17: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/17.jpg)
public class TranslatorEngine4 {private static final String APIkey = "API key";private static final String FILE_NAME = “example.txt”;
public static void main(String[] args) throws Exception {Translate.setKey(APIkey);
Scanner s = new Scanner(new File(FILE_NAME));String[] fragments = s.nextLine().split(" ");String TranslatedText =
Translate.execute(fragments[0],
Language.fromString(fragments[1]),
Language.fromString(fragments[2]));System.out.println(TranslatedText);
}}
שלב ד'
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
17
![Page 18: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/18.jpg)
קלטים מרובים
מספר שורות קלט מקובץנקרא מספר קלטים עד לסוף הקובץ
שימוש במתודותhasNextLine-ו nextLine
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
18
![Page 19: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/19.jpg)
public class TranslatorEngine5 {private static final String APIkey = "API key";private static final String FILE_NAME = “...";
public static void main(String[] args) throws Exception {Translate.setKey(APIkey);
Scanner s = new Scanner(new File(FILE_NAME));while (s.hasNextLine()) {
String[] fragments = s.nextLine().split(" ");
System.out.println(Translate.execute(fragments[0], Language.fromString(fragments[1]),
Language.fromString(fragments[2])));}
}}
שלב ה'
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
19
![Page 20: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/20.jpg)
פיסקה
פיסקה ולא רק מילה אחת?מה יהיה הפורמט החדש
:נבחר <source-lang<#<target-lang<#<paragraph<
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
20
![Page 21: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/21.jpg)
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
21
Example - ScannerSet delimiters
String input = "1 fish 2 fish red fish blue fish";Scanner s =
new Scanner(input).useDelimiter(" *fish *");while (s.hasNext())
System.out.println(s.next());s.close;)(
![Page 22: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/22.jpg)
public class TranslatorEngine6 {private static final String APIkey = "API key";private static final String FILE_NAME = “...";public static void main(String[] args) throws Exception {
Translate.setKey(APIkey);
Scanner s = new Scanner(new File(FILE_NAME));s.useDelimiter("#");Language from = Language.fromString(s.next());Language to = Language.fromString(s.next());s.skip("#");StringBuffer text = new StringBuffer();while (s.hasNextLine()) {
text.append(s.nextLine());text.append(' ');
}System.out.println(Translate.execute(text.toString(), from,
to));}
}
שלב ו'
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
22
![Page 23: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/23.jpg)
לאן עכשיו?
תרגום מספר קבציםמספר פסקאות בקובץ יחידלוותר על חלק מהפרמטרים
זיהוי אוטומטי של שפת הקלטשימוש בשמות משמעותיים לשפותGUI...
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
23
![Page 24: תרגול מס' 5 : המתרגם](https://reader036.vdocuments.site/reader036/viewer/2022081505/56815ed4550346895dcd6da0/html5/thumbnails/24.jpg)
מה חסר?
טיפול בשגיאותחסרים פרמטריםשפות לא מוגדרותמנגנון התרגום נכשלקובץ לא קיים...
Javaתכנות מתקדם בשפת אוניברסיטת תל אביב
24