Files
boc/projects/landvex/datafabrik/upplosare/__pycache__/entitetsupplosare.cpython-39.pyc
T

45 lines
6.1 KiB
Plaintext
Raw Normal View History

a
^øIjÝã@dZddlZddlZddlmZddlmZmZmZm Z ddl
m Z ddl Z
ddlmZddlmZe Gdd „d ƒƒZGd
d d ƒZd d
ZedkršeƒdS)u_
Landvex Upplösare — Entitetsupplösning
Slår ihop dubbletter till kanoniska Landvex-ID:n.
éN)ÚPath)ÚListÚDictÚTupleÚOptional)Ú dataclass)ÚTfidfVectorizer)Úcosine_similarityc@s6eZdZUeed<eed<eed<eed<eed<dS)Ú
EntitetsMatchÚ kandidat_idÚ befintlig_idÚlikhetÚ match_typÚrekommendationN)Ú__name__Ú
__module__Ú __qualname__ÚstrÚ__annotations__Úfloat©rrúZ/home/bernt/.openclaw/workspace/projects/landvex/datafabrik/upplosare/entitetsupplosare.pyr
s
r
c@eZdZdZdeeedœddZeeedœd d
Zeeed œd d
Z e
j e
j edœddZ ee
ee
edœddZeeedœddZdS)ÚEntitetsUpplosareu4Upplöser entiteter och föreslÃ¥r sammanslagningar.ç333333ë?çÍÌÌÌÌÌì?çffffffî?)ô
namn_tröskelô
spec_tröskelô
bild_tröskelcCs&||_||_||_tdddd|_dS)NZword)éér)ZanalyzerZ ngram_rangeZmin_df)rrrrZ
vectorizer)ÚselfrrrrrrÚ__init__sýzEntitetsUpplosare.__init__)Únamn1Únamn2ÚreturncCs.| ¡| ¡krdSt d| ¡| ¡¡ ¡S)u!Beräkna likhet mellan tvÃ¥ namn.gð?N)ÚlowerÚdifflibZSequenceMatcherZratio)r!r#r$rrrÚ namn_likhet+szEntitetsUpplosare.namn_likhet)Úspec1Úspec2r%c Cs”gd¢}d}d}|D]j}| |d¡}| |d¡}|r|r|d7}t|tƒrnt|tƒrn| ¡| ¡kr~|d7}q||kr|d7}q|dkr||SdS)u0Beräkna likhet mellan tekniska specifikationer.)ÚmaterialÚip_klassZbelastningsklassZ dimensionerrÚr)ÚgetÚ
isinstancerr&) r!r)r*Z nyckel_faltZ matchandeZtotalaZfaltÚv1Úv2rrrÚ spec_likhet4s  

zEntitetsUpplosare.spec_likhet)Úemb1Úemb2r%cCs(tt ||¡tj |¡tj |¡ƒS)u&Beräkna likhet mellan bildembeddings.)rÚnpÚdotZlinalgZnorm)r!r3r4rrrÚ bild_likhetJszEntitetsUpplosare.bild_likhet)ÚkandidatÚ
befintligar%c Cs:g}|D]}g}| di¡ dd¡}| di¡ dd¡}|rf|rf| ||¡}||jkrf| d|f¡| di¡} | di¡}
| rª|
rª| | |
¡} | |jkrª| d| f¡|rt dd|Dƒ¡} | dkrÐd }
n| d
krÞd }
nd }
| t| d
d¡| d
d¡| d  dd|Dƒ¡|
d¡q|j
dddd|ddS)u.Hitta potentiella dubbletter för en kandidat.ÚnamnÚsvr-ÚteknikÚspeccSsg|] }|dqS)rr©Ú.0ÚlrrrÚ
<listcomp>lóz6EntitetsUpplosare.hitta_dubbletter.<locals>.<listcomp>rÚ
sammanfogarZgranskaZseparatÚlvx_idú?z + cSsg|] }|dqS)rrr>rrrrAzrB)r r r
rrcSs|jS)N)r
©ÚxrrrÚ<lambda>rBz4EntitetsUpplosare.hitta_dubbletter.<locals>.<lambda>T)ÚkeyÚreverseNé) r.r(rÚappendr2rr5Zmeanr
ÚjoinÚsort)r!r8r9ÚmatcherZbefZlikheterr#r$Únlr)r*ZslZmedelrrrrÚhitta_dubbletterOs>