首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法从受过训练的spacy获得实体?

无法从受过训练的spacy获得实体?
EN

Stack Overflow用户
提问于 2018-08-02 05:51:21
回答 1查看 0关注 0票数 0

我使用这个官方教程训练spacy和我的数据。但在此之后我不知道如何使用这个受过训练的spacy。

代码语言:javascript
复制
for ent in doc.ents:

返回空列表。我认为这是因为这部分代码,当我更新spacy时:

代码语言:javascript
复制
nlp = spacy.load('en', entity=False, parser=False)

有部分“entity = False”,我打开这个模块后就不能了。这是我的更新代码:

代码语言:javascript
复制
nlp = spacy.load('en', entity=False, parser=False)
ner = EntityRecognizer(nlp.vocab, entity_types=['ORGANIZATION', 'PERSON', 'MONEY'])

for itn in range(5):
    print("round")
    random.shuffle(train_data)
    for raw_text, entity_offsets in train_data:
        doc = nlp.make_doc(raw_text)
        gold = GoldParse(doc, entities=entity_offsets)

        nlp.tagger(doc)
        ner.update(doc, gold)
ner.model.end_training()

如何在更新后从nlp获取实体?要像这样使用:

代码语言:javascript
复制
doc = nlp(String)

for ent in doc.ents:
    ...
EN

回答 1

Stack Overflow用户

发布于 2018-08-02 15:41:28

doc = nlp(String)

对于doc.ents:

代码语言:javascript
复制
print ("{} is of entity type {}".format(ent.label_, ent.text) )

这是我的代码示例:

代码语言:javascript
复制
import spacy 
nlp= spacy.load('en')
include_entities = ['DATE', 'ORG', 'PERSON']

# Define extract_entities()
def extract_entities(message):
# Create a dict to hold the entities
ents = dict.fromkeys(include_entities)
# Create a spacy document
doc = nlp(message)
for ent in doc.ents:
    if ent.label_ in include_entities :
        # Save interesting entities
        ents[ent.label_] = ent.text

return ents

消息可以是任何字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档