File size: 2,486 Bytes
3f6ca1a
 
 
 
 
 
 
9c91424
 
0217f42
9c91424
0217f42
b4bbd8c
0217f42
b4bbd8c
3f6ca1a
0217f42
 
3f6ca1a
 
0217f42
3f6ca1a
0217f42
3f6ca1a
9c91424
 
 
 
 
 
b4bbd8c
 
 
 
 
 
3f6ca1a
 
9c91424
b4bbd8c
 
 
 
9c91424
3f6ca1a
9c91424
44a3155
3f6ca1a
44a3155
9c91424
 
 
3f6ca1a
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
"""校異源氏物語の類似テキスト検索システム

このモジュールは、校異源氏物語のテキストデータベースに対して
類似テキスト検索を行うWebインターフェースを提供します。
"""


import gradio as gr

from genji_predict.core import ApiClient

DATA_PATH = "./data.json"

client = ApiClient(DATA_PATH)


def search_similar_texts(query, selected_vols, top_n, xml_file):
    xml_file_path = None

    if xml_file is not None:
        xml_file_path = xml_file.name

    return client.search_similar_texts(query, selected_vols, top_n=top_n, xml_file_path=xml_file_path)


# Gradioインターフェースの作成
demo = gr.Interface(
    fn=search_similar_texts,
    inputs=[
        gr.Textbox(label="検索テキスト", placeholder="検索したいテキストを入力してください"),
        gr.Dropdown(
            choices=[str(i) for i in range(1, 55)],
            label="巻",
            multiselect=True,
            value=[],
        ),
        gr.Slider(minimum=1, maximum=10, value=5, step=1, label="表示件数"),
        gr.File(label="TEI/XMLファイル")
    ],
    outputs=[
        gr.JSON(),
        # gr.JSON(label="巻ごとの割合")
    ],
    title="校異源氏物語 類似テキスト検索",
    description="テキストを入力すると、校異源氏物語の類似する箇所を検索します。TEI/XMLファイルのアップロードにあたっては、[こちら](https://zenn.dev/nakamura196/articles/e9238881bbc4f7#ocr)をご覧ください。",
    allow_flagging="never",
    examples=[
        ["同五源氏誕生より十二才まて有いづれの御時にか。女御更衣ありさふらひ浴けるなかにいとやむこ□□□となききはにはあらぬかすぐれてときめき給ふありけりはしめよりわれはと思ひあがり給へる御かためざましきものにおとしめそねみ給おなじほどそれより下らうの更衣たちはましてやすからすあさ夕の宮つかへにつけても人の心をうこかしうらみをおふつもりにや有けん銅大世更衣いとあづしくなりゆきもの心ほそけにさとがちなるをいよあかすあつれなるものにおほゝして人のそしりをもえはゞからせ給はす世のためしにもなりぬべき御もてなしなりかんだちめうへ人などもあひなくめを", [], 5, None]
    ]
)

# インターフェースの起動
demo.launch()