BH12.12/DBpedia Spotlight
提供:TogoWiki
目次 |
概要
DBpedia Spotlightは自然言語文を入力することで自動的にURIのannotationをするシステム (Demo). 初期データはhttp://dbpedia.org のものを使うようになっているが,他の言語のDBpediaや,全然異なるデータに対しても対応可能らしい.
応用例1.
自然言語文中の生物種名を認識してを理想的には日本語の自然言語文を入力するとその中で
Common NameやScientific Nameを認識して対応するURIにリンクできると良い.
最初からそれを目指すのは大変なのでまず学名.
応用例2. Life Science Dictionary に対して使えるようにしてみることでライフサイエンスに特化した リンク作成ができる.
メンバー
- 山本
- 加藤
進捗
Day 1
- DBpedia Spotlightについて調査
- インストール作業中
動作環境がそれなりに豊かじゃないと駄目みたい
Day 2
とりあえずほぼデフォルトの設定で動いている.
Demo: http://maiana.lodac.nii.ac.jp API: http://maiana.lodac.nii.ac.jp/rest/annotate?text=xxxxxxx
12209 fumi 20 0 77.4g 8.5g 254m S 0 13.4 11:40.49 java
日本語で動かせるかどうか試している.index作成中.
Day 3
日本語はインデックス作成のプロセスが時間かかる&失敗するで終わっていない. JapaneseAnalyzerについて,きちんとmvn installし直すとNotFoundではなくなったがNoSuchMethodExceptionになった.
java.lang.NoSuchMethodException: org.apache.lucene.analysis.ja.JapaneseAnalyzer.<init>(org.apache.lucene.util.Version, java.util.Set) at java.lang.Class.getConstructor0(Class.java:2721) ....
簡単なRuby libraryを作りはじめた. https://github.com/fumi/dbpedia-spotlight-rb
今は4つあるメソッドのうちannotateだけ
https://github.com/dbpedia-spotlight/dbpedia-spotlight/wiki/Web-service
DBpedia Spotlight
種名については,"SELECT TYPES..."でSpecies を指定するとDBpedia OntologyでSpecies classがtypeとしてついているリソースを引っ張ってこれるみたい.しかしデフォルトのままだと一部の種名のみしか認識できていないように見える.デフォルトで対象のperson,organization,locationはopennlp用のmodelを作っているように見えるので,species用にも作らないと駄目かも.
日本語対応は Internationalization を参照?
ソースからインストール
wikiには"maven3は駄目.maven2を使え"とあるが,現在のgithub masterはむしろmaven3じゃないと通らない
$ git clone https://github.com/dbpedia-spotlight/dbpedia-spotlight.git $ cd dbpedia-spotlight $ mvn install
Downloads のData Release-0.5を参考に Disambiguation index, Spotter lexicon他をダウンロード. サイズが3種類あるが,largeはかなりでかい.context-index-full.tgzは24GBある.
以下の設定はconf/server.propertiesの配置になるべく合わせている.
# mkdir -p /usr/local/spotlight/dbpedia_data/data/output # cd /usr/local/spotlight/dbpedia_data/data/output # wget http://spotlight.dbpedia.org/download/release-0.5/context-index-full.tgz # tar xvzf context-index-full.tgz # cd .. # wget http://spotlight.dbpedia.org/download/release-0.4/surface_forms-Wikipedia-TitRedDis.thresh3.spotterDictionary.gz # gunzip surface_forms-Wikipedia-TitRedDis.tresh3.spotterDictionary.gz # cp $(SPOTLIGHT_SRC)/dist/src/deb/control/data/usr/share/dbpedia-spotlight/pos-en-general-brown.HiddenMarkovModel . # wget http://spotlight.dbpedia.org/download/release-0.4/stopwords.en.list
# wget http://spotlight.dbpedia.org/download/release-0.5/opennlp_models.tgz # tar xvzf opennlp_models.tgz # mv data/spotlight/3.7/opennlp . # rm -rf data
# wget http://spotlight.dbpedia.org/download/release-0.5/spot_selector.tgz
$(SPOTLIGHT_SRC)/conf/server.properties
org.dbpedia.spotlight.spot.spotters = LingPipeSpotter,WikiMarkupSpotter,CoOccurrenceBasedSelector org.dbpedia.spotlight.spot.dictionary = /usr/local/spotlight/dbpedia_data/data/surface_forms-Wikipedia-TitRedDis.thresh3.spotterDictionary org.dbpedia.spotlight.spot.cooccurrence.datasource = ukwac org.dbpedia.spotlight.spot.cooccurrence.database.jdbcdriver = org.hsqldb.jdbcDriver org.dbpedia.spotlight.spot.cooccurrence.database.connector = jdbc:hsqldb:file:/usr/local/spotlight/dbpedia_data/data/spotsel/ukwac_candidate;shutdown=true&readonly=true org.dbpedia.spotlight.spot.cooccurrence.classifier.unigram = /usr/local/spotlight/dbpedia_data/data/spotsel/ukwac_unigram.model org.dbpedia.spotlight.spot.cooccurrence.classifier.ngram = /usr/local/spotlight/dbpedia_data/data/spotsel/ukwac_ngram.model
ここで任意のSPARQL Endpoint??
org.dbpedia.spotlight.sparql.endpoint = http://dbpedia.org/sparql org.dbpedia.spotlight.sparql.graph = http://dbpedia.org
上記のファイルの場所を設定後に以下を実行.unset DISPLAYが必要かも.
$ cd $(SPOTLIGHT_SRC)/rest $ mvn scala:run '-DaddArgs=../conf/server.properties'
日本語
DBpedia Spotlightが使っているツール
メモ
生物種名については Linnaeusのように,生物種名に特化したNamed Entity Recognitionのシステムがあるのでそれを使ってDBpedia Spotlightっぽいものを作るというアプローチもありか.