Это код, который я написал для пометки:
sn = StanfordNERTagger("/home/ikscare/Documents/Projects/Mousam/stanford-ner-2014-08-27/classifiers/english.all.3class.distsim.crf.ser.gz",
path_to_jar="/home/ikscare/Documents/Projects/Mousam/stanford-ner-2014-08-27/stanford-ner.jar")
sentences=document.split('\n')
ner_tagged_sentences = [sn.tag(sent.split()) for sent in sentences]
# extract all named entities
named_entities = []
for sentence in ner_tagged_sentences:
temp_entity_name = ''
temp_named_entity = None
for term, tag in sentence:
if tag != 'O':
temp_entity_name = ' '.join([temp_entity_name, term]).strip()
temp_named_entity = (temp_entity_name, tag)
else:
if temp_named_entity:
named_entities.append(temp_named_entity)
temp_entity_name = ''
temp_named_entity = None
И сущности, которые у меня есть:
{('Anna', 'PERSON'), ('Liz', 'PERSON')}
Теперь, что я могу сделать, чтобы объединить их в одну сущность, и это нужно сделать для каждой сущности и очень точно, потому что может быть условие, когда несколько имен могут встречаться рядом в одной строке.