Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import pipeline
|
2 |
+
nlp = pipeline('question-answering', model='lserinol/bert-turkish-question-answering', tokenizer='lserinol/bert-turkish-question-answering')
|
3 |
+
nlp({
|
4 |
+
'question': "Ankara'da kaç ilçe vardır?",
|
5 |
+
'context': r"""Türkiye'nin başkenti Ankara'dır. Ülkenin en büyük idari birimleri illerdir ve 81 il vardır. Bu iller ilçelere ayrılmıştır, toplamda 973 ilçe mevcuttur."""
|
6 |
+
})
|
7 |
+
|
8 |
+
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
|
9 |
+
import torch
|
10 |
+
|
11 |
+
tokenizer = AutoTokenizer.from_pretrained("lserinol/bert-turkish-question-answering")
|
12 |
+
model = AutoModelForQuestionAnswering.from_pretrained("lserinol/bert-turkish-question-answering")
|
13 |
+
text = r"""
|
14 |
+
Ankara'nın başkent ilan edilmesinin ardından (13 Ekim 1923) şehir hızla gelişmiş ve Türkiye'nin ikinci en kalabalık ili olmuştur.
|
15 |
+
Türkiye Cumhuriyeti'nin ilk yıllarında ekonomisi tarım ve hayvancılığa dayanan ilin topraklarının yarısı hâlâ tarım amaçlı
|
16 |
+
kullanılmaktadır. Ekonomik etkinlik büyük oranda ticaret ve sanayiye dayalıdır. Tarım ve hayvancılığın ağırlığı ise giderek
|
17 |
+
azalmaktadır. Ankara ve civarındaki gerek kamu sektörü gerek özel sektör yatırımları, başka illerden büyük bir nüfus göçünü
|
18 |
+
teşvik etmiştir. Cumhuriyetin kuruluşundan günümüze, nüfusu ülke nüfusunun iki katı hızda artmıştır. Nüfusun yaklaşık dörtte
|
19 |
+
üçü hizmet sektörü olarak tanımlanabilecek memuriyet, ulaşım, haberleşme ve ticaret benzeri işlerde, dörtte biri sanayide,
|
20 |
+
%2'si ise tarım alanında çalışır. Sanayi, özellikle tekstil, gıda ve inşaat sektörlerinde yoğunlaşmıştır. Günümüzde ise en çok
|
21 |
+
savunma, metal ve motor sektörlerinde yatırım yapılmaktadır. Türkiye'nin en çok sayıda üniversiteye sahip ili olan Ankara'da
|
22 |
+
ayrıca, üniversite diplomalı kişi oranı ülke ortalamasının iki katıdır. Bu eğitimli nüfus, teknoloji ağırlıklı yatırımların
|
23 |
+
gereksinim duyduğu iş gücünü oluşturur. Ankara'dan otoyollar, demir yolu ve hava yoluyla Türkiye'nin diğer şehirlerine ulaşılır.
|
24 |
+
Ankara aynı zamanda başkent olarak Türkiye Büyük Millet Meclisi (TBMM)'ye de ev sahipliği yapmaktadır.
|
25 |
+
"""
|
26 |
+
|
27 |
+
questions = [
|
28 |
+
"Ankara kaç yılında başkent oldu?",
|
29 |
+
"Ankara ne zaman başkent oldu?",
|
30 |
+
"Ankara'dan başka şehirlere nasıl ulaşılır?",
|
31 |
+
"TBMM neyin kısaltmasıdır?"
|
32 |
+
]
|
33 |
+
|
34 |
+
for question in questions:
|
35 |
+
inputs = tokenizer(question, text, add_special_tokens=True, return_tensors="pt")
|
36 |
+
input_ids = inputs["input_ids"].tolist()[0]
|
37 |
+
|
38 |
+
text_tokens = tokenizer.convert_ids_to_tokens(input_ids)
|
39 |
+
answer_start_scores, answer_end_scores = model(**inputs)
|
40 |
+
|
41 |
+
answer_start = torch.argmax(
|
42 |
+
answer_start_scores
|
43 |
+
) # Get the most likely beginning of answer with the argmax of the score
|
44 |
+
answer_end = torch.argmax(answer_end_scores) + 1 # Get the most likely end of answer with the argmax of the score
|
45 |
+
|
46 |
+
answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(input_ids[answer_start:answer_end]))
|
47 |
+
|
48 |
+
print(f"Question: {question}")
|
49 |
+
print(f"Answer: {answer}\n")
|