如何使用 OpenIE 执行搜索
How to perform search using OpenIE
我下载了 UWashington 的 OpenIE。二进制接受一个句子并输出标签。但是在他们的网站 http://openie.cs.washington.edu/ 上,他们展示了搜索功能。您可以搜索 "person" 和 "location" 并获得 "live in"、"work in" 等结果。但是他们的 github 网站没有告诉您如何执行此操作。我如何做到这一点并提供我自己的数据?
您可以使用搜索软件(例如 elasticsearch、Whoosh)在从数据中提取的主谓宾元组上建立索引。例如,如果您使用 elasticsearch,则需要遍历所有 OpenIE 输出并为每个元组创建这样的请求:
curl -XPOST 'http://localhost:9200/spos/spo/' -d '{
"subject" : "martians",
"predicate" : "live in",
"object" : "the moon"
}'
建立索引后,您可以对主语、谓语和宾语的任意组合进行搜索和聚合:
curl -XGET 'http://localhost:9200/spos/_search?q=predicate:live in AND object:the moon'
我下载了 UWashington 的 OpenIE。二进制接受一个句子并输出标签。但是在他们的网站 http://openie.cs.washington.edu/ 上,他们展示了搜索功能。您可以搜索 "person" 和 "location" 并获得 "live in"、"work in" 等结果。但是他们的 github 网站没有告诉您如何执行此操作。我如何做到这一点并提供我自己的数据?
您可以使用搜索软件(例如 elasticsearch、Whoosh)在从数据中提取的主谓宾元组上建立索引。例如,如果您使用 elasticsearch,则需要遍历所有 OpenIE 输出并为每个元组创建这样的请求:
curl -XPOST 'http://localhost:9200/spos/spo/' -d '{
"subject" : "martians",
"predicate" : "live in",
"object" : "the moon"
}'
建立索引后,您可以对主语、谓语和宾语的任意组合进行搜索和聚合:
curl -XGET 'http://localhost:9200/spos/_search?q=predicate:live in AND object:the moon'