svanhvit commited on
Commit
2df33eb
1 Parent(s): 622b4cb

UI changes

Browse files
Files changed (1) hide show
  1. app.py +38 -26
app.py CHANGED
@@ -1,48 +1,52 @@
1
-
2
-
3
  import gradio as gr
4
  from transformers import pipeline
5
  import tokenizer
6
  from difflib import Differ, SequenceMatcher
7
 
8
- title = "Textaleiðrétting fyrir íslensku"
9
- description = "Hér má leiðrétta íslenskan texta með hjálp tauganets. Netið reynir að „þýða“ yfir í texta sem er í samræmi við málstaðal, og er þjálfað á bæði tilbúnum gögnum og textum úr villumálheildum sem safnað var hjá Háskóla Íslands. \n\nBest er að setja ekki inn meira en nokkrar setningar í einu, því annars getur biðin orðið löng. Þetta er prufuútgáfa sem hefur ekki lært að leiðrétta öll þau atriði sem upp geta komið í texta og er í stöðugri þróun. \nÞetta verkefni er unnið hjá Miðeind sem hluti af máltækniáætlun stjórnvalda."
10
 
11
- translator = pipeline("translation", model="mideind/yfirlestur-icelandic-correction-byt5", max_length=512)
 
 
 
 
 
 
 
12
 
13
  def mark_text(text, tag):
14
  """Helper for the diff method, returns a tuple with the text and the tag"""
15
  return (text, tag)
16
-
 
17
  def mark_span(text, tag):
18
  """Helper for the diff method, returns the span as a list of (text, tag) tuples"""
19
  return [mark_text(token, tag) for token in text]
20
-
21
- def markup_diff(a, b,
22
- mark=mark_span,
23
- isjunk=None):
24
- """Obtains the diff for the sentence along with the opcodes (tags). Returns the corrected sentence tokens along with their correction tag (in Icelandic)
25
- """
26
  seqmatcher = SequenceMatcher(isjunk=isjunk, a=a, b=b, autojunk=False)
27
  out_sentence_tokens = []
28
- # renaming tags
29
- tags = {"equal": None, "delete": "eytt út", "replace": "skipt út", "insert": "bætt inn"}
30
-
31
  for tag, a0, a1, b0, b1 in seqmatcher.get_opcodes():
32
  if tag == "delete":
33
  out_sentence_tokens += mark(" ", tags[tag])
34
  out_sentence_tokens += mark(b[b0:b1], tags[tag])
35
  return out_sentence_tokens
36
 
 
37
  def split_text(text):
38
  sentence_list = [i for i in tokenizer.split_into_sentences(text, original=True)]
39
  return sentence_list
40
 
 
41
  def predict(text):
42
  texts = text.split("\n")
43
  translated = ""
44
  original = ""
45
- # TODO: check for way too long inputs
46
  # TODO: if a sentence after splitting is over 512 bytes = split? error?
47
  for text in texts:
48
  # one or more sentences in each paragraph
@@ -56,17 +60,25 @@ def predict(text):
56
 
57
  demo = gr.Interface(
58
  fn=predict,
59
- inputs='text',
60
- outputs= gr.HighlightedText(
61
- show_label=False,
62
- show_legend=True,
63
- combine_adjacent=True,
64
- adjacent_separator=" ",
65
- ).style(
66
- color_map={"skipt út": "blue", "bætt inn": "green", "eytt út": "purple"}),
 
 
67
  title=title,
68
  description=description,
69
- examples=[["Kvitu fiðrildinn fljua firir utan gluggan."], ["Ég held þetta er ekki góður tími fara heimsókn."], ["Mer hlakar til jólana"], ["Kver a þenan bússtað ja eða nei"]],
 
 
 
 
 
 
 
70
  )
71
  demo.launch()
72
-
 
 
 
1
  import gradio as gr
2
  from transformers import pipeline
3
  import tokenizer
4
  from difflib import Differ, SequenceMatcher
5
 
 
 
6
 
7
+ title = "<center><img src='https://huggingface.co/spaces/mideind/README/resolve/main/logo-mideind.png' width='250'></center>Sjálfvirk textaleiðrétting"
8
+ description = "Hér má leiðrétta íslenskan texta með hjálp tauganets. Netið reynir að „þýða“ textann yfir í læsilegra mál."
9
+ article = "<h3>Leiðbeiningar</h3>Hægt er að setja inn eina eða fleiri málsgreinar, en bíða þarf lengur eftir leiðréttingu ef textinn er langur. Ekki er gert ráð fyrir stökum málsgreinum sem eru lengri en u.þ.b. 500 stafir. \n\nÞetta er prufuútgáfa sem hefur ekki lært að leiðrétta öll þau atriði sem upp geta komið í texta og er í stöðugri þróun. \nVerkefnið er unnið hjá [Miðeind](https://mideind.is) sem hluti af máltækniáætlun stjórnvalda. Það er þjálfað á bæði tilbúnum gögnum og textum úr villumálheildum sem safnað var hjá Háskóla Íslands."
10
+
11
+ translator = pipeline(
12
+ "translation", model="mideind/yfirlestur-icelandic-correction-byt5", max_length=512
13
+ )
14
+
15
 
16
  def mark_text(text, tag):
17
  """Helper for the diff method, returns a tuple with the text and the tag"""
18
  return (text, tag)
19
+
20
+
21
  def mark_span(text, tag):
22
  """Helper for the diff method, returns the span as a list of (text, tag) tuples"""
23
  return [mark_text(token, tag) for token in text]
24
+
25
+
26
+ def markup_diff(a, b, mark=mark_span, isjunk=None):
27
+ """Obtains the diff for the sentence along with the opcodes (tags). Returns the corrected sentence tokens along with their correction tag (in Icelandic)"""
 
 
28
  seqmatcher = SequenceMatcher(isjunk=isjunk, a=a, b=b, autojunk=False)
29
  out_sentence_tokens = []
30
+ # renaming tags
31
+ tags = {"equal": None, "delete": "breytt", "replace": "breytt", "insert": "breytt"}
32
+
33
  for tag, a0, a1, b0, b1 in seqmatcher.get_opcodes():
34
  if tag == "delete":
35
  out_sentence_tokens += mark(" ", tags[tag])
36
  out_sentence_tokens += mark(b[b0:b1], tags[tag])
37
  return out_sentence_tokens
38
 
39
+
40
  def split_text(text):
41
  sentence_list = [i for i in tokenizer.split_into_sentences(text, original=True)]
42
  return sentence_list
43
 
44
+
45
  def predict(text):
46
  texts = text.split("\n")
47
  translated = ""
48
  original = ""
49
+ # TODO: check for way too long inputs
50
  # TODO: if a sentence after splitting is over 512 bytes = split? error?
51
  for text in texts:
52
  # one or more sentences in each paragraph
 
60
 
61
  demo = gr.Interface(
62
  fn=predict,
63
+ inputs=gr.TextArea(label="Texti"),
64
+ outputs=[
65
+ gr.HighlightedText(
66
+ label="Leiðrétt",
67
+ show_label=False,
68
+ show_legend=True,
69
+ combine_adjacent=True,
70
+ adjacent_separator=" ",
71
+ ).style(color_map={"breytt": "green"})
72
+ ],
73
  title=title,
74
  description=description,
75
+ article=article,
76
+ examples=[
77
+ ["Kvitu fiðrildinn fljua firir utan gluggan."],
78
+ ["Ég held þetta er ekki góður tími fara heimsókn."],
79
+ ["Mer hlakar til jólana"],
80
+ ["Kver a þenan bússtað ja eða nei"],
81
+ ["Módernisma gætir í íslenkum prósaverkum fljótlega eftir Fyrri heimstyrjöld"],
82
+ ],
83
  )
84
  demo.launch()