1

我正在尝试编写一个小程序,它将读取 txt 文件的上下文并将其发送到 Spotlight Web 服务,以获取语义注释(以 text\html 输出格式)。不幸的是,与 Spotlight Demo 相比,只有一小部分实体被“识别”。例如,使用我的程序,对于像“Ridley Scott 导演了包括外星人、终结者和银翼杀手在内的许多电影”这样的文本,我得到的回应是“电影”和“外星人”在演示中的位置没有注释。较大的文本也会发生同样的情况。我在使用 OpenCalais WebService 时遇到了类似的问题,但这是因为我试图使用命令对输入文本进行编码

     input = URLEncoder.encode(input, "UTF-8");

一旦我将其注释掉,问题就解决了。不幸的是,这里不是这种情况。

4

1 回答 1

2

如果您发布通过演示和程序获得的结果以及演示界面中使用的参数,这将有所帮助,这样我们就可以尝试了解正在发生的事情。如果没有更多信息,我不确定我能否提供帮助。

但让我们做一些猜测。我认为这是其中之一:

  1. 您没有设置参数置信度和支持,因此可能是您的 Web 服务调用的结果被比演示界面更高的值过滤掉了。尝试添加参数“&confidence=0.0”和“&support=0”。这应该显示所有内容(甚至是一些明显不正确的注释)。您可以将这些参数设置得更高以获得更高的精度(以降低召回为代价)。有关添加帖子参数的帮助,请参阅此其他答案:如何使用 POST 将参数添加到 HttpURLConnection
  2. 您也没有明确设置要使用的检测器,因此 Web 服务可能使用与您的 Web 服务不同的检测器。有关在 DBpedia Spotlight 上发现的更多信息:https ://github.com/dbpedia-spotlight/dbpedia-spotlight/wiki/Spotting (相同的参数适用于 /annotate)
于 2012-06-28T07:42:07.563 回答