Распознавание именных объектов - PullRequest
0 голосов
/ 09 марта 2019

Итак, передо мной стоит задача создать индивидуальную модель для фармацевтической промышленности, в которой у меня есть конечный список лекарств и более 4000 текстовых файлов, из которых предполагается сделать NER.Я также пробовал сопоставление сущностей, используя spacy, но он показывает некоторые ошибки.Итак, теперь я планирую использовать SKlearn crfsuite, но для этого мои данные должны быть в формате conll и должны быть аннотированы. Буду очень признателен, если кто-нибудь поможет мне в аннотировании моих текстовых файлов!Можно ли как-нибудь инициировать автоматическую аннотацию к текстовым файлам, используя список лекарств, который у меня есть?так как для человека это огромная попытка достичь того же самого вручную. Я также взглянул на вопрос, заданный в ссылке, указанной ниже. Модель NER для распознавания индийских имен Но на самом деле никто не ответил на мой вопрос. Буду очень признателен, если кто-нибудь сможет мне помочь

Пространственный код: -

import spacy
from spacy.matcher import PhraseMatcher
from spacy.tokens import Span



class EntityMatcher(object):
    name = 'entity_matcher'

    def __init__(self, nlp, terms, label):
        patterns = [nlp(term) for term in terms]
        self.matcher = PhraseMatcher(nlp.vocab)
        self.matcher.add(label, None, *patterns)

    def __call__(self, doc):
        matches = self.matcher(doc)
        spans = []
        for label, start, end in matches:
            span = Span(doc, start, end, label=label)
            spans.append(span)
        doc.ents = spans
        return doc

data=pd.read_excel(r'C:\Users\xyz\pname.xlsx')
ld=list(set(data['Product']))
nlp = spacy.load('en')

entity_matcher = EntityMatcher(nlp, ld, 'DRUG')
nlp.add_pipe(entity_matcher)
print(nlp.pipe_names)    

doc=nlp('Hi bnbbn, ope all is well.  In preparation for the bcbcb is there anything that BGTD requires specifically?  We had sent you the US centric Briefing Package to align with our previous discussion on having bkjnsd included in the Wave 1  IMOVAX POLIO submission plan. If you would like, we can set-up a BGTD specific meeting after the June 20th meeting to discuss any jk specific product questions you may have as the product mix is a bit different between countries.')

for ent in doc.ents:
    print(ent.text, ent.start_char, ent.end_char, ent.label_)

when i run my script, this is the error i  get :-

[T002] Pattern length (11) >= phrase_matcher.max_length (10). Length can be set on initialization, up to 10.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...