BERT_based_QnA / app.py
pragnakalp's picture
Update app.py
946dda5
import gradio as gr
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
from transformers import pipeline
from save_data import save_data_and_sendmail
tokenizer = AutoTokenizer.from_pretrained("monakth/bert-base-multilingual-uncased-finetuned-squadv2")
model = AutoModelForQuestionAnswering.from_pretrained("monakth/bert-base-multilingual-uncased-finetuned-squadv2")
language_options = ['English','Hindi','Arabic','Spanish','French','German','Chinese','Portuguese',
'Italian','Turkish','Russian','Korean','Japanese']
input_para = '''Google was founded in 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a privately held company on September 4, 1998. An initial public offering (IPO) took place on August 19, 2004, and Google moved to its headquarters in Mountain View, California, nicknamed the Googleplex. In August 2015, Google announced plans to reorganize its various interests as a conglomerate called Alphabet Inc. Google is Alphabet's leading subsidiary and will continue to be the umbrella company for Alphabet's Internet interests. Sundar Pichai was appointed CEO of Google, replacing Larry Page who became the CEO of Alphabet.'''
question = ['Who is current CEO?','What is IPO?','Where is headquarter of Google?','','']
Que_ans = pipeline("question-answering", model=model,tokenizer = tokenizer )
def generate_qna(context,input_radio,q1,q2,q3,q4,q5):
dic = {}
keys = []
final_ans = []
if context.strip():
question = [q1,q2,q3,q4,q5]
que_list = list(filter(None, question))
for i in range(len(que_list)):
result = Que_ans(question=que_list[i], context=context)
final_ans.append(result['answer'])
keys.append(str(i))
print(final_ans)
result_dic = d = [list(j) for j in zip(que_list,final_ans)]
dic = dict(zip(keys, final_ans))
save_data_and_sendmail(input_radio, context, result_dic)
print(dic)
return dic.get('0',''),dic.get('1',''),dic.get('2',''),dic.get('3',''),dic.get('4','')
else:
raise gr.Error("Please enter text in inputbox!!!!")
def return_lan_para(radio_value):
context = ""
que_list = []
a1,a2,a3,a4,a5 = '','','','',''
if radio_value == 'English':
context = '''Google was founded in 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a privately held company on September 4, 1998. An initial public offering (IPO) took place on August 19, 2004, and Google moved to its headquarters in Mountain View, California, nicknamed the Googleplex. In August 2015, Google announced plans to reorganize its various interests as a conglomerate called Alphabet Inc. Google is Alphabet's leading subsidiary and will continue to be the umbrella company for Alphabet's Internet interests. Sundar Pichai was appointed CEO of Google, replacing Larry Page who became the CEO of Alphabet.'''
que_list=['Who is current CEO?','What is IPO?','Where is headquarter of Google?','','']
if radio_value == 'Hindi':
context = '''भारत (आधिकारिक नाम: भारत गणराज्य, अंग्रेज़ी: Republic of India) दक्षिण एशिया में स्थित भारतीय उपमहाद्वीप का सबसे बड़ा देश है। पूर्ण रूप से उत्तरी गोलार्ध में स्थित भारत, भौगोलिक दृष्टि से विश्व में छठा सबसे बड़ा और जनसंख्या के दृष्टिकोण से दूसरा सबसे बड़ा देश है। भारत के पश्चिम में पाकिस्तान, उत्तर-पूर्व में चीन, नेपाल और भूटान, पूर्व में बांग्लादेश और म्यान्मार स्थित हैं। हिन्द महासागर में इसके दक्षिण पश्चिम में मालदीव, दक्षिण में श्रीलंका और दक्षिण-पूर्व में इंडोनेशिया से भारत की सामुद्रिक सीमा लगती है। इसके उत्तर की भौतिक सीमा हिमालय पर्वत से और दक्षिण में हिन्द महासागर से लगी हुई है। पूर्व में बंगाल की खाड़ी है तथा पश्चिम में अरब सागर हैं। प्राचीन सिन्धु घाटी सभ्यता, व्यापार मार्गों और बड़े-बड़े साम्राज्यों का विकास-स्थान रहे भारतीय उपमहाद्वीप को इसके सांस्कृतिक और आर्थिक सफलता के लंबे इतिहास के लिये जाना जाता रहा है। चार प्रमुख संप्रदायों: हिंदू, बौद्ध, जैन और सिख धर्मों का यहां उदय हुआ।'''
que_list=['भारतका आधिकारिक नाम क्या है?','भारत के पूर्व में कोनसे देश हे?','पूर्वमें कोनसी खाड़ी हे?','भारतको किसके लिए जाना जाता है?','किस सम्प्रदायोंका भारतमे उदय हुवा?']
if radio_value == 'Arabic':
context = '''يضاف إلى ذلك توفيرها لإمكانية نشر المواقع التي توفر معلومات نصية ورسومية في شكل قواعد بيانات وخرائط على شبكة الإنترنت وبرامج الأوفيس وإتاحة أوركوت التي تتيح الاتصال عبر الشبكة بين الأفراد ومشاركة أفلام وعروض الفيديو، علاوةً على الإعلان عن نسخ مجانية إعلانية من الخدمات التكنولوجية السابقة. يقع المقرّ الرئيسي للشركة، والذي يحمل اسم جوجل بليكس، في مدينة "ماونتن فيو" بولاية كاليفورنيا. وقد وصل عدد موظفيها الذين يعملون دوامًا كاملًا في 31 مارس عام 2009 إلى 20,164 موظفًا. تأسست هذه الشركة على يد كل من لاري بايج وسيرجي برين عندما كانا طالبين بجامعة ستانفورد. في بادئ الأمر تم تأسيس الشركة في الرابع من سبتمبر عام 1998 كشركة خاصة مملوكة لعدد قليل من الأشخاص. وفي التاسع عشر من أغسطس عام 2004، طرحت الشركة أسهمها في اكتتاب عام ابتدائي، لتجمع الشركة بعده رأس مال بلغت قيمته 1.67 مليار دولار أمريكي، وبهذه القيمة وصلت قيمة رأس مال الشركة بأكملها إلى 23 مليار دولار أمريكي. وبعد ذلك واصلت شركة جوجل ازدهارها عبر طرحها لسلسلة من المنتجات الجديدة واستحواذها على شركات أخرى عديدة والدخول في شراكات جديدة. وطوال مراحل ازدهار الشركة، كانت ركائزها المهمة هي المحافظة على البيئة وخدمة المجتمع والإبقاء على العلاقات الإيجابية بين موظفيها. ولأكثر من مرة، احتلت الشركة المرتبة الأولى في تقييم لأفضل الشركات تجريه مجلة فورتشن كما حازت بصفة أقوى مئة علامة تجارية في العالم الذي تجريه مجموعة شركات ميلوارد براون.'''
que_list=["أين يقع مقر شركة قوقل؟","من قام بتأسيس شركة قوقل؟","متى تم طرح شركة قوقل لإكتتاب؟",
"أين درس 'لاري بيدج' و 'سيرغي برين'؟","كم كان رأس مال شركة قوقل؟"]
if radio_value == 'Spanish':
context = '''Google LLC es una compañía principal subsidiaria de la multinacional estadounidense Alphabet Inc., cuya especialización son los productos y servicios relacionados con Internet, software, dispositivos electrónicos y otras tecnologías. El principal producto de Google es el motor de búsqueda de contenido en Internet, del mismo nombre, aunque ofrece también otros productos y servicios como el correo electrónico llamado Gmail, sus servicios de mapas Google Maps, Google Street View y Google Earth, el sitio web de vídeos YouTube y otras utilidades web como Google Libros o Google Noticias, Google Chrome y la red social Google+ este último sacado fuera de línea en el primer trimestre de 2019. Por otra parte, lidera el desarrollo del sistema operativo basado en Linux, Android, orientado a teléfonos inteligentes, tabletas, televisores y automóviles y en gafas de realidad aumentada, las Google Glass. Su eslogan es «Haz lo correcto».'''
que_list=["¿Cuál es el producto principal de google?","¿Qué es el eslogan de google?",
"¿Cuál es la especialización de google?","¿Cuáles son otras ofertas de servicios de Google?",
"¿Cuándo se desconectó google +?"]
if radio_value == 'French':
context = '''Google LLC est une entreprise américaine de services technologiques fondée en 1998 dans la Silicon Valley, en Californie, par Larry Page et Sergey Brin, créateurs du moteur de recherche Google.
C'est une filiale de la société Alphabet depuis août 2015. L'entreprise s'est principalement fait connaître à travers la situation monopolistique de son moteur de recherche, concurrencé historiquement par AltaVista puis par Yahoo! et Bing. Elle a ensuite procédé à de nombreuses acquisitions et développements et détient aujourd'hui de nombreux logiciels et sites web notables parmi lesquels YouTube, le système d'exploitation pour téléphones mobiles Android, ainsi que d'autres services tels que Gmail, Google Earth, Google Maps ou Google Play. Google s'est donné comme mission « d'organiser l'information à l'échelle mondiale et de la rendre universellement accessible et utile ». Après Larry Page et Eric Schmidt, son DG est, depuis 2015, Pichai Sundararajan.'''
que_list=["Qui est le PDG actuel?","Quelle est la mission de google?",
"Depuis quand Google est-il une filiale d'Alphabet?","Qu'est-ce que Google est connu pour?",
"Quels services offrent Google?"]
if radio_value == 'German':
context = '''Die Google LLC ist ein US-amerikanisches Technologieunternehmen, tätig in den Bereichen Hard- und Softwareentwicklung, mit der Rechtsform Limited Liability Company mit Hauptsitz im kalifornischen Mountain View und Tochterunternehmen der Holding-Gesellschaft XXVI Holdings Inc. Diese gehört dem Unternehmen Alphabet Inc. Bis zum 1. September 2017 trug Google LLC den Namen Google Inc. Google Inc. wurde vor allem durch die gleichnamige Suchmaschine Google bekannt. Das Unternehmen wurde am 4. September 1998 von Larry Page und Sergey Brin gegründet. Das Unternehmen bekundet, „die Informationen dieser Welt zu organisieren und allgemein zugänglich und nutzbar zu machen“. Google Inc. gehört seit dem 2. Oktober 2015 zu Alphabet. Der vorige Google-Chef Larry Page wechselte zusammen mit Sergey Brin an die Spitze der neu geschaffenen Holding. Die Führung von Google übernahm Sundar Pichai.'''
que_list=["Wo ist der Hauptsitz von Google?","Was ist Google LLC?","Wofür ist Google Inc bekannt?",
"Wann wurde Google gegründet?","Wer hat Google gegründet?"]
if radio_value == 'Chinese':
context = '''阿里巴巴集團(NYSE:BABA、港交所:9988)创立于1999年,是一家提供電子商務線上交易平台的公司,服務範圍包括B2B貿易、網上零售、購物搜索引擎、第三方支付和雲計算服務。集團的子公司包括阿里巴巴B2B、淘寶網、天猫、一淘网、阿里雲計算、支付寶、螞蟻金服等。
旗下的淘宝网和天猫在2012年销售额达到1.1万亿人民币,2015年度商品交易总额已经超过3万亿元人民币,是全球最大零售商。
根據阿里巴巴集团向美国证券交易委员会提交的IPO招股书显示,雅虎持有阿里巴巴集團22.6%股權、軟銀持阿里集團34.4%股份,另管理層、僱員及其他投資者持股比例合共約為43%,當中馬雲持阿里巴巴集團約8.9%,蔡崇信持股為3.6%。
至2012年九月底止的財政年度,以美國會計準則計算,阿里營業額按年增長74%至318.39億元(港元‧下同),盈利急升80%至37.75億元。
2015年全年阿里巴巴营收146.01億美元,净利為74.94億美元。'''
que_list=["阿里巴巴何时成立?","阿里巴巴2015年的收入是多少?","阿里巴巴2015年的利润是多少?","阿里巴巴集团提供什么?",
"软银在阿里巴巴集团中持有多少?"]
if radio_value == 'Portuguese':
context = '''O Google foi fundado em 1998 por Larry Page e Sergey Brin enquanto eles eram Ph.D. estudantes da Universidade de Stanford, na Califórnia. Juntos, eles possuem cerca de 14% de suas ações e controlam 56% do poder de voto dos acionistas por meio da supervotação das ações. Eles incorporaram o Google como uma empresa de capital fechado em 4 de setembro de 1998. Uma oferta pública inicial (IPO) ocorreu em 19 de agosto de 2004, e o Google mudou-se para sua sede em Mountain View, Califórnia, apelidada de Googleplex. Em agosto de 2015, o Google anunciou planos para reorganizar seus vários interesses como um conglomerado chamado Alphabet Inc. O Google é a principal subsidiária da Alphabet e continuará sendo a empresa-guarda-chuva dos interesses da Alphabet na Internet. Sundar Pichai foi nomeado CEO do Google, substituindo Larry Page, que se tornou CEO da Alphabet.'''
que_list=["Quem é o atual CEO?","Qual é o apelido do google?","Quem fundou o google?",
"onde fica a sede do Google?","quando foi realizado o IPO?"]
if radio_value == 'Italian':
context = '''Google è stata fondata nel 1998 da Larry Page e Sergey Brin mentre erano dottorandi presso la Stanford University in California. Insieme possiedono circa il 14% delle sue azioni e controllano il 56% del potere di voto degli azionisti attraverso azioni di voto. Hanno incorporato Google come società privata il 4 settembre 1998. Un'offerta pubblica iniziale (IPO) ha avuto luogo il 19 agosto 2004 e Google si è trasferito nella sua sede di Mountain View, in California, soprannominato Googleplex. Nell'agosto 2015, Google ha annunciato i piani per riorganizzare i suoi vari interessi come un conglomerato chiamato Alphabet Inc. Google è la principale filiale di Alphabet e continuerà ad essere la società ombrello per gli interessi di Alphabet su Internet. Sundar Pichai è stato nominato CEO di Google, in sostituzione di Larry Page che è diventato CEO di Alphabet.'''
que_list=["Chi è l'attuale CEO?","Cos'è l'IPO?","Chi ha fondato Google?",
"dov'è la sede di Google?","quando ha avuto luogo l'IPO?"]
if radio_value == 'Turkish':
context = '''Google, 1998 yılında Larry Page ve Sergey Brin tarafından Ph.D. Kaliforniya'daki Stanford Üniversitesi öğrencileri. Birlikte hisselerinin yaklaşık yüzde 14'üne sahipler ve hisse senedi oylama gücünün yüzde 56'sını hisse senetlerini denetleyerek kontrol ediyorlar. Google'ı 4 Eylül 1998'de özel bir şirket olarak dahil ettiler. İlk halka arz (IPO) 19 Ağustos 2004'te gerçekleşti ve Google, Googleplex lakaplı California'daki Mountain View'daki genel merkezine taşındı. Ağustos 2015'te Google, çeşitli ilgi alanlarını Alphabet Inc adlı bir holding olarak yeniden düzenlemeyi planladığını açıkladı. Google, Alfabenin önde gelen yan kuruluşudur ve Alfabenin İnternet çıkarları için şemsiye şirket olmaya devam edecektir. Sundar Pichai, Alfabenin CEO'su olan Larry Page'ın yerine Google'ın CEO'su olarak atandı.'''
que_list=["Şu anki CEO kim?","Google ne zaman kuruldu?","Google'ı kim kurdu?","Google'ın merkezi nerede?",
"Halka arz ne zaman gerçekleşti?"]
if radio_value == 'Russian':
context = '''Google был основан в 1998 году Ларри Пейджем и Сергеем Брином, когда они были докторами наук. студенты Стэнфордского университета в Калифорнии. Вместе они владеют около 14 процентами своих акций и контролируют 56 процентов голосов акционеров, контролирующих акции. Они включили Google в частную компанию 4 сентября 1998 года. Первичное публичное размещение акций (IPO) состоялось 19 августа 2004 года, и Google переехал в свою штаб-квартиру в Маунтин-Вью, штат Калифорния, по прозвищу Googleplex. В августе 2015 года Google объявила о планах реорганизации своих различных интересов в виде конгломерата под названием Alphabet Inc. Google является ведущей дочерней компанией Alphabet и по-прежнему будет главной компанией, занимающейся интересами Alphabet в Интернете. Сундар Пичаи был назначен генеральным директором Google, заменив Ларри Пейджа, который стал генеральным директором Alphabet.'''
que_list=["Кто нынешний генеральный директор?","Что такое IPO?","Кто основал Google?",
"где находится штаб-квартира Google?","когда состоялось IPO?"]
if radio_value == 'Korean':
context = '''구글 LLC(영어: Google LLC)는 전 세계의 정보를 체계화하여 모든 사용자가 편리하게 이용할 수 있도록 하는 것을 목표로 하는 미국의 다국적 기업이다. 검색 서비스 제공을 주력으로 한다. 구글 검색은 2018년 5월 기준 전 세계 검색량의 90%를 점유하고 있다. 2008년 웹 페이지 인덱스 수가 1조를 돌파했다.이스터 에그를 많이 숨겨둔 것으로도 유명하다.
1998년에 'BackRub'이라는 이름으로 검색 서비스를 시작하였다.이후 구글(Google)로 이름을 변경하였는데, 이는 10100을 뜻하는 구골을 고의적으로 변경 표기한 것에서 유래되었다. 매우 큰 유한수를 의미하는 이 단어는 '엄청난 규모의 검색엔진을 만들겠다'는 설립자들의 목표와 맞아 떨어졌으나 당시 이미 '구골'이라는 사이트가 존재하여 구글이 되었다. '왓박스'(whatbox)라는 이름도 고려되었으나 포르노 사이트인 웻박스(watbox)와 유사해 제외되었다.
2006년, 구글은 유튜브라는 세계 최대의 동영상 공유 사이트를 인수했다. 같은해 11월, 유튜브의 하루 방문자는 2,500만 명으로 추정되었다. 2007년, 구글은 최고의 디지털 마케팅 회사인 더블클릭을 인수했고, 같은해 더블클릭은 하루 170억 개의 광고를 집행했다. 그리하여 구글은 2008년, 증권거래위원회에 보낸 공개문서에서 구글은 "우리는 기술회사로 시작해서 소프트웨어, 기술, 인터넷, 광고, 미디어 회사가 모두 하나로 합해진 기업으로 진화했다" 고 말했다. 230억 달러에 달하는 미국 온라인 광고 시장과 540억 달러에 달하는 전 세계 온라인 광고 시장의 40%를 독식했다.
구글은 PDF, 포스트스크립트, 마이크로소프트 워드, 어도비 플래시 문서들을 포함한 웹 문서 검색 서비스를 제공한다. 이 외에 구글 이미지 검색, Google 뉴스 한국, 구글 뉴스그룹, 구글 웹 디렉토리, 구글 비디오, Froogle 서비스에서 이름이 변경된 상품 검색, 구글 맵, 구글 어스 등의 주요 검색 서비스가 있다.'''
que_list=["Google LLC 란 무엇입니까?","Google은 무엇으로 유명합니까?","Google은 언제 출시 되었습니까?",
"Google은 언제 Youtube를 인수 했습니까?","Google은 무엇을 제공합니까?"]
if radio_value == 'Japanese':
context = '''Googleは1998年にラリーペイジとセルゲイブリンによって博士号を取得して設立されました。 カリフォルニアのスタンフォード大学の学生。 共同で彼らはその株式の約14%を所有し、スーパー投票株式を通じて株主の議決権の56%を管理しています。 1998年9月4日にGoogleを非公開会社として設立しました。2004年8月19日に新規株式公開(IPO)が行われ、Googleplexの愛称でカリフォルニア州マウンテンビューの本社に移転しました。 2015年8月、GoogleはAlphabet Incというコングロマリットとしてさまざまな利益を再編成する計画を発表しました。GoogleはAlphabetの主要な子会社であり、Alphabetのインターネット利益の傘下企業であり続けます。 Sundar PichaiはGoogleのCEOに任命され、アルファベットのCEOになったLarry Pageの後任となりました。'''
que_list=["現在のCEOは誰ですか?","IPOとは何ですか?","IPOはいつ行われましたか?","Googleが設立されたのはいつですか?",
"ラリーペイジとセルゲイブリンがどれだけ共有していますか?"]
return context,que_list[0],que_list[1],que_list[2],que_list[3],que_list[4],a1,a2,a3,a4,a5
with gr.Blocks(css=".gradio-container {background-color: lightgray} #btn {background-color: orange;}") as demo:
gr.Markdown("<h1 style='text-align: center; margin-bottom: 1rem'>"
+ "BERT based QnA"
+ "</h1>")
gr.Markdown("Question and Answering system from given paragraph is a very basic capability of machines in field of Natural Language Processing. Test our BERT based QnA with your own paragraphs and your own set of questions. Not only for English it is available for 12 other languages.")
with gr.Row():
with gr.Column():
input_radio= gr.Radio(language_options,label="Select a language",value='English')
input_text=gr.Textbox(lines=5, label="Paragraph",value =input_para)
with gr.Row():
sub_btn = gr.Button("Submit",elem_id="btn")
with gr.Column():
q1=gr.Textbox(label="Question 1",value=question[0])
a1=gr.Textbox(label="Answer 1")
q2=gr.Textbox(label="Question 2",value=question[1])
a2=gr.Textbox(label="Answer 2")
q3=gr.Textbox(label="Question 3",value=question[2])
a3=gr.Textbox(label="Answer 3")
q4=gr.Textbox(label="Question 4")
a4=gr.Textbox(label="Answer 4")
q5=gr.Textbox(label="Question 5")
a5=gr.Textbox(label="Answer 5")
gr.Markdown("""<p style='text-align: center;'>Feel free to give us your <a href="https://www.pragnakalp.com/contact/" target="_blank">feedback</a> on this BERT based QnA demo.</p>
<p style='text-align: center;'>Developed by: <a href="https://www.pragnakalp.com" target="_blank">Pragnakalp Techlabs</a></p>""")
input_radio.change(return_lan_para,input_radio,[input_text,q1,q2,q3,q4,q5,a1,a2,a3,a4,a5])
sub_btn.click(generate_qna, inputs=[input_text,input_radio,q1,q2,q3,q4,q5], outputs=[a1,a2,a3,a4,a5])
demo.launch()