Núcleo de enlazador de entidad rápida
Esta biblioteca realiza la segmentación de consultas y la entidad vinculada a una base de conocimiento de referencia objetivo (es decir, Wikipedia). En su versión actual se adapta +para la vinculación de la entidad de consulta (alternativamente, fragmentos cortos de texto). El objetivo principal era tener un enlazador extremadamente rápido (<1 o 2 ms/consulta en promedio en una computadora portátil estándar) que no está supervisado, de modo que los enfoques más sofisticados pueden funcionar además con un presupuesto de tiempo decente disponible. Un efecto secundario de esto es que el DataPack utilizado por el enlazador ocupa <3GB, lo que hace que sea adecuado para ejecutarse en la cuadrícula (y hacer que la huella en las máquinas de servidor sea muy baja).
Instale Maven antes de ejecutar este proyecto. El proyecto viene con un pom.xml que debe instalar todas las dependencias cuando ejecuta la mvn install .
La biblioteca realiza un enlace de consulta y entidad de documentos. Implementa diferentes algoritmos que devuelven una puntuación de confianza (~ probabilidad de registro) que debería ser (más o menos) comparable en piezas de texto de diferente longitud para que uno pueda usar un umbral global para vincular. El programa opera con dos datos de datos, un hash grande y vectores comprimidos de palabras y entidades. El hash se genera a partir de un Datapack que registra los recuentos de frases y entidades que coexisten juntas. Estos recuentos pueden provenir de diferentes fuentes, por ejemplo, texto de anclaje y registros de consultas. En el texto de anclaje, siempre que haya un enlace a una página de entidad correspondiente, almacenaríamos el ancla y la entidad. En un registro de consulta siempre que haya un clic en una página de entidad, actualizaríamos los recuentos de consultas y entidades. Los archivos vectoriales de la palabra y la entidad son representaciones vectoriales comprimidas que representan los contextos en los que aparece la palabra/entidad. La biblioteca proporciona una forma de aprender los vectores de entidad. Los vectores de palabras se pueden generar utilizando herramientas generales como Word2Vec, o puede reutilizar vectores de palabras previamente capacitados como los disponibles en el proyecto FastText de Facebook.
La biblioteca también viene con dos conjuntos diferentes de herramientas para generar el hash y los archivos de Word Vector.
Si usa esta biblioteca, cite los siguientes documentos:
@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}
}
Hay varios rankers/enlazadores diferentes que utilizan diferentes modelos conceptuales. La descripción general del algoritmo con algunos detalles de implementación es en:
Vínculos de entidad eficiente rápida y espacial para consultas
La clase principal a usar es com.yahoo.semsearch.fastlinking.FastEntityLinker
Se puede llamar a la clase con --help para enumerar las opciones disponibles. Proporcionan un enlace interactivo a través de Stdin (edite el código o extienda la clase si necesita un formato de salida personalizado).
Primero descargue el conjunto de datos de WebScope siguiendo los enlaces que se proporcionan a continuación.
Ejemplo de uso de uso:
mvn exec:java -Dexec.mainClass=com.yahoo.semsearch.fastlinking.FastEntityLinker
-Dexec.args= " en/english-nov15.hash " La clase CoherentEntityLinker toma las menciones de entidad y la mejor lista de enlaces de entidad para cada entidad mencionada como entrada. Construye una red a partir de las listas de N-Best y se ejecuta algoritmo hacia adelante hacia atrás.
Los algoritmos de más coherencia están bajo experimentación. Se agregarán en futuras versiones del código.
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=compilePuede incluir un archivo de mapeo en los argumentos de enlazador de entidad (a continuación) que mapea las categorías de entidades integrales a las categorías de entidades legibles por humanos.
El siguiente comando ejecutaría el enlazador en una cuadrícula de 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 >La clase lee archivos que tienen una consulta por línea: se divide y toma el primer elemento. El formato de salida es:
entity_type <TAB> query <TAB> modifier <TAB> entity_id
dónde
entity_type se proporciona en el datapackquery es la consulta originalmodifier es la cadena de consulta cuando el alias de entidad se removeentity_id es la entidad recuperadaEn general, debe confiar en el umbral y posiblemente quedarse con la entidad Top-1 recuperada, pero esto depende de cómo lo use.
Este paquete también proporciona código a
Se puede encontrar más sobre esto en el paquete W2V.
La herramienta utiliza un Datapack que almacena cuenta y alias (menciones) de entidades de diferentes fuentes. Originalmente, utilizamos textos de anclaje y registros de consultas. A continuación se describe cómo extraer y calcular el texto de anclaje de un vertedero público de Wikipedia usando un clúster Hadoop (o si no hay uno, puede usar Hadoop en una sola máquina). Esto se basa en el código del kit de herramientas Cloud9.
Se puede encontrar más sobre esto en el paquete IO.
#### Creación de una entidad cuasi-tesionista Características hash
El DataPack contendrá dos archivos: uno con los recuentos por entidad y otro con la entidad a la asignación de ID. Entonces, puedes hash usando:
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > Se proporcionan los siguientes modelos previamente capacitados para realizar una entidad que se vincula con el kit de herramientas y están disponibles a través de Yahoo! Programa Webscope para fines de investigación. Estos modelos están capacitados en Wikipedia y se distribuyen utilizando Creative Commons por la licencia SA 4.0 (ver Models_License).
Hash inglés capacitado a partir de noviembre de 2015 Wikipedia
Ingloniaciones de entidad inglesa
Hash español entrenado a partir de octubre de 2015 Wikipedia
Incrustos de la entidad española
Hash chino entrenado a partir de diciembre de 2015 Wikipedia
Incruscaciones de entidad china
Roi Blanco, Aasish Pappu