KevSun commited on
Commit
ec6cfd9
·
verified ·
1 Parent(s): 1c79529

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -27
app.py CHANGED
@@ -2,7 +2,10 @@ import streamlit as st
2
  import sacrebleu
3
  from bert_score import score as bert_score
4
  import jieba
5
- import traceback
 
 
 
6
 
7
  def calculate_bleu(translations, references):
8
  return sacrebleu.corpus_bleu(translations, [references]).score
@@ -14,7 +17,7 @@ def calculate_chrf(translations, references):
14
  return sacrebleu.corpus_chrf(translations, [references]).score
15
 
16
  def calculate_bertscore(translations, references, lang):
17
- P, R, F1 = bert_score(translations, references, lang=lang)
18
  return F1.mean().item()
19
 
20
  def tokenize_chinese(text):
@@ -25,18 +28,15 @@ st.write("Input the translated text and the reference translation to compute BLE
25
 
26
  languages = {
27
  "English": "en", "Chinese": "zh", "French": "fr", "German": "de", "Spanish": "es",
28
- "Russian": "ru", "Japanese": "ja", "Korean": "ko", "Arabic": "ar", "Italian": "it",
29
- "Dutch": "nl", "Portuguese": "pt", "Turkish": "tr", "Polish": "pl", "Czech": "cs",
30
- "Swedish": "sv", "Danish": "da", "Finnish": "fi", "Greek": "el", "Hungarian": "hu",
31
- "Indonesian": "id", "Norwegian": "no", "Romanian": "ro", "Thai": "th", "Vietnamese": "vi",
32
- "Hebrew": "he", "Hindi": "hi", "Bengali": "bn", "Tamil": "ta", "Urdu": "ur", "Other": "other"
33
  }
34
 
35
  source_lang = st.selectbox("Select Source Language", list(languages.keys()))
36
  target_lang = st.selectbox("Select Target Language", list(languages.keys()))
37
 
38
- source_lang_code = st.text_input("Enter Source Language Code (ISO 639-1):", value=languages[source_lang]) if source_lang == "Other" else languages[source_lang]
39
- target_lang_code = st.text_input("Enter Target Language Code (ISO 639-1):", value=languages[target_lang]) if target_lang == "Other" else languages[target_lang]
40
 
41
  translation_input = st.text_area("Translated Text", height=200)
42
  reference_input = st.text_area("Reference Translation", height=200)
@@ -56,25 +56,14 @@ if st.button("Evaluate"):
56
  else:
57
  references = [reference_input.strip()]
58
 
59
- st.write("Debug: Inputs processed")
60
- st.write(f"Translation: {translations}")
61
- st.write(f"Reference: {references}")
62
-
63
- st.write("Debug: Calculating scores...")
64
 
65
  bleu_score = calculate_bleu(translations, references)
66
- st.write(f"Debug: BLEU score calculated: {bleu_score}")
67
-
68
  ter_score = calculate_ter(translations, references)
69
- st.write(f"Debug: TER score calculated: {ter_score}")
70
-
71
  chrf_score = calculate_chrf(translations, references)
72
- st.write(f"Debug: CHRF score calculated: {chrf_score}")
73
-
74
  bertscore = calculate_bertscore(translations, references, target_lang_code)
75
- st.write(f"Debug: BERTScore calculated: {bertscore}")
76
 
77
- st.write("Final Scores:")
78
  st.write(f"**BLEU Score:** {bleu_score:.2f}")
79
  st.write(f"**TER Score:** {ter_score:.2f}")
80
  st.write(f"**CHRF Score:** {chrf_score:.2f}")
@@ -82,9 +71,5 @@ if st.button("Evaluate"):
82
 
83
  except Exception as e:
84
  st.error(f"An error occurred: {str(e)}")
85
- st.write("Debug: Full traceback")
86
- st.code(traceback.format_exc())
87
  else:
88
- st.error("Please provide both translated text and reference translation.")
89
-
90
- st.write("Debug: End of script reached")
 
2
  import sacrebleu
3
  from bert_score import score as bert_score
4
  import jieba
5
+ import torch
6
+
7
+ # Ensure CUDA is not used to avoid potential issues on Hugging Face Spaces
8
+ torch.cuda.is_available = lambda : False
9
 
10
  def calculate_bleu(translations, references):
11
  return sacrebleu.corpus_bleu(translations, [references]).score
 
17
  return sacrebleu.corpus_chrf(translations, [references]).score
18
 
19
  def calculate_bertscore(translations, references, lang):
20
+ P, R, F1 = bert_score(translations, references, lang=lang, device='cpu')
21
  return F1.mean().item()
22
 
23
  def tokenize_chinese(text):
 
28
 
29
  languages = {
30
  "English": "en", "Chinese": "zh", "French": "fr", "German": "de", "Spanish": "es",
31
+ "Japanese": "ja", "Korean": "ko", "Arabic": "ar", "Italian": "it",
32
+ "Dutch": "nl", "Portuguese": "pt", "Russian": "ru"
 
 
 
33
  }
34
 
35
  source_lang = st.selectbox("Select Source Language", list(languages.keys()))
36
  target_lang = st.selectbox("Select Target Language", list(languages.keys()))
37
 
38
+ source_lang_code = languages[source_lang]
39
+ target_lang_code = languages[target_lang]
40
 
41
  translation_input = st.text_area("Translated Text", height=200)
42
  reference_input = st.text_area("Reference Translation", height=200)
 
56
  else:
57
  references = [reference_input.strip()]
58
 
59
+ st.write("Calculating scores...")
 
 
 
 
60
 
61
  bleu_score = calculate_bleu(translations, references)
 
 
62
  ter_score = calculate_ter(translations, references)
 
 
63
  chrf_score = calculate_chrf(translations, references)
 
 
64
  bertscore = calculate_bertscore(translations, references, target_lang_code)
 
65
 
66
+ st.write("Evaluation Scores:")
67
  st.write(f"**BLEU Score:** {bleu_score:.2f}")
68
  st.write(f"**TER Score:** {ter_score:.2f}")
69
  st.write(f"**CHRF Score:** {chrf_score:.2f}")
 
71
 
72
  except Exception as e:
73
  st.error(f"An error occurred: {str(e)}")
 
 
74
  else:
75
+ st.error("Please provide both translated text and reference translation.")