Повышение точности извлечения названия организации с использованием NLTK, Python - PullRequest
0 голосов
/ 28 ноября 2018

Я реализовал извлечение названий организаций, используя следующий код, как предложено в Как я могу извлечь 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%.Я считаю, что для повышения точности я должен либо добавить названия компаний в этот корпус, либо создать новый корпус.Есть идеи, как добавить дополнительные названия компаний в корпус по умолчанию или внедрить новый корпус?

...