Text 使用spacy或nltk从德语文本数据中提取人名?

Text 使用spacy或nltk从德语文本数据中提取人名?,text,corpus,named-entity-recognition,Text,Corpus,Named Entity Recognition,我使用德语的spacy模型来提取命名实体,如位置名、人名和公司名,但没有得到正确的结果作为输出。是否有我无法准确理解的遗漏概念 def city_finder(text_data): nlp = spacy.load('en_core_web_sm') doc = nlp(text_data) for ents in doc.ents: if(ents.label_ == 'GPE'): return (ents.text) 这是

我使用德语的spacy模型来提取命名实体,如位置名、人名和公司名,但没有得到正确的结果作为输出。是否有我无法准确理解的遗漏概念

def city_finder(text_data):
    nlp = spacy.load('en_core_web_sm')
    doc = nlp(text_data)
    for ents in doc.ents:
        if(ents.label_ == 'GPE'):
            return (ents.text)

这是我用来从文本数据中查找城市名称的代码,但它的准确性不是很高。当我运行这段代码时,结果是其他东西,而不是城市名称。作为自然语言处理或其他领域的一部分,我是否遗漏了一些东西

有标准库可用于提取特定于语言的POS。您可以检查其他库以提取名词,例如,从剪辑中提取模式库(请参阅)为德语和西班牙语等语言实现POS。

您必须加载德语模型,当前加载的是英语模型(请参阅前缀“en”))。有两种德国型号可供选择:

  • 核心新闻
  • de_core_news_md
资料来源:

您可以通过以下命令安装它们:

python -m spacy download de_core_news_sm
但是,目前只支持四种不同的实体(根据我的经验,如果不进行再培训,实体提取在德语中不会很好地工作)

支持的NER:LOC、MISC、组织、PER

您必须按照以下方式调整代码:

def city_finder(text_data):
    nlp = spacy.load('de_core_news_sm') # load German language model
    doc = nlp(text_data)
    for ents in doc.ents:
        if(ents.label_ == 'LOC'): # GPE is not supported
            return (ents.text)