Obtendo “escape ruim” ao usar o nltk no py3

8

NLTK versão 3.4.5. Python 3.7.4. OSX versão 10.14.5.

A atualização da base de código da 2.7 começou a ser executada agora. Fiz uma nova reinstalação sem cache de todos os pacotes e extensões, em um novo virtualenv. Bastante confuso sobre como isso pode estar acontecendo apenas comigo, não consigo encontrar mais ninguém com o mesmo erro online.

(venv3) gmoss$ python
Python 3.7.4 (default, Sep  7 2019, 18:27:02) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/__init__.py", line 150, in <module>
    from nltk.translate import *
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/translate/__init__.py", line 23, in <module>
    from nltk.translate.meteor_score import meteor_score as meteor
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/translate/meteor_score.py", line 10, in <module>
    from nltk.stem.porter import PorterStemmer
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/stem/__init__.py", line 29, in <module>
    from nltk.stem.snowball import SnowballStemmer
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/stem/snowball.py", line 314, in <module>
    class ArabicStemmer(_StandardStemmer):
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/site-packages/nltk/stem/snowball.py", line 326, in ArabicStemmer
    r'[\u064b-\u064c-\u064d-\u064e-\u064f-\u0650-\u0651-\u0652]'
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/re.py", line 234, in compile
    return _compile(pattern, flags)
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/re.py", line 286, in _compile
    p = sre_compile.compile(pattern, flags)
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/sre_compile.py", line 764, in compile
    p = sre_parse.parse(p, flags)
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/sre_parse.py", line 930, in parse
    p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/sre_parse.py", line 426, in _parse_sub
    not nested and not items))
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/sre_parse.py", line 536, in _parse
    code1 = _class_escape(source, this)
  File "/Users/gmoss/Documents/constructor/autocomplete/venv3/lib/python3.7/sre_parse.py", line 337, in _class_escape
    raise source.error('bad escape %s' % escape, len(escape))
re.error: bad escape \u at position 1
musgo
fonte
1
Isso pode ser útil: stackoverflow.com/questions/54330673/…
Kaushal28

Respostas:

1

As expressões regulares do Python não suportam a \ufuga, como diz a mensagem de erro.

É estranho, porém, que o erro venha do nltkpacote. Os autores desse pacote sabem ao certo como escrever expressões regulares. Você pegou acidentalmente a versão Python 2.7 do nltkpacote, mesmo que Kaminstaller em seu diretório 3.7?

Espero que o nltkpacote tenha testes de unidade para todo o seu código. Eu apresentaria um relatório de bug nesse pacote.

Roland Illig
fonte
> Será que você acidentalmente pegar a versão Python 2.7 Eu não penso assim - a roda, instalado a partir de énltk-3.4.5-cp37-none-any.whl
gmoss
0

Caso alguém ache isso, a atualização para a 3.4.2 corrige o problema, pois isso ocorre antes da introdução do ArabicStemmer no arquivo relevante. Abri um problema com o nltk e espero que seja resolvido.

musgo
fonte
0

Para acompanhar, foi um alarme falso: um script de limpeza incorreto estava excluindo o arquivo de objeto compartilhado do NLTK dentro do meu ambiente virtual e acho que estava voltando a outra versão.

musgo
fonte