Как анализировать пользовательские теги с помощью nltk.Regexp.parser ()

Мой вопрос похож на этот неотвеченный вопрос: с помощью пользовательских тегов POS для фрагментации NLTK? , но ошибка, которую я получаю, отличается. Я пытаюсь разобрать предложение, к которому я добавил свои собственные теги, специфичные для домена.

Например:

(u'greatest', 'P'), (u'internet', 'NN'), (u'ever', 'A'), (u',', ','), (u'and', 'CC'), (u'its', 'PRP$'), (u'being', 'VBG'), (u'slow', 'N'), (u'as', 'IN'), (u'hell', 'NN')` 

где (u'slow', 'N') является пользовательским тегом 'N' .

Я пытаюсь разобрать это, используя следующее:

 grammar=r""" Chunk:`{<A>?*<P>+}` """ parser=nltk.RegexpParser(grammar) 

Но я получаю следующую ошибку:

 ValueError: Illegal chunk pattern: `{<A>?*<P>+}` 

Выполняет ли nltk.RegexpParser собственные теги? Есть ли другой синтаксический анализатор nltk или python, который может это сделать?

2 Solutions collect form web for “Как анализировать пользовательские теги с помощью nltk.Regexp.parser ()”

nltk.RegexpParser может обрабатывать пользовательские теги.

Вот как вы можете изменить свой код для работы:

 # Import the RegexpParser from nltk.chunk import RegexpParser # Define your custom tagged data. tags = [(u'greatest', 'P'), (u'internet', 'NN'), (u'ever', 'A'), (u',', ','), (u'and', 'CC'), (u'its', 'PRP$'), (u'being', 'VBG'), (u'slow', 'N'), (u'as', 'IN'), (u'hell', 'NN')] # Define your custom grammar (modified to be a valid regex). grammar = """ CHUNK: {<A>*<P>+} """ # Create an instance of your custom parser. custom_tag_parser = RegexpParser(grammar) # Parse! custom_tag_parser.parse(tags) 

Это результат, который вы получите для своих тестовых данных:

 Tree('S', [Tree('CHUNK', [(u'greatest', 'P')]), (u'internet', 'NN'), (u'ever', 'A'), (u',', ','), (u'and', 'CC'), (u'its', 'PRP$'), (u'being', 'VBG'), (u'slow', 'N'), (u'as', 'IN'), (u'hell', 'NN')]) 

Я не знаком с NTLK, но в регулярных выражениях Python ?* Является синтаксической ошибкой. Возможно, вы имели в виду *? который является ленивым квантором.

  • Странное поведение re.sub с utf-8-строками
  • Регулярное выражение для соответствия закрывающим HTML-тегам
  • Как соответствие регулярному выражению, если оно не содержит определенного слова?
  • Параметрирование параметров сообщения, полученных GSM-модемом в python
  • Mitmproxy tampering GET и запрос / ответ POST в одном скрипте
  • Python re "ложная ошибка выхода"
  • Регулярное выражение Python для заглавных слов в Юникоде
  • Анализ XML в Python с регулярным выражением
  •  
    Interesting Posts for Van-Lav

    Могу ли я поставить точку останова в запущенной программе Python, которая падает на интерактивный терминал?

    Как присоединиться к 2 спискам dicts в python?

    Смешать изображения с помощью Markdown в приложении Flask

    Рекурсивно перемещение дерева наследования Python во время выполнения

    Как получить более подробную информацию об ошибке numpy для ошибки «RuntimeWarning: недопустимое значение, обнаруженное при умножении»

    Суммирование кортежей кортежей и вложенного диктата

    Как добавить собственный индекс в pip, работающий в virtualenv?

    Проблема с python urllib

    Как реализовать пользовательскую MIB в PySNMP?

    Использование обратных операторов в Python

    Включить библиотеку в приложение python

    Найти все решения решённой эшелоновой матрицы строк в чистом питоне

    Обновление до Django 1.7: получение AppRegistryNotReady для инфраструктуры перевода

    Почему for-loop с pop-method (или оператор del) не перебирает все элементы списка

    Selenium WebDriverWait, но все же «Элемент не кликается в точке»

    Python - лучший язык программирования в мире.