File size: 2,387 Bytes
72cc589
 
 
 
 
 
10bf6a9
 
 
 
 
 
 
 
 
72cc589
 
 
10bf6a9
 
72cc589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
import torch

tokenizer = AutoTokenizer.from_pretrained("lserinol/bert-turkish-question-answering")
model = AutoModelForQuestionAnswering.from_pretrained("lserinol/bert-turkish-question-answering")
text = r"""
Sanığın iş yerinde önceki tarihte yapılan aramada ele geçirilen bandrolsüz materyallerin tümüne el konulduğu, 
sonraki tarihte yapılan aramada sanığın suç işleme kararını yenileyerek iş yerinde satmak amacıyla bandrolsüz 
materyalleri temin ederek iş yerinde yeniden satışa hazır vaziyette bulundurduğu iddia edilse de; önceki tarihli 
arama tutanağı ve dosya kapsamına göre sanığın sadece iş yerinde arama yapılarak suça konu materyallerin ele geçirildiği, 
sanığa ait suç eşyasını saklaması için iş yerinden bağımsız bir depo bulunup bulunmadığına dair tespit yapılmadığı gibi 
sanığın ikametinde veya mevcut olması hâlinde depo vb. alanlarda herhangi bir arama işlemi yapılmadığından önceki arama 
zamanında bu materyallerin kalmış olabileceği, sanığın aynı suç işleme kararı altında ikinci suçu işlediğinin kanıtlar herhangi 
bir delilin mevcut olmadığı hukuki kesinti oluşmadan bir suç işleme kararıyla, aynı mağdura karşı ve değişik zamanlarda sanığın 
5846 sayılı Kanun’un 81/4. maddesinde düzenlenen suçu işlediğinden sanık hakkında zincirleme suç hükümlerinin uygulanması gerektiği gözetilmelidir.
"""

questions = [
    "Sanığın iş yerinde aramada ne ele geçirilmiştir?",
    "Sanığın suçu işlediğine sair kanıtlar bulunmuş mudur?",
]

for question in questions:
    inputs = tokenizer(question, text, add_special_tokens=True, return_tensors="pt")
    input_ids = inputs["input_ids"].tolist()[0]

    text_tokens = tokenizer.convert_ids_to_tokens(input_ids)
    answer_start_scores, answer_end_scores = model(**inputs)

    answer_start = torch.argmax(
        answer_start_scores
    )  # Get the most likely beginning of answer with the argmax of the score
    answer_end = torch.argmax(answer_end_scores) + 1  # Get the most likely end of answer with the argmax of the score

    answer = tokenizer.convert_tokens_to_string(tokenizer.convert_ids_to_tokens(input_ids[answer_start:answer_end]))

    print(f"Question: {question}")
    print(f"Answer: {answer}\n")