# This R environment comes with all of CRAN preinstalled, as well as many other helpful packages
# The environment is defined by the kaggle/rstats docker image: https://github.com/kaggle/docker-rstats
# For example, here's several helpful packages to load in 

library(data.table)
library(readr) # CSV file I/O, e.g. the read_csv function
library(stringdist)
test <- read_csv("../input/ItemInfo_test.csv")
testItem <- read_csv("../input/ItemPairs_test.csv")
testItem <- data.table(testItem)

test <- test[,c("itemID","lat","lon", "title", "description")]
names(test) <- c("itemID_1","lat1","lon1","title1", "description1")
test <- data.table(test)
setkey(test,"itemID_1")
setkey(testItem,"itemID_1")
testItem <- merge(testItem,test,all.x=TRUE)
names(test) <- c("itemID_2","lat2","lon2","title2", "description2")
setkey(test,"itemID_2")
setkey(testItem,"itemID_2")
testItem <- merge(testItem,test,all.x=TRUE)

#Prediction = Lat\Lon the same * (1 - title string distance) * (1 - desc string distance)
pred <- ifelse(testItem$lat1 == testItem$lat2 & testItem$lon1 == testItem$lon2,
        1, 0)
pred <- pred * (1 - stringdist(a = testItem$title1, b = testItem$title2, method = "jw"))
pred <- pred * (1 - stringdist(a = testItem$description1, b = testItem$description2, 
    method = "jw"))
pred[is.na(pred)] <- 0
summary(pred)

submit <- data.frame(id = testItem$id, 
    probability = pred)
write.csv(submit, "submit.csv", row.names = FALSE)
