Bắt được thoát xấu xấu khi sử dụng nltk trong py3


8

Phiên bản NLTK 3.4.5. Python 3.7.4. Phiên bản OSX 10.14.5.

Nâng cấp codebase từ 2.7, bắt đầu gặp vấn đề này ngay bây giờ. Tôi đã thực hiện cài đặt lại không có bộ đệm mới cho tất cả các gói và tiện ích mở rộng, trong một virtualenv mới. Khá bí ẩn về việc điều này có thể xảy ra với tôi và tôi không thể tìm thấy ai khác có cùng lỗi trên mạng.

(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

1
Điều này có thể hữu ích: stackoverflow.com/questions/54330673/ từ
Kaushal28

Câu trả lời:


1

Các biểu thức chính quy của Python không hỗ trợ \uthoát, như thông báo lỗi nói.

Mặc dù lỗi là do nltkgói. Các tác giả của gói đó biết chắc chắn làm thế nào để viết biểu thức chính quy. Bạn đã vô tình chọn phiên bản Python 2.7 của nltkgói, mặc dù nó Kaminstaller trong thư mục 3.7 của bạn?

Tôi hy vọng rằng nltkgói có các bài kiểm tra đơn vị cho tất cả các mã của nó. Tôi sẽ gửi một báo cáo lỗi đối với gói đó.


> Bạn có vô tình nhặt phiên bản Python 2.7 không, tôi không nghĩ vậy - bánh xe được cài đặt từnltk-3.4.5-cp37-none-any.whl
gmoss

0

Trong trường hợp bất kỳ ai khác chạy vào vấn đề này, việc hạ cấp xuống 3.4.2 sẽ khắc phục sự cố, vì đây là trước khi đưa ArabStemmer vào tệp có liên quan. Tôi đã mở một vấn đề với nltk và hy vọng nó sẽ được giải quyết.


0

Để theo dõi, đây là một báo động sai: một kịch bản dọn dẹp sai lầm đang xóa tệp đối tượng chia sẻ của NLTK trong môi trường ảo của tôi và tôi đoán nó đã rơi trở lại một số phiên bản khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.