This is a DeBERTa(V2) model pretrained on Thai Wikipedia texts for dependency-parsing (head-detection on Universal Dependencies) as question-answering, derived from
deberta-base-thai
. Use [MASK] inside
context
to avoid ambiguity when specifying a multiple-used word as
question
.
How to Use
from transformers import AutoTokenizer,AutoModelForQuestionAnswering,QuestionAnsweringPipeline
tokenizer=AutoTokenizer.from_pretrained("KoichiYasuoka/deberta-base-thai-ud-head")
model=AutoModelForQuestionAnswering.from_pretrained("KoichiYasuoka/deberta-base-thai-ud-head")
qap=QuestionAnsweringPipeline(tokenizer=tokenizer,model=model,align_to_words=False)
print(qap(question="กว่า",context="หลายหัวดีกว่าหัวเดียว"))
classTransformersUD(object):
def__init__(self,bert):
import os
from transformers import (AutoTokenizer,AutoModelForQuestionAnswering,
AutoModelForTokenClassification,AutoConfig,TokenClassificationPipeline)
self.tokenizer=AutoTokenizer.from_pretrained(bert)
self.model=AutoModelForQuestionAnswering.from_pretrained(bert)
x=AutoModelForTokenClassification.from_pretrained
if os.path.isdir(bert):
d,t=x(os.path.join(bert,"deprel")),x(os.path.join(bert,"tagger"))
else:
from transformers.utils import cached_file
c=AutoConfig.from_pretrained(cached_file(bert,"deprel/config.json"))
d=x(cached_file(bert,"deprel/pytorch_model.bin"),config=c)
s=AutoConfig.from_pretrained(cached_file(bert,"tagger/config.json"))
t=x(cached_file(bert,"tagger/pytorch_model.bin"),config=s)
self.deprel=TokenClassificationPipeline(model=d,tokenizer=self.tokenizer,
aggregation_strategy="simple")
self.tagger=TokenClassificationPipeline(model=t,tokenizer=self.tokenizer)
def__call__(self,text):
import numpy,torch,ufal.chu_liu_edmonds
w=[(t["start"],t["end"],t["entity_group"]) for t in self.deprel(text)]
z,n={t["start"]:t["entity"].split("|") for t in self.tagger(text)},len(w)
r,m=[text[s:e] for s,e,p in w],numpy.full((n+1,n+1),numpy.nan)
v,c=self.tokenizer(r,add_special_tokens=False)["input_ids"],[]
for i,t inenumerate(v):
q=[self.tokenizer.cls_token_id]+t+[self.tokenizer.sep_token_id]
c.append([q]+v[0:i]+[[self.tokenizer.mask_token_id]]+v[i+1:]+[[q[-1]]])
b=[[len(sum(x[0:j+1],[])) for j inrange(len(x))] for x in c]
with torch.no_grad():
d=self.model(input_ids=torch.tensor([sum(x,[]) for x in c]),
token_type_ids=torch.tensor([[0]*x[0]+[1]*(x[-1]-x[0]) for x in b]))
s,e=d.start_logits.tolist(),d.end_logits.tolist()
for i inrange(n):
for j inrange(n):
m[i+1,0if i==j else j+1]=s[i][b[i][j]]+e[i][b[i][j+1]-1]
h=ufal.chu_liu_edmonds.chu_liu_edmonds(m)[0]
if [0for i in h if i==0]!=[0]:
i=([p for s,e,p in w]+["root"]).index("root")
j=i+1if i<n else numpy.nanargmax(m[:,0])
m[0:j,0]=m[j+1:,0]=numpy.nan
h=ufal.chu_liu_edmonds.chu_liu_edmonds(m)[0]
u="# text = "+text.replace("\n"," ")+"\n"for i,(s,e,p) inenumerate(w,1):
p="root"if h[i]==0else"dep"if p=="root"else p
u+="\t".join([str(i),r[i-1],"_",z[s][0][2:],"_","|".join(z[s][1:]),
str(h[i]),p,"_","_"if i<n and e<w[i][0] else"SpaceAfter=No"])+"\n"return u+"\n"
nlp=TransformersUD("KoichiYasuoka/deberta-base-thai-ud-head")
print(nlp("หลายหัวดีกว่าหัวเดียว"))
Runs of KoichiYasuoka deberta-base-thai-ud-head on huggingface.co
102
Total runs
0
24-hour runs
-2
3-day runs
-43
7-day runs
19
30-day runs
More Information About deberta-base-thai-ud-head huggingface.co Model
More deberta-base-thai-ud-head license Visit here:
deberta-base-thai-ud-head huggingface.co is an AI model on huggingface.co that provides deberta-base-thai-ud-head's model effect (), which can be used instantly with this KoichiYasuoka deberta-base-thai-ud-head model. huggingface.co supports a free trial of the deberta-base-thai-ud-head model, and also provides paid use of the deberta-base-thai-ud-head. Support call deberta-base-thai-ud-head model through api, including Node.js, Python, http.
deberta-base-thai-ud-head huggingface.co is an online trial and call api platform, which integrates deberta-base-thai-ud-head's modeling effects, including api services, and provides a free online trial of deberta-base-thai-ud-head, you can try deberta-base-thai-ud-head online for free by clicking the link below.
KoichiYasuoka deberta-base-thai-ud-head online free url in huggingface.co:
deberta-base-thai-ud-head is an open source model from GitHub that offers a free installation service, and any user can find deberta-base-thai-ud-head on GitHub to install. At the same time, huggingface.co provides the effect of deberta-base-thai-ud-head install, users can directly use deberta-base-thai-ud-head installed effect in huggingface.co for debugging and trial. It also supports api for free installation.
deberta-base-thai-ud-head install url in huggingface.co: