singletongue commited on
Commit
643182d
·
verified ·
1 Parent(s): d8550bf

Use ja-v0.3.1 model, rearrange some UI components

Browse files
Files changed (1) hide show
  1. app.py +20 -15
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 = 0.0
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(0.0)
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
- text_input = gr.Textbox(label="Input Text")
 
 
 
 
 
 
 
 
 
 
 
 
 
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("---")