genji_predict / app.py
nakamura196's picture
feat: initial commit
9c91424
raw
history blame
1.18 kB
import gradio as gr
from Levenshtein import ratio
import json
data_path = "./data.json"
with open(data_path, "r") as f:
documents_data = json.load(f)
def search_similar_texts(query, top_n=5):
# クエリをベクトル化
results = []
for doc in documents_data:
score = ratio(query, doc["text"])
results.append({
"vol": doc["vol"],
"page": doc["page"],
"score": score,
"text": doc["text"]
})
# print(score)
results.sort(key=lambda x: x["score"], reverse=True)
return results[:top_n]
# Gradioインターフェースの作成
demo = gr.Interface(
fn=search_similar_texts,
inputs=[
gr.Textbox(label="検索テキスト", placeholder="検索したいテキストを入力してください"),
gr.Slider(minimum=1, maximum=10, value=5, step=1, label="表示件数")
],
outputs=gr.JSON(),
title="校異源氏物語 類似テキスト検索",
description="テキストを入力すると、校異源氏物語の類似する箇所を検索します。",
allow_flagging="never",
)
# インターフェースの起動
demo.launch()