Spaces:
Sleeping
Sleeping
import spacy | |
import gradio as gr | |
import json | |
nlp = spacy.load('zh_core_web_md') | |
data = open('F-C0032-001.json',"r",encoding="utf-8") | |
output = json.load(data) | |
location=output['records']['location'] | |
ansA=[] | |
def getFinal(city_n): | |
for i in location: | |
city = i['locationName'] | |
if city==city_n: | |
wx = i['weatherElement'][0]['time'][0]['parameter']['parameterName'] | |
maxtT = i['weatherElement'][4]['time'][0]['parameter']['parameterName'] | |
mintT = i['weatherElement'][2]['time'][0]['parameter']['parameterName'] | |
ansA.append(city) | |
ansA.append(wx) | |
ansA.append(mintT) | |
ansA.append(maxtT) | |
return ansA | |
def appMain(sentence): | |
statement1 = nlp("想查詢哪個城市的天氣?") | |
statement2 = nlp("想詢問的城市"+sentence) | |
#print(statement1.similarity(statement2)) | |
ansA.clear() | |
if statement1.similarity(statement2) >= 0.80: | |
for ent in statement2.ents: | |
if ent.label_ == "GPE": | |
sentence = ent.text | |
if sentence=='台北' or sentence=='臺北'or sentence=='臺北市': | |
getFinal('臺北市') | |
return ansA | |
elif sentence=='新北' or sentence=='新北市': | |
getFinal('新北市') | |
return ansA | |
elif sentence=='嘉義' or sentence=='嘉義市': | |
getFinal('嘉義市') | |
return ansA | |
elif sentence=='新竹' or sentence=='新竹市': | |
getFinal('新竹市') | |
return ansA | |
elif sentence=='新竹縣': | |
getFinal('新竹縣') | |
return ansA | |
elif sentence=='台南' or sentence=='臺南'or sentence=='臺南市': | |
getFinal('臺南市') | |
return ansA | |
else: | |
return '-查無資料-' | |
else: | |
return '-查無資料-' | |
title = "Spacy Similarity" | |
desc = "目前設定->(台北、新北、嘉義、新竹、台南)" | |
demo = gr.Interface(fn=appMain, title=title, inputs="text", description=desc, outputs="text") | |
demo.launch() | |
if __name__ == "__main__": | |
demo.launch(share=True) |