Spaces:
Build error
Build error
File size: 4,608 Bytes
89d669f 0905493 89d669f 0905493 844aef2 f537c4c 844aef2 0905493 5ae3f92 89d669f 16195e5 89d669f f537c4c 89d669f 5ae3f92 89d669f 16195e5 89d669f 16195e5 844aef2 0905493 89d669f 42b9713 89d669f 4aca0df 89d669f 5fb870c 844aef2 0905493 3812263 0905493 89d669f 16195e5 0905493 5ae3f92 844aef2 0905493 844aef2 5fb870c 844aef2 16195e5 44c4eaa 5fb870c 16195e5 5ae3f92 da8f9c2 5ae3f92 da8f9c2 5ae3f92 16195e5 da8f9c2 16195e5 6ed04ff 89d669f 844aef2 89d669f 844aef2 89d669f 844aef2 89d669f 844aef2 89d669f 16195e5 89d669f 44c4eaa 16195e5 f537c4c 16195e5 89d669f 16195e5 5fb870c 5ae3f92 5fb870c 16195e5 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
"""Gen ubee main."""
# pylint: disable=unused-import, wrong-import-position, wrong-import-order, too-many-locals, broad-except
from typing import Tuple, Optional
from pathlib import Path
import sys
from random import shuffle
from itertools import zip_longest
from textwrap import dedent
import gradio as gr
import pandas as pd
from icecream import install as ic_install, ic
import logzero
from logzero import logger
# for embeddable python
if "." not in sys.path:
sys.path.insert(0, ".")
from ubee.ubee import ubee
# logzero.loglevel(10)
ic_install()
ic.configureOutput(
includeContext=True,
outputFunction=logger.info,
)
ic.enable()
# ic.disenable() # to turn off
def greet1(name):
"""Dummy."""
return "Hello " + name + "!!"
def greet(
text1,
text2,
thresh: float
) -> Tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]:
"""Take inputs, return outputs.
Args:
text1: text
text2: text
Returns:
pd.DataFrame
"""
res1 = [elm.strip() for elm in text1.splitlines() if elm.strip()]
res2 = [elm.strip() for elm in text2.splitlines() if elm.strip()]
ic(res1)
ic(res2)
# _ = pd.DataFrame(zip_longest(res1, res2), columns=["text1", "text2"])
# return _
res1_, res2_ = ubee(res1, res2, thresh)
out_df = pd.DataFrame(
zip_longest(res1, res2),
columns=["text1", "text2"],
)
if res2_:
_ = pd.DataFrame(res2_, columns=["text1", "text2"])
else:
_ = None
return out_df, pd.DataFrame(res1_, columns=["text1", "text2", "likelihood"]), _
def main():
"""Create main entry."""
text_zh = Path("data/test_zh.txt").read_text(encoding="utf8")
text_zh = [elm.strip() for elm in text_zh.splitlines() if elm.strip()][:10]
text_zh = "\n\n".join(text_zh)
text_en = [
elm.strip()
for elm in Path("data/test_en.txt").read_text(encoding="utf8").splitlines()
if elm.strip()
]
_ = text_en[:9]
shuffle(_)
text_en = "\n\n".join(_)
title = "Ultimatumbee Aligner"
theme = "dark-grass"
theme = "grass"
description = """WIP showcasing a novel aligner"""
article = dedent("""
## NB
* The ultimatumbee aligner (``ubee`` for short) is intended for aligning text blocks (be it paragraphs, sentences or words). Since it is rather slow (30 para pairs (Wuthering Height ch1. for example) can take 10 to 20 mniutes), anything more than 50 blocks should probably be avaoided. Nevertheless, you are welcome to try. No big brother is watching.
* ``thresh``: longer text blocks justify a larger value; `.5` appears to be just right for paragraphs for Wuthering Height ch1.
Stay tuned for more details coming soon...
""").strip()
examples = [
["yo\nme", "你\n我", .5],
["me\nshe", "你\n她", .5],
]
lines = 15
placeholder = "Type or paste text here"
default1 = text_zh
default2 = text_en
label1 = "text1"
label2 = "text2"
inputs = [
gr.inputs.Textbox(
lines=lines, placeholder=placeholder, default=default1, label=label1
),
gr.inputs.Textbox(
lines=lines, placeholder=placeholder, default=default2, label=label2
),
gr.inputs.Slider(
minimum=0.0,
maximum=1.0,
step=0.1,
default=0.5,
),
]
out_df = gr.outputs.Dataframe(
headers=None,
max_rows=lines, # 20
max_cols=None,
overflow_row_behaviour="paginate",
type="auto",
label="To be aligned",
)
aligned = gr.outputs.Dataframe(
headers=None,
max_rows=lines, # 20
max_cols=None,
overflow_row_behaviour="paginate",
type="auto",
label="Aligned",
)
leftover = gr.outputs.Dataframe(
headers=None,
max_rows=lines, # 20
max_cols=None,
overflow_row_behaviour="paginate",
type="auto",
label="Leftover",
)
outputs = [ # tot. 3
out_df,
aligned,
leftover,
]
iface = gr.Interface(
fn=greet,
# fn=ubee,
title=title,
theme=theme,
layout="vertical", # horizontal unaligned
description=description,
article=article,
# inputs="text",
# outputs="text",
inputs=inputs,
outputs=outputs,
examples=examples,
# enable_queue=True,
)
iface.launch(
enable_queue=True,
share=True,
)
if __name__ == "__main__":
main()
|