5

こんにちは、スタックオーバーフロー、

ユーザーが単語のあいまいさを解消できるように、単語のさまざまなコンテキストをユーザーに提案する必要があります。

たとえば、「less」という単語は、Unix プログラム、css フレームワーク、またはその他のものである可能性があります。「りんご」という単語は、果物、企業、川、米国の州 (ビッグ アップル)、またはその他のさまざまなものである可能性があります。

あなたがアイデアを得たことを願っています。

私はインターネットを調べましたが、これまでのところ、このクエリしか思いつきませんでした。

しかし、まだ完璧にはほど遠いです。多くの場合、単語が多すぎたり少なすぎたりしますが、何も表示されないこともあります (「jquery」の場合)。

http://www.visualdataweb.org/relfinder/relfinder.phpも dbpedia を使用しているようですが、その結果は私の結果よりもはるかに優れています。

より関連性の高い結果を得るには、クエリをどのように変更すればよいですか?

4

1 に答える 1

5

Web API をお探しの場合は、DBpedia LookupまたはDBpedia Spotlightを使用してください。SPARQL で行う必要がある場合は、DBpedia Lexicalization Datasetを使用できます。

DBpedia 検索の場合、文字列を指定して、それらの文字列に一致するラベルを持つ DBpedia リソースを取得できます: lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryString=apple

DBpedia Spotlight の場合、必要に応じてより多くのコンテキストを提供できます: spotlight.dbpedia.org/rest/candidates?text=apple+company+macintosh+computer

語彙化データセットについては、まだ利用可能な SPARQL エンドポイントはありません。それをダウンロードし、独自の RDF ストアにロードして、次のようなクエリを実行する必要があります。

PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?resource ?score WHERE {
GRAPH ?g {
  ?resource skos:altLabel ?label.
}
  ?g <http://dbpedia.org/spotlight/score> ?score.
  FILTER (REGEX(?label, "apple", "i"))
}
于 2012-05-22T08:49:17.647 に答える