gpt4 book ai didi

solr - Solr 高亮也可以指示原始字段中返回片段的位置或偏移量吗?

转载 作者:行者123 更新时间:2023-12-04 15:35:16 26 4
gpt4 key购买 nike

背景

使用 Solr 4.0.0。我已经索引了一组示例文档的文本并启用了术语向量,因此我可以使用快速向量突出显示

<field name="raw_text" type="text_en" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />

为了突出显示,我正在使用带有句子边界的 Break Iterator Boundary Scanner。
<boundaryScanner name="breakIterator" class="solr.highlight.BreakIteratorBoundaryScanner">
<lst name="defaults">
<!-- type should be one of CHARACTER, WORD(default), LINE and SENTENCE -->
<str name="hl.bs.type">SENTENCE</str>
</lst>
</boundaryScanner>

我做一个简单的查询
http://localhost:8983/solr/documents/select?q=raw_text%3AArtibonite&wt=xml&hl=true&hl.fl=raw_text&hl.useFastVectorHighlighter=true&hl.snippets=100&hl.boundaryScanner=breakIterator

突出显示效果很好
<response>
...
<result name="response" numFound="5" start="0">
<doc>
<str name="id">-1071691270</str>
<str name="raw_text">
Final Report of the Independent Panel of Experts on the Cholera
Outbreak in Haiti Dr. Alejando Cravioto (Chair) International
Center for Diarrhoeal Disease Research, Dhaka, Bangladesh Dr.
Claudio F. Lanata Instituto de Investigación Nutricional, and
The US Navy Medical Research Unit 6, Lima, Peru Engr. Daniele
S. Lantagne Harvard University... ~SNIP~
</str>
<doc>
<lst name="highlighting">
<lst name="-1071691270">
<arr name="raw_text">
...
<str>
The timeline suggests that the outbreak spread along
the <em>Artibonite</em> River. After establishing that
the cases began in the upper reaches of the Artibonite
River, potential sources of contamination that could have
initiated the outbreak were investigated.
</str>
...
</arr>
</lst>
</lst>

问题

我希望能够发送结果句子以进行进一步处理(实体提取等),但我想跟踪原始(长)文本字段中突出显示的句子的开始/结束偏移量。有没有直接的方法来做到这一点?

将 hl.fragsize 设置为返回整个字段然后以这种方式处理/提取感兴趣的句子会更好吗?

最佳答案

除了进行某种定制之外,没有办法返回带有突出显示结果的片段的偏移信息。

你似乎有几个选择:

1) 您可以通过创建将偏移信息编码为字符串的自定义格式化程序来扩展 Solr 荧光笔。 TokenGroup传递给每个术语的格式化程序将在其中存储偏移量和位置信息。如果您的格式化程序返回 <span data-offset=X>text</span>或类似的东西,那将是一种方式。这似乎不是最直接的。

2)如您所说,使用 hl.fragsize=0 返回整个字段.

3) 使用 TermVectorsComponent在附加请求中,并将从它返回的偏移/位置信息与突出显示的片段进行映射。

如果您无论如何都在进行自己的分段,那么对您来说最好的解决方案可能是在 Solr 中进行 0 分段并自己处理。或者,您可以实现自己的 BoundaryScanner在 Java 中实现以使用您自己的实体提取专业知识来分解片段。

关于solr - Solr 高亮也可以指示原始字段中返回片段的位置或偏移量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com