在solr 7.3中使用命名实体提取
我试图在Solr(SolrCloud)7.3中使用NER,但我有点缺少一些文档 我的发现: 我所做的: solrconfig.xml的部分内容 对数据插入的响应 问题在solr 7.3中使用命名实体提取,solr,solrcloud,Solr,Solrcloud,我试图在Solr(SolrCloud)7.3中使用NER,但我有点缺少一些文档 我的发现: 我所做的: solrconfig.xml的部分内容 对数据插入的响应 问题 我做错了什么?也许Solr7.3中的NER以其他神奇的方式工作,或者我没有正确理解某些东西 您是否确保匹配此处指定的实现:-您是否确认您的.bin模型实际工作?(即,在您正在编制索引的数据的一些示例上测试了模型,并确认它确实能够按预期识别实体?)您好,我已经检查并测试了它,但它根本不起作用。至少如果我正确假设了它的工作方式。我添
我做错了什么?也许Solr7.3中的NER以其他神奇的方式工作,或者我没有正确理解某些东西 您是否确保匹配此处指定的实现:-您是否确认您的
.bin
模型实际工作?(即,在您正在编制索引的数据的一些示例上测试了模型,并确认它确实能够按预期识别实体?)您好,我已经检查并测试了它,但它根本不起作用。至少如果我正确假设了它的工作方式。我添加了请求和响应,但到目前为止,我没有看到任何命名实体提取。请尝试其他源字符串,例如“This is Steve Jobs in white”。我不知道为什么,但是预构建的en-ner-person.bin
模型似乎没有提取后面跟数字标记的名称。如果这是一个问题,你应该考虑训练一个新的模型。当我说测试的时候,我的意思是你在SOLR之外测试了你的模型吗?仅仅是一个小样本程序还是什么?如果在Solr中没有使用该名称,那么您必须弄清楚这是否是模型本身的问题,或者您如何在Solr中使用该模型
<updateRequestProcessorChain name="multiple-extract">
<processor class="solr.OpenNLPExtractNamedEntitiesUpdateProcessorFactory">
<str name="modelFile">opennlp/en-ner-person.bin</str>
<str name="analyzerFieldType">text_opennlp</str>
<str name="source">description_en</str>
<str name="dest">content</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<requestHandler name="/myupdate " class="solr.UpdateRequestHandler">
<lst name="defaults">
<str name="update.chain">multiple-extract</str>
</lst>
</requestHandler>
<field name="_root_" type="string" docValues="false" indexed="true" stored="false"/>
<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="false"/>
<field name="_version_" type="plong" indexed="false" stored="false"/>
<field name="content" type="text_opennlp" indexed="true" termOffsets="true" stored="true" termPayloads="true" termPositions="true" docValues="false" termVectors="true" multiValued="true" required="true"/>
<field name="content_pos" type="text_opennlp_pos" indexed="true" termOffsets="true" stored="true" termPayloads="true" termPositions="true" docValues="false" termVectors="true" multiValued="true" required="true"/>
<field name="description_en" type="text_en" indexed="true" stored="true"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<fieldType name="text_opennlp" class="solr.TextField">
<analyzer>
<tokenizer class="solr.OpenNLPTokenizerFactory" tokenizerModel="opennlp/en-token.bin" sentenceModel="opennlp/en-sent.bin"/>
</analyzer>
</fieldType>
<fieldType name="text_opennlp_pos" class="solr.TextField">
<analyzer>
<tokenizer class="solr.OpenNLPTokenizerFactory" tokenizerModel="opennlp/en-token.bin" sentenceModel="opennlp/en-sent.bin"/>
<filter class="solr.OpenNLPPOSFilterFactory" posTaggerModel="opennlp/en-pos-maxent.bin"/>
<filter class="solr.TypeAsPayloadFilterFactory"/>
</analyzer>
</fieldType>
<add><doc><field name="id">0e5c7067-9cf0-445b-8374-4bf25484420c</field><field name="description_en">This is Steve Jobs 4 </field><field name="content_pos">This is text 4</field><field name="content"></field></doc></add>
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">20</int>
</lst>
</response>
{
"responseHeader": {
"zkConnected": true,
"status": 0,
"QTime": 22,
"params": {
"q": "*:*"
}
},
"response": {
"numFound": 5,
"start": 0,
"maxScore": 1,
"docs": [
{
"id": "0e5c7067-9cf0-445b-8374-4bf25484420c",
"description_en": "This is Steve Jobs 4 ",
"content_pos": [
"This is text 4"
],
"content": [
""
],
"_version_": 1598004417210089500
}
]
}
}