Я реализовал извлечение названий организаций, используя следующий код, как предложено в Как я могу извлечь GPE (местоположение), используя NLTK ne_chunk?
from nltk import word_tokenize, pos_tag, ne_chunk
from nltk import Tree
def get_continuous_chunks(text, label):
chunked = ne_chunk(pos_tag(word_tokenize(text)))
prev = None
continuous_chunk = []
for subtree in chunked:
if type(subtree) == Tree and subtree.label() == label:
current_chunk.append(" ".join([token for token, pos in subtree.leaves()]))
elif current_chunk:
named_entity = " ".join(current_chunk)
if named_entity not in continuous_chunk:
continuous_chunk.append(named_entity)
current_chunk = []
else:
continue
return continuous_chunk
Я вызываю функцию в моей программе
comp=get_continuous_chunks(sent, ‘ORGANIZATION’)
где отправлено содержимое файла.Полученный в результате результат находится в требуемом формате, однако, когда я запускаю его для названий компаний в нашей базе данных, точность составляет 60%.Я считаю, что для повышения точности я должен либо добавить названия компаний в этот корпус, либо создать новый корпус.Есть идеи, как добавить дополнительные названия компаний в корпус по умолчанию или внедрить новый корпус?