Fast Entity Linker Core
ห้องสมุดนี้ดำเนินการแบ่งส่วนแบบสอบถามและการเชื่อมโยงเอนทิตีไปยังฐานความรู้อ้างอิงเป้าหมาย (เช่นวิกิพีเดีย) ในเวอร์ชันปัจจุบันมันได้รับการปรับแต่ง +ไปยังการเชื่อมโยงเอนทิตีแบบสอบถาม (อีกวิธีหนึ่งคือชิ้นส่วนสั้น ๆ ของข้อความ) เป้าหมายหลักคือการมี linker ที่รวดเร็วมาก (<1 หรือ 2 ms/query โดยเฉลี่ยบนแล็ปท็อปมาตรฐาน) ที่ไม่ได้รับการดูแลอย่างสมบูรณ์ดังนั้นวิธีการที่ซับซ้อนมากขึ้นสามารถทำงานได้ด้วยงบประมาณเวลาที่เหมาะสม ผลข้างเคียงของสิ่งนี้คือ Datapack ที่ Linker ใช้อยู่ <3GB ทำให้เหมาะที่จะทำงานบนกริด (และทำให้รอยเท้าบนเครื่องเซิร์ฟเวอร์ต่ำมาก)
โปรดติดตั้ง Maven ก่อนที่คุณจะเรียกใช้โครงการนี้ โครงการมาพร้อมกับ pom.xml ซึ่งควรติดตั้งการพึ่งพาทั้งหมดเมื่อคุณเรียกใช้คำสั่ง mvn install
ห้องสมุดดำเนินการสืบค้นและการเชื่อมโยงเอนทิตีเอกสาร มันใช้อัลกอริทึมที่แตกต่างกันซึ่งส่งคืนคะแนนความเชื่อมั่น (~ บันทึกความน่าจะเป็น) ที่ควรเทียบเคียงกับข้อความที่มีความยาวต่างกันเพื่อให้สามารถใช้เกณฑ์ระดับโลกสำหรับการเชื่อมโยง โปรแกรมดำเนินการด้วยโครงสร้างข้อมูลสองตัวแฮชขนาดใหญ่หนึ่งคำและคำบีบอัดและเวกเตอร์เอนทิตี แฮชถูกสร้างขึ้นจากฐานข้อมูลที่บันทึก จำนวน วลีและเอนทิตีที่ร่วมกัน การนับเหล่านี้อาจมาจากแหล่งที่แตกต่างกันเช่นบันทึกข้อความและบันทึกการสืบค้น ในข้อความยึดเมื่อใดก็ตามที่มีลิงก์ไปยังหน้าเอนทิตีที่สอดคล้องกันเราจะเก็บสมอและจำนวนเอนทิตี ในบันทึกการสืบค้นเมื่อใดก็ตามที่มีการคลิกไปยังหน้าเอนทิตีเราจะอัปเดตการสอบถามและจำนวนเอนทิตี ไฟล์ Word และเอนทิตีเวกเตอร์เป็นตัวแทนการบีบอัดเวกเตอร์ที่บัญชีสำหรับบริบทที่คำ/เอนทิตีปรากฏขึ้น ห้องสมุดมีวิธีการเรียนรู้เวกเตอร์เอนทิตี สามารถสร้างเวกเตอร์ Word ได้โดยใช้เครื่องมือทั่วไปเช่น Word2vec หรือคุณสามารถนำเวกเตอร์คำที่ผ่านการฝึกอบรมมาล่วงหน้าเช่นที่มีอยู่ในโครงการ FastText ของ Facebook
ไลบรารียังมาพร้อมกับชุดเครื่องมือสองชุดที่แตกต่างกันสำหรับการสร้างแฮชและไฟล์เวกเตอร์คำ
หากคุณใช้ห้องสมุดนี้โปรดอ้างอิงเอกสารต่อไปนี้:
@inproceedings{Blanco:WSDM2015,
Address = {New York, NY, USA},
Author = {Blanco, Roi and Ottaviano, Giuseppe and Meij, Edgar},
Booktitle = {Proceedings of the Eight ACM International Conference on Web Search and Data Mining},
Location = {Shanghai, China},
Numpages = {10},
Publisher = {ACM},
Series = {WSDM 15},
Title = {Fast and Space-Efficient Entity Linking in Queries},
Year = {2015}
}
@inproceedings{Pappu:WSDM2017,
Address = {New York, NY, USA},
Author = {Pappu, Aasish, and Blanco, Roi, and Mehdad, Yashar and Stent, Amanda, and Thadani, Kapil},
Booktitle = {Proceedings of the Tenth ACM International Conference on Web Search and Data Mining},
Location = {Cambridge, UK},
Numpages = {10},
Publisher = {ACM},
Series = {WSDM 17},
Title = {Lightweight Multilingual Entity Extraction and Linking},
Year = {2017}
}
มีการจัดอันดับ/linkers ที่แตกต่างกันจำนวนมากที่ใช้แบบจำลองแนวคิดที่แตกต่างกัน คำอธิบายโดยรวมของอัลกอริทึมพร้อมรายละเอียดการใช้งานบางอย่างอยู่ที่:
การเชื่อมโยงเอนทิตีที่รวดเร็วและมีประสิทธิภาพสำหรับการสืบค้น
คลาสหลักที่จะใช้คือ com.yahoo.semsearch.fastlinking.FastEntityLinker
คลาสสามารถเรียกได้ด้วย --help เพื่อแสดงรายการตัวเลือกที่มีอยู่ พวกเขาให้การเชื่อมโยงแบบโต้ตอบผ่าน stdin (แก้ไขรหัสหรือขยายคลาสหากคุณต้องการรูปแบบผลลัพธ์ที่กำหนดเอง)
ก่อนอื่นดาวน์โหลดชุดข้อมูลจาก WebScope ตามลิงค์ที่ให้ไว้ด้านล่าง
ตัวอย่างการใช้งานโทร:
mvn exec:java -Dexec.mainClass=com.yahoo.semsearch.fastlinking.FastEntityLinker
-Dexec.args= " en/english-nov15.hash " คลาส CoherentEntityLinker ใช้เอนทิตีและรายการที่ดีที่สุดของเอนทิตี-ลิงก์สำหรับแต่ละเอนทิตีที่กล่าวถึงเป็นอินพุต มันสร้างตาข่ายจากรายการที่ดีที่สุดและเรียกใช้อัลกอริทึมไปข้างหน้ากลับ
อัลกอริทึมที่เชื่อมโยงกันมากขึ้นอยู่ระหว่างการทดลอง พวกเขาจะถูกเพิ่มในรหัสเวอร์ชันอนาคต
mvn clean compile exec:java
-Dexec.mainClass=com.yahoo.semsearch.fastlinking.CoherentEntityLinkerWrapper
-Dexec.args= " en/enwiki.wiki2vec.d300.compressed en/english-nov15.hash test.txt "
-Dexec.classpathScope=compileคุณสามารถรวมไฟล์การแมปในอาร์กิวเมนต์เอนทิตี Linker (ด้านล่าง) ที่แมปหมวดหมู่เอนทิตีอินทิกรัลกับหมวดหมู่เอนทิตีที่มนุษย์อ่านได้
คำสั่งต่อไปนี้จะเรียกใช้ linker บนตาราง Hadoop:
hadoop jar FEL-0.1.0-fat.jar
com.yahoo.semsearch.fastlinking.utils.RunFELOntheGrid
-Dmapred.map.tasks=100
-Dmapreduce.map.java.opts=-Xmx3g
-Dmapreduce.map.memory.mb=3072
-Dmapred.job.queue.name=adhoc
-files en/english-nov15.hash#hash, src/main/bash/id-type.tsv#mapping
< inputfile >
< outputfile >ชั้นเรียนอ่านไฟล์ที่มีแบบสอบถามหนึ่งข้อต่อบรรทัด - มันแยกและใช้องค์ประกอบแรก รูปแบบผลลัพธ์คือ:
entity_type <TAB> query <TAB> modifier <TAB> entity_id
ที่ไหน
entity_type ได้รับใน datapackquery เป็นแบบสอบถามดั้งเดิมmodifier เป็นสตริงการสืบค้นเมื่อมี remove เอนทิตีนามแฝงentity_id เป็นเอนทิตีที่ดึงมาโดยทั่วไปคุณควรพึ่งพาเกณฑ์และอาจยึดติดกับการดึงเอนทิตี 1 ตัว แต่ขึ้นอยู่กับว่าคุณจะใช้มันอย่างไร
แพ็คเกจนี้ยังให้รหัสกับ
เพิ่มเติมเกี่ยวกับสิ่งนี้สามารถพบได้ในแพ็คเกจ W2V
เครื่องมือใช้ประโยชน์จากฐานข้อมูลที่เก็บนับและนามแฝง (กล่าวถึง) ของเอนทิตีจากแหล่งต่าง ๆ ในขั้นต้นเราใช้บันทึกข้อความและบันทึกการสืบค้น ต่อไปนี้อธิบายวิธีการขุดและคำนวณข้อความสมอจากการถ่ายโอนข้อมูลวิกิพีเดียสาธารณะโดยใช้คลัสเตอร์ Hadoop (หรือถ้าไม่มีหนึ่งคุณสามารถใช้ Hadoop ในเครื่องเดียว) สิ่งนี้ขึ้นอยู่กับรหัสจากชุดเครื่องมือ Cloud9
เพิ่มเติมเกี่ยวกับเรื่องนี้สามารถพบได้ในแพ็คเกจ IO
#### การสร้างคุณสมบัติเอนทิตีกึ่งการดูด
DataPack จะมีสองไฟล์: ไฟล์ที่มีจำนวนต่อหนึ่งและอีกไฟล์หนึ่งพร้อมกับเอนทิตีเพื่อทำแผนที่ ID จากนั้นคุณสามารถแฮชได้โดยใช้:
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > รุ่นที่ผ่านการฝึกอบรมมาก่อนมีให้เพื่อดำเนินการเชื่อมโยงเอนทิตีกับชุดเครื่องมือและมีให้ผ่าน Yahoo! โปรแกรม WebScope เพื่อวัตถุประสงค์ในการวิจัย โมเดลเหล่านี้ได้รับการฝึกฝนเกี่ยวกับ Wikipedia และแจกจ่ายโดยใช้ Creative Commons โดยใบอนุญาต SA 4.0 (ดู models_license)
แฮชภาษาอังกฤษได้รับการฝึกฝนตั้งแต่เดือนพฤศจิกายน 2558 วิกิพีเดีย
Engeddings Entity Entity
แฮชสเปนได้รับการฝึกฝนตั้งแต่เดือนตุลาคม 2558 วิกิพีเดีย
การฝังเอนทิตีภาษาสเปน
แฮชจีนได้รับการฝึกฝนตั้งแต่เดือนธันวาคม 2558 วิกิพีเดีย
การฝังศพของจีน
Roi Blanco, Aasish Pappu