Bei Verwendung von nltk in py3 wird "schlechte Flucht" angezeigt

8

NLTK Version 3.4.5. Python 3.7.4. OSX Version 10.14.5.

Das Upgrade der Codebasis von 2.7 ist erst jetzt auf dieses Problem gestoßen. Ich habe alle Pakete und Erweiterungen in einer neuen virtuellen Umgebung ohne Cache neu installiert. Ziemlich verwirrt darüber, wie dies nur mir passieren könnte, und ich kann niemanden finden, der den gleichen Fehler online hat.

(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
gmoss
quelle
1
Dies könnte nützlich sein: stackoverflow.com/questions/54330673/…
Kaushal28

Antworten:

1

Die regulären Python-Ausdrücke unterstützen das \uEscape nicht, wie in der Fehlermeldung angegeben.

Es ist jedoch seltsam, dass der Fehler vom nltkPaket stammt. Die Autoren dieses Pakets wissen mit Sicherheit, wie man reguläre Ausdrücke schreibt. Haben Sie versehentlich die Python 2.7-Version von aufgenommen?nltk Pakets gefunden, obwohl sie Kaminstaller in Ihrem 3.7-Verzeichnis enthält?

Ich gehe davon aus, dass das nltkPaket Unit-Tests für den gesamten Code enthält. Ich würde einen Fehlerbericht gegen dieses Paket einreichen.

Roland Illig
quelle
> Haben Sie versehentlich die Python 2.7-Version aufgenommen, glaube ich nicht - das Rad, von dem es installiert wurde, istnltk-3.4.5-cp37-none-any.whl
gmoss
0

Falls jemand anderes darauf stößt, wird das Problem durch ein Downgrade auf 3.4.2 behoben, da dies vor der Einführung von ArabicStemmer in die entsprechende Datei erfolgt. Ich habe ein Problem mit nltk eröffnet und hoffe, dass es behoben wird.

gmoss
quelle
0

Für die Nachverfolgung war dies ein Fehlalarm: Ein fehlerhaftes Bereinigungsskript löschte die gemeinsam genutzte Objektdatei von NLTK in meiner virtuellen Umgebung und ich denke, sie fiel auf eine andere Version zurück.

gmoss
quelle