빠른 엔티티 링커 코어
이 라이브러리는 대상 참조 지식 기반 (예 : Wikipedia)에 연결되는 쿼리 세분화 및 엔티티를 수행합니다. 현재 버전에서는 쿼리 엔티티 링크 (또는 짧은 텍스트 조각)를 향해 맞춤화됩니다. 주요 목표는 완전히 감독되지 않은 매우 빠른 링커 (표준 노트북에서 평균적으로 <1 또는 2ms/쿼리)를 갖는 것이 었으므로보다 정교한 접근 방식이 적절한 시간 예산으로이를 수행 할 수 있도록하는 것이 었습니다. 이것의 부작용은 링커가 사용하는 데이터 팩이 <3GB를 차지하여 그리드에서 실행하기에 적합하고 (서버 시스템의 발자국을 매우 낮게 만들 수 있음)
이 프로젝트를 실행하기 전에 Maven을 설치하십시오. 이 프로젝트에는 pom.xml 제공되어 mvn install 명령을 실행할 때 모든 종속성을 설치해야합니다.
라이브러리는 쿼리 및 문서 엔티티 링크를 수행합니다. 신뢰도 점수 (~ 로그 우도)를 반환하는 다양한 알고리즘을 구현하여 길이가 다른 텍스트에 걸쳐 (~ 로그 가능성) 비교할 수 있으므로 연결을 위해 전역 임계 값을 사용할 수 있습니다. 이 프로그램은 하나의 큰 해시와 압축 된 단어 및 엔티티 벡터의 두 가지 데이터 구조로 작동합니다. 해시는 함께 발생하는 문구와 실체를 기록 하는 데이터 팩에서 생성됩니다. 이러한 수는 앵커 텍스트 및 쿼리 로그와 같은 다른 소스에서 나올 수 있습니다. 앵커 텍스트에서 해당 엔티티 페이지에 대한 링크가있을 때마다 앵커와 엔터티 카운트를 저장합니다. 쿼리 로그에서 엔티티 페이지를 클릭 할 때마다 쿼리 및 엔티티 카운트를 업데이트합니다. 단어 및 엔티티 벡터 파일은 단어/엔티티가 나타나는 컨텍스트를 설명하는 압축 벡터 표현입니다. 도서관은 엔티티 벡터를 배울 수있는 방법을 제공합니다. Word 벡터는 Word2Vec와 같은 일반적인 도구를 사용하여 생성 될 수 있거나 Facebook의 FastText 프로젝트에서 사용 가능한 것과 같은 미리 훈련 된 Word 벡터를 재사용 할 수 있습니다.
라이브러리에는 또한 해시와 단어 벡터 파일을 생성하기위한 두 가지 도구 세트가 제공됩니다.
이 라이브러리를 사용하는 경우 다음 서류를 인용하십시오.
@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}
}
다른 개념 모델을 사용하는 여러 랭커/링커가 있습니다. 일부 구현 세부 정보가 포함 된 알고리즘에 대한 전체 설명은 다음과 같습니다.
빠르고 우주 효율적인 엔티티 쿼리 링크
사용할 주 클래스는 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 클래스는 각 엔티티 언급에 대해 입력에 대한 엔티티 언급 및 N- 최고의 엔티티 링크 목록을 취합니다. N-BEST 목록에서 격자를 구성하고 전진하는 알고리즘을 실행합니다.
더 많은 일관성 알고리즘이 실험 중입니다. 향후 버전의 코드에 추가됩니다.
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엔티티 링커 인수 (아래)에 적분 엔티티 카테고리를 사람이 읽을 수있는 엔티티 카테고리에 매핑하는 매핑 파일을 포함시킬 수 있습니다.
다음 명령은 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 데이터 팩에 제공됩니다query 는 원래 쿼리입니다modifier 엔티티 별명이 remove 때 쿼리 문자열입니다.entity_id 는 검색된 엔티티입니다일반적으로 임계 값에 의존하고 검색 된 상위 1 개 실체를 고수해야하지만 이는 사용 방법에 따라 다릅니다.
이 패키지는 또한 코드를 제공합니다
이에 대한 자세한 내용은 W2V 패키지에서 찾을 수 있습니다.
이 도구는 다른 소스의 엔터티의 수와 별명 (언급)을 저장하는 데이터 팩을 사용합니다. 원래 앵커 텍스트와 쿼리 로그를 사용했습니다. 다음은 Hadoop 클러스터를 사용하여 공개 Wikipedia 덤프에서 앵커 텍스트를 채굴하고 계산하는 방법에 대해 설명합니다 (또는 하나가없는 경우 단일 시스템에서 Hadoop을 사용할 수 있음). 이것은 Cloud9 툴킷의 코드를 기반으로합니다.
이에 대한 자세한 내용은 IO 패키지에서 찾을 수 있습니다.
#### 준수 엔티티 기능 해시 생성
데이터 팩에는 두 개의 파일이 포함됩니다. 하나는 엔티티 횟수가 있고 하나는 엔티티가 ID 매핑을 제공합니다. 그런 다음 다음을 사용하여 해시 할 수 있습니다.
com.yahoo.semsearch.fastlinking.hash.QuasiSuccinctEntityHash
-i < datapack_file > -e < entity2id_file > -o < output_file > 다음과 같은 미리 훈련 된 모델은 툴킷과 연결되는 엔티티를 수행하기 위해 제공되며 Yahoo! 연구 목적을위한 웹 스코프 프로그램. 이 모델은 Wikipedia에 대한 교육을 받고 SA 4.0 라이센스 (Models_License 참조)에 의해 Creative Commons를 사용하여 배포됩니다.
2015 년 11 월 Wikipedia에서 영어 해시
영어 엔티티 임베딩
스페인 해시 2015 년 10 월 Wikipedia에서 훈련
스페인 단체 임베딩
중국 해시 2015 년 12 월 Wikipedia에서 훈련
중국 단체 임베딩
Roi Blanco, Aasish Pappu