Nltk: Демо Brill Tagger сломано

Созданный на 9 сент. 2017  ·  6Комментарии  ·  Источник: nltk/nltk

Я заметил, что в книге (раздел 6, пример 6.1) предлагается следующий код: nltk.tag.brill.demo()

Когда я запускаю это, я получаю следующую ошибку: AttributeError: module 'nltk.tag.brill' has no attribute 'demo'

Я что-то пропустил?

book resolved tests

Самый полезный комментарий

То, что сделал @campionfellin , сработало. Спасибо!

Может, в книге вместо nltk.tag.brill.demo() должно быть:

from nltk.tbl import demo as brill_tagger
brill_tagger.demo()

Все 6 Комментарий

Произошла некоторая реорганизация кодовой базы nltk для модулей тегировщика Brill, см. https://github.com/nltk/nltk/commits/develop/nltk/tag/brill.py .

В настоящее время демо Brill tagger находится в https://github.com/nltk/nltk/blob/develop/nltk/tbl/demo.py , поэтому в коде:

import nltk
nltk.tbl.demo()

Боюсь, это тоже не работает. Я получаю ошибку импорта на map_tag :

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Compilers\Python\lib\site-packages\nltk\__init__.py", line 128, in <module>
    from nltk.chunk import *
  File "C:\Compilers\Python\lib\site-packages\nltk\chunk\__init__.py", line 157, in <module>
    from nltk.chunk.api import ChunkParserI
  File "C:\Compilers\Python\lib\site-packages\nltk\chunk\api.py", line 15, in <module>
    from nltk.chunk.util import ChunkScore
  File "C:\Compilers\Python\lib\site-packages\nltk\chunk\util.py", line 13, in <module>
    from nltk.tag.mapping import map_tag
  File "C:\Compilers\Python\lib\site-packages\nltk\tag\__init__.py", line 68, in <module>
    from nltk.tag.brill         import BrillTagger
  File "C:\Compilers\Python\lib\site-packages\nltk\tag\brill.py", line 16, in <module>
    from nltk.tbl import Feature, Template
  File "C:\Compilers\Python\lib\site-packages\nltk\tbl\__init__.py", line 29, in <module>
    from nltk.tbl.demo import demo
  File "C:\Compilers\Python\lib\site-packages\nltk\tbl\demo.py", line 18, in <module>
    from nltk.corpus import treebank
  File "C:\Compilers\Python\lib\site-packages\nltk\corpus\__init__.py", line 66, in <module>
    from nltk.corpus.reader import *
  File "C:\Compilers\Python\lib\site-packages\nltk\corpus\reader\__init__.py", line 59, in <module>
    from nltk.corpus.reader.tagged import *
  File "C:\Compilers\Python\lib\site-packages\nltk\corpus\reader\tagged.py", line 18, in <module>
    from nltk.tag import str2tuple, map_tag
ImportError: cannot import name 'map_tag'

Эй, я не получаю эту ошибку, используя python v2.7.10. Какую версию ты используешь? Это мой вывод:

>>> import nltk
>>> from nltk.tbl import demo as issue1828
>>> issue1828.demo()
Loading tagged data from treebank...
Read testing data (200 sents/5251 wds)
Read training data (800 sents/19933 wds)
Read baseline data (800 sents/19933 wds) [reused the training set]
Trained baseline tagger
    Accuracy on test set: 0.8345
Training tbl tagger...
TBL train (fast) (seqs: 800; tokens: 19933; tpls: 24; min score: 3; min acc: None)
Finding initial useful rules...
    Found 12960 useful rules.

           B      |
   S   F   r   O  |        Score = Fixed - Broken
   c   i   o   t  |  R     Fixed = num tags changed incorrect -> correct
   o   x   k   h  |  u     Broken = num tags changed correct -> incorrect
   r   e   e   e  |  l     Other = num tags changed incorrect -> incorrect
   e   d   n   r  |  e
------------------+-------------------------------------------------------
  23  23   0   0  | POS->VBZ if Pos:PRP@[-2,-1]
  16  17   1   0  | NN->VB if Pos:-NONE-@[-2] & Pos:TO@[-1]
  15  16   1   0  | VBN->VBD if Pos:PRP@[-1]
  12  12   0   0  | VBP->VB if Pos:MD@[-2,-1]

и так далее...

Спасибо @campionfellin за проверку.

@MrDupin , не могли бы вы предоставить нам информацию о вашей версии, чтобы мы могли вам помочь?

Кроме того, я думаю, что было бы неплохо добавить эту демонстрацию в один из unittest в nltk/test/unit , чтобы функциональные возможности этой демонстрации можно было протестировать в автоматизированных тестах CI. Кто-нибудь за это?

@stevenbird Мы также должны изменить код для онлайн-книги на https://github.com/nltk/nltk_book/edit/master/book/ch05.rst .

То, что сделал @campionfellin , сработало. Спасибо!

Может, в книге вместо nltk.tag.brill.demo() должно быть:

from nltk.tbl import demo as brill_tagger
brill_tagger.demo()

Добавил демо в юниттест #2099

Пример книги должен быть разрешен https://github.com/nltk/nltk_book/pull/204 .

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

alvations picture alvations  ·  4Комментарии

ndvbd picture ndvbd  ·  4Комментарии

BLKSerene picture BLKSerene  ·  4Комментарии

Chris00 picture Chris00  ·  3Комментарии

jeryini picture jeryini  ·  5Комментарии