Inti Linker Entitas Cepat
Perpustakaan ini melakukan segmentasi kueri dan entitas yang menghubungkan ke basis pengetahuan referensi target (yaitu, Wikipedia). Dalam versinya saat ini disesuaikan +ke arah entitas kueri yang menghubungkan (sebagai alternatif, fragmen teks pendek). Tujuan utamanya adalah memiliki penghubung yang sangat cepat (<1 atau 2 ms/kueri rata -rata pada laptop standar) yang sepenuhnya tidak diawasi, sehingga pendekatan yang lebih canggih dapat bekerja di atasnya dengan anggaran waktu yang layak tersedia. Efek samping dari ini adalah bahwa datapack yang digunakan oleh linker menempati <3GB sehingga cocok untuk berjalan di kisi (dan membuat jejak pada mesin server sangat rendah).
Harap instal Maven sebelum Anda menjalankan proyek ini. Proyek ini dilengkapi dengan pom.xml yang harus menginstal semua dependensi saat Anda menjalankan perintah mvn install .
Perpustakaan melakukan tautan kueri dan dokumen. Ini mengimplementasikan algoritma yang berbeda yang mengembalikan skor kepercayaan (~ log kemungkinan) yang harus (kurang lebih) sebanding dengan bagian teks dengan panjang yang berbeda sehingga orang dapat menggunakan ambang global untuk menghubungkan. Program ini beroperasi dengan dua struktur data, satu hash besar dan kata -kata terkompresi dan vektor entitas. Hash dihasilkan dari datapack yang mencatat jumlah frasa dan entitas yang bersatu bersama. Hitungan ini mungkin berasal dari sumber yang berbeda, misalnya jangkar teks dan log kueri. Dalam teks jangkar, setiap kali ada tautan ke halaman entitas yang sesuai, kami akan menyimpan jangkar dan entitas yang dihitung. Dalam log kueri setiap kali ada klik ke halaman entitas, kami akan memperbarui jumlah kueri dan entitas. File vektor kata dan entitas adalah representasi vektor terkompresi yang menjelaskan konteks di mana kata/entitas muncul. Perpustakaan menyediakan cara untuk mempelajari vektor entitas. Vektor Word dapat dihasilkan menggunakan alat umum seperti Word2Vec, atau Anda dapat menggunakan kembali vektor kata pra-terlatih seperti yang tersedia dalam proyek FastText Facebook.
Perpustakaan juga dilengkapi dengan dua set alat yang berbeda untuk menghasilkan hash dan file kata vektor.
Jika Anda menggunakan perpustakaan ini, silakan mengutip makalah berikut:
@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}
}
Ada sejumlah peringkat/penghubung yang berbeda yang menggunakan model konseptual yang berbeda. Deskripsi keseluruhan algoritma dengan beberapa detail implementasi adalah di:
Entitas Efisien Cepat dan Ruang Menghubungkan untuk Kueri
Kelas utama untuk digunakan adalah com.yahoo.semsearch.fastlinking.FastEntityLinker
Kelas dapat dipanggil dengan --help untuk mendaftar opsi yang tersedia. Mereka menyediakan tautan interaktif melalui stdin (edit kode atau memperluas kelas jika Anda memerlukan format output khusus).
Pertama -tama unduh dataset dari Webscope mengikuti tautan yang disediakan di bawah ini.
Contoh Panggilan Penggunaan:
mvn exec:java -Dexec.mainClass=com.yahoo.semsearch.fastlinking.FastEntityLinker
-Dexec.args= " en/english-nov15.hash " Kelas CoherentEntityLinker mengambil entitas-pengusiran dan daftar n-west entitas-link untuk setiap entitas yang disebutkan sebagai input. Ini membangun kisi dari daftar N-terbaik dan menjalankan algoritma ke depan.
Algoritma yang lebih koherensi sedang dalam eksperimen. Mereka akan ditambahkan dalam versi kode mendatang.
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=compileAnda dapat menyertakan file pemetaan dalam argumen entitas linker (di bawah) yang memetakan kategori entitas integral ke kategori entitas yang dapat dibaca manusia.
Perintah berikut akan menjalankan linker pada grid 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 >Kelas membaca file yang memiliki satu kueri per baris - itu terbagi dan mengambil elemen pertama. Format output adalah:
entity_type <TAB> query <TAB> modifier <TAB> entity_id
Di mana
entity_type diberikan dalam datapackquery adalah kueri aslimodifier adalah string kueri saat alias entitas removeentity_id adalah entitas yang diambilSecara umum Anda harus mengandalkan ambang batas dan mungkin berpegang teguh pada entitas teratas yang diambil tetapi ini tergantung pada bagaimana Anda akan menggunakannya.
Paket ini juga menyediakan kode untuk
Lebih lanjut tentang ini dapat ditemukan dalam paket W2V.
Alat ini memanfaatkan datapack yang menyimpan jumlah dan alias (menyebutkan) entitas dari berbagai sumber. Awalnya, kami menggunakan jangkar teks dan log kueri. Berikut ini menjelaskan cara menambang dan menghitung teks jangkar dari tempat pembuangan wikipedia publik menggunakan kluster hadoop (atau jika tidak ada satu, Anda dapat menggunakan Hadoop dalam satu mesin). Ini didasarkan pada kode dari toolkit cloud9.
Lebih lanjut tentang ini dapat ditemukan di paket IO.
#### Membuat hash fitur entitas semu
DataPack akan berisi dua file: satu dengan jumlah per-entitas dan satu dengan entitas untuk pemetaan ID. Lalu, Anda bisa menghindarinya menggunakan:
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > Model pra-terlatih berikut disediakan untuk melakukan entitas yang menghubungkan dengan toolkit dan tersedia melalui Yahoo! Program Webscope untuk tujuan penelitian. Model -model ini dilatih di Wikipedia dan didistribusikan menggunakan Lisensi Creative Commons oleh SA 4.0 (lihat Models_license).
Hash Bahasa Inggris Dilatih dari Wikipedia November 2015
Embeddings Entitas Bahasa Inggris
Hash Spanyol yang dilatih dari Wikipedia Oktober 2015
Embeddings entitas Spanyol
Hash Cina yang dilatih dari Desember 2015 Wikipedia
Embeddings entitas Cina
Roi blanco, aasish pappu