Views
No views yet
1from fugashi import Tagger
2
3from transformers import (
4 pipeline,
5 XLNetLMHeadModel,
6 XLNetTokenizer
7)
8
9class XLNet():
10 def __init__(self):
11 self.m = Tagger('-Owakati')
12 self.gen_model = XLNetLMHeadModel.from_pretrained("hajime9652/xlnet-japanese")
13 self.gen_tokenizer = XLNetTokenizer.from_pretrained("hajime9652/xlnet-japanese")
14
15 def generate(self, prompt="福岡のご飯は美味しい。コンパクトで暮らしやすい街。"):
16 prompt = self.m.parse(prompt)
17 inputs = self.gen_tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
18 prompt_length = len(self.gen_tokenizer.decode(inputs[0], skip_special_tokens=True, clean_up_tokenization_spaces=True))
19 outputs = self.gen_model.generate(inputs, max_length=200, do_sample=True, top_p=0.95, top_k=60)
20 generated = prompt + self.gen_tokenizer.decode(outputs[0])[prompt_length:]
21 return generated