(Как) Могу ли я получить несколько тегов для каждого шаблона в RegexpTagger? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть задача маркировать предложения в соответствии с несколькими регулярными выражениями на каждой метке. Я использую RegexpTagger из nltk для хранения регулярных выражений, но он возвращает только одно совпадение для каждого предложения. Есть ли другое решение, чтобы получить несколько предложений и их ярлыков?

import re
from nltk import RegexpTagger, sent_tokenize

regexes= ['[^.]*health*[^.]*', '[^.]*death*[^.]*']
healthRegex = re.compile('|'.join('(?:{0})'.format(x) for x in regexes), re.IGNORECASE)

regexes= ['[^.]*pancake*[^.]*']
PancakeRegex = re.compile('|'.join('(?:{0})'.format(x) for x in regexes), re.IGNORECASE)

patterns = [
    (healthRegex, 'health or death'),
    (PancakeRegex, 'pancake')] 

regexp_tagger = RegexpTagger(patterns)

print (regexp_tagger.tag
       (sent_tokenize
        ("Healthy is important. Pancakes cause death. I don't like pancakes. Pancakes improve health.")))

[(«Здорово важно.», «Здоровье или смерть»), («Блины вызывают смерть.», «Здоровье или смерть» ), («Я не люблю блины.», «Блины»), («Блины улучшают здоровье.», «Здоровье или смерть»)]

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