Английская грамматика для разбора в NLTK

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

Большое спасибо!

6 Solutions collect form web for “Английская грамматика для разбора в NLTK”

Вы можете взглянуть на pyStatParser , простой статистический парсер python, который возвращает деревья синтаксического анализа NLTK. Он поставляется с публичными древовидными структурами, и он генерирует грамматическую модель только в первый раз, когда вы создаете объект Parser (примерно через 8 секунд). Он использует алгоритм CKY, и он анализирует предложения средней длины (например, ниже) за секунду.

>>> from stat_parser import Parser >>> parser = Parser() >>> print parser.parse("How can the net amount of entropy of the universe be massively decreased?") (SBARQ (WHADVP (WRB how)) (SQ (MD can) (NP (NP (DT the) (JJ net) (NN amount)) (PP (IN of) (NP (NP (NNS entropy)) (PP (IN of) (NP (DT the) (NN universe)))))) (VP (VB be) (ADJP (RB massively) (VBN decreased)))) (. ?)) 

Моя библиотека, spaCy , обеспечивает синтаксический анализатор высокой производительности.

Монтаж:

 pip install spacy python -m spacy.en.download all 

Применение:

 from spacy.en import English nlp = English() doc = nlp(u'A whole document.\nNo preprocessing require. Robust to arbitrary formating.') for sent in doc: for token in sent: if token.is_alpha: print token.orth_, token.tag_, token.head.lemma_ 

Choi et al. (2015) обнаружили, что spaCy является самым быстрым парсером зависимостей. Он обрабатывает более 13 000 предложений в секунду, в одном потоке. По стандартной оценке WSJ она составляет 92,7%, что на 1% больше, чем у моделей CoreNLP.

Существует библиотека под названием « Шаблон» . Он довольно быстрый и простой в использовании.

 >>> from pattern.en import parse >>> >>> s = 'The mobile web is more important than mobile apps.' >>> s = parse(s, relations=True, lemmata=True) >>> print s 'The/DT/B-NP/O/NP-SBJ-1/the mobile/JJ/I-NP/O/NP-SBJ-1/mobile' ... 

В дистрибутиве nltk_data имеется несколько грамматик. В интерпретаторе Python выпустите nltk.download() .

Используйте MaltParser, там у вас есть предварительно подготовленная английская грамматика, а также некоторые другие предварительно подготовленные языки. И Maltparser – анализатор зависимостей, а не некоторый простой снизу вверх или сверху вниз Parser.

Просто загрузите MaltParser с http://www.maltparser.org/index.html и используйте NLTK следующим образом:

 import nltk parser = nltk.parse.malt.MaltParser() 

Я пробовал NLTK, PyStatParser, Pattern. IMHO Pattern – лучший английский парсер, представленный в этой статье. Потому что он поддерживает установку pip, и на веб-сайте есть http://www.clips.ua.ac.be/pages/pattern-en . Я не мог найти разумный документ для NLTK (и это дало мне неточный результат для меня по умолчанию. И я не мог найти, как его настроить). pyStatParser намного медленнее, чем описано выше в моей среде. (Примерно за одну минуту для инициализации и потребовалось пару секунд для разбора длинных предложений. Возможно, я не использовал его правильно).

  • Получение ошибки 405 при попытке загрузить данные nltk
  • Импорт проблем с библиотеками - «ImportError: No Module с именем ____»
  • Как получить инфинитивную форму глагола с помощью NLTK (пометка)
  • Работа с python NLTK: как повысить точность тегов POS?
  • Извлечение неконтекстных слов на английском языке string - python
  • Найти рифму с помощью NLTK в Python
  • Сохранение и загрузка тестов классифицируют Naive Bayes Classifier в NLTK другим способом
  • Реализации TF-IDF в python
  •  
    Interesting Posts for Van-Lav

    Поиск и получение строки в Python

    Python 2.7: LookupError: неизвестная кодировка: cp65001

    Использование Python pudb отладчика с pytest

    Py2exe, Runtimeerror с tweepy

    Как искать и заменять все вхождения строки в ms word doc на python?

    Получение AttributeError при попытке создать таблицу DynamoDB с глобальным индексом с помощью boto v2.25.0

    Проблемы при использовании понятий dict. NameError: глобальное имя не определено

    Переменные проекта в графике PCA в Python

    Почему или скорее, как объект .__ new__ работает по-разному в этих двух случаях

    Как принять всплывающее окно, представленное при установке расширения в Selenium?

    Что вызывает эту ошибку при попытке установить virtualenv? IOError: Разрешение отклонено: '/Library/Python/2.7/site-packages/virtualenv.py'

    urllib2 имеет проблемы с обработкой символа двоеточия в URL-адресе

    Выбор ячеек pandas без значения None

    Как рассчитать временной интервал между двумя временными строками

    Является ли внедрение абстрактного метода неписаным?

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