Search code examples
pythonnamed-entity-recognitionspacy

Named entity recognition in Spacy


I am trying to find Named entities for a sentence as below

import spacy.lang.en
parser = spacy.lang.en.English()
ParsedSentence = parser(u"Alphabet is a new startup in China")
for Entity in  ParsedSentence.ents:  
    print (Entity.label, Entity.label_, ' '.join(t.orth_ for t in Entity))

I am expecting to get the result "Alphabet","China" but I am getting an empty set as result. What am I doing wrong here


Solution

  • As per spacy documentation for Name Entity Recognition here is the way to extract name entity

    import spacy
    nlp = spacy.load('en') # install 'en' model (python3 -m spacy download en)
    doc = nlp("Alphabet is a new startup in China")
    print('Name Entity: {0}'.format(doc.ents))
    

    Result
    Name Entity: (China,)

    To make "Alphabet" a 'Noun' append it with "The".

    doc = nlp("The Alphabet is a new startup in China")
    print('Name Entity: {0}'.format(doc.ents))
    

    Name Entity: (Alphabet, China)