记录链接:与杜克一起玩

最近,我在记录链接方面变得非常有趣,并遇到了Duke项目,该项目提供了一些工具来帮助解决此问题。 我以为可以尝试一下。

进行记录链接时的典型问题是,我们有两个来自不同数据集的记录,它们代表同一实体,但是没有可用于将它们合并在一起的公共键。 因此,我们需要提出一种启发方法,使我们能够这样做。

杜克大学(Duke)有一些实例表明了它的实际作用,我决定与联系国一道去。 在这里,我们有来自Dbpedia和Mondial数据库的国家,我们希望将它们链接在一起。

我们需要做的第一件事是构建项目:

export JAVA_HOME=`/usr/libexec/java_home`
mvn clean package -DskipTests

在撰写本文时,这将使zip失败,其中包含我们需要的所有内容,位于duke-dist / target / 。 让我们打开包装:

unzip duke-dist/target/duke-dist-1.3-SNAPSHOT-bin.zip

接下来,我们需要下载数据文件和Duke配置文件:

wget https://raw.githubusercontent.com/larsga/Duke/master/doc/example-data/countries-dbpedia.csv
wget https://raw.githubusercontent.com/larsga/Duke/master/doc/example-data/countries.xml
wget https://raw.githubusercontent.com/larsga/Duke/master/doc/example-data/countries-mondial.csv
wget https://raw.githubusercontent.com/larsga/Duke/master/doc/example-data/countries-test.txt

现在我们准备好尝试了:

java -cp "duke-dist-1.3-SNAPSHOT/lib/*" no.priv.garshol.duke.Duke --testfile=countries-test.txt --testdebug --showmatches countries.xml...NO MATCH FOR:
ID: '7706', NAME: 'guatemala', AREA: '108890', CAPITAL: 'guatemala city',MATCH 0.9825124555160142
ID: '10052', NAME: 'pitcairn islands', AREA: '47', CAPITAL: 'adamstown',
ID: 'http://dbpedia.org/resource/Pitcairn_Islands', NAME: 'pitcairn islands', AREA: '47', CAPITAL: 'adamstown',Correct links found: 200 / 218 (91.7%)
Wrong links found: 0 / 24 (0.0%)
Unknown links found: 0
Percent of links correct 100.0%, wrong 0.0%, unknown 0.0%
Records with no link: 18
Precision 100.0%, recall 91.74311926605505%, f-number 0.9569377990430622

我们可以查看countries.xml ,看看如何计算记录之间的相似度:

<schema><threshold>0.7</threshold>
...<property><name>NAME</name><comparator>no.priv.garshol.duke.comparators.Levenshtein</comparator><low>0.09</low><high>0.93</high></property><property><name>AREA</name><comparator>no.priv.garshol.duke.comparators.NumericComparator</comparator><low>0.04</low><high>0.73</high></property><property><name>CAPITAL</name><comparator>no.priv.garshol.duke.comparators.Levenshtein</comparator><low>0.12</low><high>0.61</high></property></schema>

因此,我们通过计算首都和国家的Levenshtein距离(即将一个单词转换为另一个单词所需的最小单字符编辑次数)来计算出首府城市和国家/地区的相似性

如果其中一个数据集的拼写有误或有差异,这将非常有效。 但是,我很好奇,如果该国有两个完全不同的名称,例如科特迪瓦有时被称为象牙海岸,那会发生什么。 让我们尝试在以下文件之一中更改国家/地区名称:

"19147","Cote dIvoire","Yamoussoukro","322460"
java -cp "duke-dist-1.3-SNAPSHOT/lib/*" no.priv.garshol.duke.Duke --testfile=countries-test.txt --testdebug --showmatches countries.xmlNO MATCH FOR:
ID: '19147', NAME: 'ivory coast', AREA: '322460', CAPITAL: 'yamoussoukro',

我还通过曼联对托特纳姆热刺的BBC和ESPN比赛报告来进行了尝试-BBC按姓氏引用球员,而ESPN有其全名。

当我使用Levenshtein比较器将全名与姓氏进行比较时,没有您所期望的匹配。 我必须将ESPN名称分解为名字和姓氏才能使链接正常工作。

同样,当我将球队名称更改为“曼联”而不是“曼联”和“热刺”而不是“托特纳姆热刺”时,两者也不起作用。

我想我可能需要编写一个特定于域的比较器,但是我也很好奇是否可以提出一些训练示例,然后训练一个模型来检测什么使两条记录相似。 它的确定性较差,但可能更健壮。

翻译自: https://www.javacodegeeks.com/2015/08/record-linkage-playing-around-with-duke.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358466.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10修改服务器地址,win10 修改服务器地址

win10 修改服务器地址 内容精选换一换通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析。内网DNS不影响ECS服务器对公网域名的访问。同时&#xff0c;还可以不经Internet&#xff0c;直接通过内网DNS访问其他云上服务内部地址&#xff0c;如OBS、SMN等&#xff0…

enmo_day_06

RAC Data Guard (DG) EMC NAS SAN 双活 数据完整性 约束 &#xff1a; 主键 &#xff1a; 非空 且 唯一 非空 &#xff1a; 唯一 &#xff1a; 外键 &#xff1a; 检查 &#xff1a; DISABLE, ENABLE VALIDATE, NOVALIDATE 约束条件检查 执行语句时 &#xff08;对于非延迟约束…

centos8如何安装yum源(详细步骤)

进入目录 cd /etc/yum.repos.d //进入/etc/yum.repos.d目录查看并删除/etc/yum.repos.d目录下所有的配置文件 ll //查看当前目录的所有文件 rm -rf ./* //删除当前的所有文件下载centos8的镜像源 wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors…

前端开发常见的浏览器兼容性问题?

参考帖子1&#xff1a;https://www.cnblogs.com/angel648/p/11392262.html 参考帖子2&#xff1a;https://www.cnblogs.com/wxf-h/p/10513342.html

2048游戏详解

由于最近在百度IFE看到有2048任务&#xff0c;所以昨天兴趣一来自己也做了一个。大概花了五个小时完成&#xff0c;不过不足之处是操作时没有滑动效果。昨晚新增了手机版本&#xff0c;流畅度还可以&#xff0c;不过由于没有滑动&#xff0c;游戏过程显得很突兀啊&#xff0c;且…

百度搜索引擎服务器性能,百度搜索引擎的特点

1. 基于字词结合的信息处理方式。巧妙解决了中文信息的理解问题&#xff0c;极大地提高了搜索的准确性和查全率。2. 支持主流的中文编码标准。包括GBK(汉字内码扩展规范)、GB2312(简体)、BIG5(繁体)&#xff0c;并且能够在不同的编码之间转换。3. 智能相关度算法。采用了基于内…

vulhub安装教程

0x00 vulhub介绍 Vulhub是一个基于docker和docker-compose的漏洞环境集合&#xff0c;进入对应目录并执行一条语句即可启动一个全新的漏洞环境&#xff0c;让漏洞复现变得更加简单&#xff0c;让安全研究者更加专注于漏洞原理本身。 大哥你等会&#xff0c;你刚才讲的docker我听…

前后端分离如何解决跨域的问题?

参考帖子&#xff1a;https://blog.csdn.net/cuixiaogang110/article/details/81948173?utm_mediumdistribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromMa…

java 并发锁_Java并发教程–重入锁

java 并发锁Java的synced关键字是一个很棒的工具–它使我们可以通过一种简单可靠的方式来同步对关键部分的访问&#xff0c;而且也不难理解。 但是有时我们需要对同步进行更多控制。 我们要么需要分别控制访问类型&#xff08;读取和写入&#xff09;&#xff0c;要么使用起来很…

sublime主题安装

网上发现与之前最相近的两款皮肤分别是Theme – Soda与Flatland。这里就记录一下安装与使用方法。 方法一&#xff1a;手动下载安装&#xff1a; 1.下载安装SublimeText2&#xff0c;这个我就不说了。网上的版本有多个&#xff0c;可以自行选择。也可下载使用最新的SublimeText…

WebCrack:网站后台弱口令批量检测工具

经过这么长时间的测试终于算是可以上线了&#xff0c;写篇文章跟大家分享一下自己的开发思路吧 >注&#xff1a;本工具借鉴吸收了TideSec的web_pwd_common_crack很多优秀的思路&#xff0c;在此基础上增加了很多拓展功能使其更加强大&#xff0c;在这里给TideSec的大佬点个赞…

前端渲染与后端渲染之间的区别?

前端没兴起之前,网页的展示大都是后端渲染,也就是服务器渲染。 随着前端行业的发展,前端的工作越来越精细。前后端开始分离,前端只关注ui渲染。后端只提供数据和进行逻辑处理。 简单的解释,前端写好html模板,让后端直接填数据,这就是后端渲染。 前端渲染是,通过ajax请求…

比较中的Commons VFS,SSHJ和JSch

几周前&#xff0c;我评估了一些用于Java的SSH库。 对它们的主要要求是在远程计算机上进行文件传输和文件操作。 因此&#xff0c;它存在一个基于SSH&#xff0c;SSH文件传输协议&#xff08;或SFTP&#xff09;的网络协议。 因此&#xff0c;我需要一个支持SFTP的SSH库。 一项…

Android自定义xml解析

<?xml version"1.0" encoding"utf-8"?> <resources><Users><User name"jason" age"12" location"Beijing"/><User name"peter" age"18" location"Shanghai"/&g…

前端常见的安全性问题有哪些?

安全性 前端安全问题有哪些? XSS 跨站请求攻击XSRF 跨站请求伪造上边这两个问题,前端也只是辅助,主要还是靠后端XSS原理 在博客里可以写文章,同时偷偷插入一段<script>代码。发布博客,有人查看博客内容打开博客时,就会执行插入的js攻击代码在攻击代码中,获取cook…

(fofa信息收集骚操作)windows查看文件的md5值

1、winr 输入cmd进入控制界面 2、certutil -hashfile XXXX md5(XXXX为绝对路径) Linux下查看文件md5值&#xff1a; 进入文件目录&#xff0c;使用md5sum加文件名&#xff0c;例如md5sum test.txt 像fofa的语法里有可以查找js的md5值&#xff0c;这样就可以收集到更多信息了&…

教你读懂Ajax的工作原理

Ajax的工作原理 1、ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth、google suggest以及gmail等对ajax技术的广泛应用,催生了ajax的流行。而这也让微软感到无比的尴尬,因为早在97年,微软便已经发明了ajax中的关键技术,并且在99年I…

二叉树性质及遍历

一、二叉树的定义 树的每个结点至多只有二棵子树(不存在度大于2的结点)&#xff0c;树的子树有左右之分&#xff0c;次序不能颠倒。 二、二叉树的性质 (1) 在非空二叉树中&#xff0c;第i层的结点总数不超过, i>1&#xff1b;(2) 深度为h的二叉树最多有个结点(h>1)&#…

利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单

目标环境&#xff1a; 比如&#xff0c;目标存在一个上传的逻辑&#xff1a; <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht])) {exit(bad file);}mo…

将数据压缩到数据结构中

这个故事是关于我们最近在Plumbr进行的容量优化任务。 一切始于将无害的要求添加到现有组合中。 如您所知&#xff0c;Plumbr监视解决方案作为连接到服务器的Java代理分发。 只需少量添加即可跟踪一段时间内所有已连接的代理&#xff0c;以便可以实时回答以下问题&#xff1a;…