日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

杜克大学_记录链接:与杜克一起玩

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 杜克大学_记录链接:与杜克一起玩 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

杜克大學

最近,我在記錄鏈接方面變得非常有趣,并遇到了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

杜克大學

總結

以上是生活随笔為你收集整理的杜克大学_记录链接:与杜克一起玩的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。