I'm tying to to detect simple location with NER algorithm, and I'm getting semi-correct results:
from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load('ner')
text = 'Jackson leaves at north Carolina'
sentence = Sentence(text)
tagger.predict(sentence)
for entity in sentence.get_spans('ner'):
print(entity)
Output:
Span [1]: "Jackson" [− Labels: PER (0.9996)]
Span [5]: "Carolina" [− Labels: LOC (0.7363)]
I was expecting to receive "north Carolina"
.
FLAIR CAN detect full location description. The reason for your issue is that the 'north' is not capitalized.
If you run
from flair.data import Sentence
from flair.models import SequenceTagger
tagger = SequenceTagger.load('ner')
text = 'Jackson leaves at North Carolina'
sentence = Sentence(text)
tagger.predict(sentence)
for entity in sentence.get_spans('ner'):
print(entity)
You'll get
Span[0:1]: "Jackson" → PER (0.9997)
Span[3:5]: "North Carolina" → LOC (0.9246)