做网站没装数据库,餐饮加盟培训网站建设,外国网站的浏览器下载,国内网站设计作品欣赏杜克大学最近#xff0c;我在记录链接方面变得非常有趣#xff0c;并遇到了Duke项目#xff0c;该项目提供了一些工具来帮助解决此问题。 我以为我会尝试一下。 进行记录链接时的典型问题是#xff0c;我们有两个来自不同数据集的记录#xff0c;它们代表同一实体#x… 杜克大学 最近我在记录链接方面变得非常有趣并遇到了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 --testfilecountries-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 看看如何计算记录之间的相似度 schemathreshold0.7/threshold
...propertynameNAME/namecomparatorno.priv.garshol.duke.comparators.Levenshtein/comparatorlow0.09/lowhigh0.93/high/propertypropertynameAREA/namecomparatorno.priv.garshol.duke.comparators.NumericComparator/comparatorlow0.04/lowhigh0.73/high/propertypropertynameCAPITAL/namecomparatorno.priv.garshol.duke.comparators.Levenshtein/comparatorlow0.12/lowhigh0.61/high/property/schema 因此我们通过计算首都和国家/地区的Levenshtein距离即将一个单词转换为另一个单词所需的最小单字符编辑次数来计算出相似性 如果其中一个数据集的拼写有误或有差异这将非常有效。 但是我很好奇如果该国有两个完全不同的名称例如科特迪瓦有时被称为象牙海岸那会发生什么。 让我们尝试在以下文件之一中更改国家/地区名称 19147,Cote dIvoire,Yamoussoukro,322460java -cp duke-dist-1.3-SNAPSHOT/lib/* no.priv.garshol.duke.Duke --testfilecountries-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杜克大学