Spacy ValueError: [T001] Максимальная длина в настоящее время 10 для соответствия фраз - PullRequest
0 голосов
/ 02 июля 2018

Есть ли способ изменить максимальную длину соответствия фразы на гораздо большее число? Даже если максимальная длина установлена ​​на более высокий порог. Я не мог найти практическое решение по пред. потоки. Помеченные термины более 9000.

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(text) for text in terms]
        self.matcher = PhraseMatcher(nlp.vocab, max_length=20000)
        self.matcher.add(label, None, *patterns)

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


nlp = spacy.blank('en')
text = open('/Users/Desktop/9000drugs.txt').read()
drugs = text.splitlines()
print (drugs)

entity_matcher = EntityMatcher(nlp, drugs, 'DRUG')

nlp.add_pipe(entity_matcher)
text = open('/Users/Desktop/extract_text.txt', 'r').read() # open a document
doc = nlp(text)


ents = [( e.start_char, e.end_char, e.label_) for e in doc.ents]

a ='{}'.format(doc.text)
annotation = (a, {'entities': ents})

print(annotation)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...