# NOT RUN {
library(RDFTensor)
data('umls_tnsr')
ntnsr=umls_tnsr
#Calculate Factorization
tt0=proc.time()
tt=rescal(ntnsr$X,rnk=10,ainit='nvecs',verbose=2,lambdaA=0,epsilon=1e-4,lambdaR=0)
ttq1=proc.time()
A=tt$A
R=tt$R
# reconstruct second predicate (slice) in tensor
p=2
prd_cnt=rep(0,length(ntnsr$X))#Zero counts will not be reconstructed
prd_cnt[p]=sum(ntnsr$X[[p]])
tmpRes=inv_rescal_sf_prd_chnkgrp(R,A,cnt_prd=prd_cnt,ChnkLen=50,grpLen=6,OS_WIN=TRUE,ncores=1,
chTrpCntTol=1000, TotalChnkSize=1e4)
ijk=tmpRes[[1]]
ix=which(ntnsr$X[[p]]==1,arr.ind=TRUE)
oijk=cbind(ix[,1],p,ix[,2])#Original
flag= paste(oijk[,1],oijk[,2],oijk[,3]) %in% paste(ijk[,1],ijk[,2],ijk[,3])
print(table( flag))#True positives
pTrp=cbind(ntnsr$SO[ijk[,1]],ntnsr$P[ijk[,2]],ntnsr$SO[ijk[,3]])
# }
# NOT RUN {
# }
Run the code above in your browser using DataCamp Workspace