Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Use ja-v0.3.1 model, rearrange some UI components
Browse files
app.py
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
import os
|
2 |
import re
|
3 |
import unicodedata
|
4 |
from pathlib import Path
|
@@ -14,7 +13,7 @@ from transformers import AutoModelForPreTraining, AutoTokenizer
|
|
14 |
ALIAS_SEP = "|"
|
15 |
|
16 |
repo_id = "studio-ousia/luxe"
|
17 |
-
revision = "ja-v0.3"
|
18 |
|
19 |
nayose_repo_id = "studio-ousia/luxe-nayose-bm25"
|
20 |
|
@@ -157,7 +156,7 @@ def get_predicted_entity_spans(
|
|
157 |
|
158 |
|
159 |
def get_topk_entities_from_texts(
|
160 |
-
texts: list[str], k: int = 5, entity_span_sensitivity: float = 1.0, nayose_coef: float =
|
161 |
) -> tuple[list[list[tuple[int, int]]], list[list[str]], list[list[str]], list[list[list[str]]]]:
|
162 |
batch_entity_spans: list[list[tuple[int, int]]] = []
|
163 |
topk_normal_entities: list[list[str]] = []
|
@@ -227,12 +226,14 @@ def get_similar_entities(query_entity: str, k: int = 10) -> list[str]:
|
|
227 |
|
228 |
|
229 |
with gr.Blocks() as demo:
|
230 |
-
gr.Markdown("
|
|
|
|
|
231 |
|
232 |
texts = gr.State([])
|
233 |
topk = gr.State(5)
|
234 |
entity_span_sensitivity = gr.State(1.0)
|
235 |
-
nayose_coef = gr.State(
|
236 |
batch_entity_spans = gr.State([])
|
237 |
topk_normal_entities = gr.State([])
|
238 |
topk_category_entities = gr.State([])
|
@@ -240,21 +241,26 @@ with gr.Blocks() as demo:
|
|
240 |
selected_entity = gr.State()
|
241 |
similar_entities = gr.State([])
|
242 |
|
243 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
text_input.change(fn=lambda text: [normalize_text(text)], inputs=text_input, outputs=texts)
|
245 |
-
texts_file = gr.File(label="Input Texts")
|
246 |
texts_file.change(fn=get_texts_from_file, inputs=texts_file, outputs=texts)
|
247 |
-
topk_input = gr.Number(5, label="Top K", interactive=True)
|
248 |
topk_input.change(fn=lambda val: val, inputs=topk_input, outputs=topk)
|
249 |
-
entity_span_sensitivity_input = gr.Slider(
|
250 |
-
minimum=0.1, maximum=5.0, value=1.0, step=0.1, label="Entity Span Sensitivity", interactive=True
|
251 |
-
)
|
252 |
entity_span_sensitivity_input.change(
|
253 |
fn=lambda val: val, inputs=entity_span_sensitivity_input, outputs=entity_span_sensitivity
|
254 |
)
|
255 |
-
nayose_coef_input = gr.Slider(
|
256 |
-
minimum=0.0, maximum=2.0, value=0.0, step=0.1, label="Nayose Coefficient", interactive=True
|
257 |
-
)
|
258 |
nayose_coef_input.change(fn=lambda val: val, inputs=nayose_coef_input, outputs=nayose_coef)
|
259 |
|
260 |
texts.change(
|
@@ -277,7 +283,6 @@ with gr.Blocks() as demo:
|
|
277 |
inputs=[texts, topk, entity_span_sensitivity, nayose_coef],
|
278 |
outputs=[batch_entity_spans, topk_normal_entities, topk_category_entities, topk_span_entities],
|
279 |
)
|
280 |
-
|
281 |
topk_input.change(inputs=topk_input, outputs=topk)
|
282 |
|
283 |
gr.Markdown("---")
|
|
|
|
|
1 |
import re
|
2 |
import unicodedata
|
3 |
from pathlib import Path
|
|
|
13 |
ALIAS_SEP = "|"
|
14 |
|
15 |
repo_id = "studio-ousia/luxe"
|
16 |
+
revision = "ja-v0.3.1"
|
17 |
|
18 |
nayose_repo_id = "studio-ousia/luxe-nayose-bm25"
|
19 |
|
|
|
156 |
|
157 |
|
158 |
def get_topk_entities_from_texts(
|
159 |
+
texts: list[str], k: int = 5, entity_span_sensitivity: float = 1.0, nayose_coef: float = 1.0
|
160 |
) -> tuple[list[list[tuple[int, int]]], list[list[str]], list[list[str]], list[list[list[str]]]]:
|
161 |
batch_entity_spans: list[list[tuple[int, int]]] = []
|
162 |
topk_normal_entities: list[list[str]] = []
|
|
|
226 |
|
227 |
|
228 |
with gr.Blocks() as demo:
|
229 |
+
gr.Markdown("# 📝 LUXE Demo")
|
230 |
+
|
231 |
+
gr.Markdown("## 入力テキスト")
|
232 |
|
233 |
texts = gr.State([])
|
234 |
topk = gr.State(5)
|
235 |
entity_span_sensitivity = gr.State(1.0)
|
236 |
+
nayose_coef = gr.State(1.0)
|
237 |
batch_entity_spans = gr.State([])
|
238 |
topk_normal_entities = gr.State([])
|
239 |
topk_category_entities = gr.State([])
|
|
|
241 |
selected_entity = gr.State()
|
242 |
similar_entities = gr.State([])
|
243 |
|
244 |
+
with gr.Tab(label="直接入力"):
|
245 |
+
text_input = gr.Textbox(label="入力テキスト")
|
246 |
+
with gr.Tab(label="ファイルアップロード"):
|
247 |
+
texts_file = gr.File(label="入力テキストファイル")
|
248 |
+
|
249 |
+
with gr.Accordion(label="ハイパーパラメータ", open=False):
|
250 |
+
topk_input = gr.Number(5, label="エンティティ件数", interactive=True)
|
251 |
+
entity_span_sensitivity_input = gr.Slider(
|
252 |
+
minimum=0.1, maximum=5.0, value=1.0, step=0.1, label="エンティティ検出の積極度", interactive=True
|
253 |
+
)
|
254 |
+
nayose_coef_input = gr.Slider(
|
255 |
+
minimum=0.0, maximum=2.0, value=1.0, step=0.1, label="文字列一致の優先度", interactive=True
|
256 |
+
)
|
257 |
+
|
258 |
text_input.change(fn=lambda text: [normalize_text(text)], inputs=text_input, outputs=texts)
|
|
|
259 |
texts_file.change(fn=get_texts_from_file, inputs=texts_file, outputs=texts)
|
|
|
260 |
topk_input.change(fn=lambda val: val, inputs=topk_input, outputs=topk)
|
|
|
|
|
|
|
261 |
entity_span_sensitivity_input.change(
|
262 |
fn=lambda val: val, inputs=entity_span_sensitivity_input, outputs=entity_span_sensitivity
|
263 |
)
|
|
|
|
|
|
|
264 |
nayose_coef_input.change(fn=lambda val: val, inputs=nayose_coef_input, outputs=nayose_coef)
|
265 |
|
266 |
texts.change(
|
|
|
283 |
inputs=[texts, topk, entity_span_sensitivity, nayose_coef],
|
284 |
outputs=[batch_entity_spans, topk_normal_entities, topk_category_entities, topk_span_entities],
|
285 |
)
|
|
|
286 |
topk_input.change(inputs=topk_input, outputs=topk)
|
287 |
|
288 |
gr.Markdown("---")
|