ไม่พบทรัพยากร u'tokenizers / punkt / english.pickle '


100

รหัสของฉัน:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

ข้อความผิดพลาด:

[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>

    tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load

    opened_resource = _open(resource_url)

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open

    return find(path_, path + ['']).open()

File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find

    raise LookupError(resource_not_found)

LookupError:

Resource u'tokenizers/punkt/english.pickle' not found.  Please
use the NLTK Downloader to obtain the resource:

    >>>nltk.download()

Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''

ฉันพยายามเรียกใช้โปรแกรมนี้ในเครื่อง Unix:

ตามข้อความแสดงข้อผิดพลาดฉันเข้าสู่ python shell จากเครื่อง unix ของฉันจากนั้นฉันใช้คำสั่งด้านล่าง:

import nltk
nltk.download()

จากนั้นฉันดาวน์โหลดสิ่งที่มีทั้งหมดโดยใช้ตัวโหลด d-down และตัวเลือก l- list แต่ปัญหายังคงมีอยู่

ฉันพยายามอย่างเต็มที่เพื่อค้นหาวิธีแก้ปัญหาในอินเทอร์เน็ต แต่ฉันได้รับวิธีแก้ปัญหาเดียวกันกับที่ฉันได้กล่าวไว้ในขั้นตอนข้างต้น


1
อาจซ้ำกันของFailed loading english.pickle with nltk.data.load
alvas

คำตอบ:


172

หากต้องการเพิ่มคำตอบของ alvasคุณสามารถดาวน์โหลดได้เฉพาะpunktคลังข้อมูล:

nltk.download('punkt')

กำลังดาวน์โหลดallเสียงเหมือนมากเกินไปสำหรับฉัน เว้นแต่นั่นคือสิ่งที่คุณต้องการ


ขอบคุณสำหรับชื่อคลังข้อมูล nltk
Austin A

ฉันต้องอัปเกรดเป็น nltk เวอร์ชันล่าสุด 3.2.5 เพื่อให้ nltk.download ('punkt') ทำงานได้
charles gomes

นี่คือสิ่งที่ได้รับหลังจากเรียกใช้โค้ดด้านบน: [nltk_data] เกิดข้อผิดพลาดในการโหลด punkt: <urlopen error [Errno 111] การเชื่อมต่อ [nltk_data] ถูกปฏิเสธ>
พอล

เกี่ยวกับปัญหาก่อนหน้าของฉันสิ่งที่ฉันต้องทำคือปิด VPN ของฉัน
พอล

61

หากคุณต้องการดาวน์โหลดpunktโมเดลเท่านั้น:

import nltk
nltk.download('punkt')

หากคุณไม่แน่ใจว่าต้องการข้อมูล / รุ่นใดคุณสามารถติดตั้งชุดข้อมูลโมเดลและแท็กเกอร์ยอดนิยมจาก NLTK:

import nltk
nltk.download('popular')

ด้วยคำสั่งดังกล่าวคุณไม่จำเป็นต้องใช้ GUI เพื่อดาวน์โหลดชุดข้อมูล


34

ฉันมีทางออก:

import nltk
nltk.download()

เมื่อ NLTK Downloader เริ่มทำงาน

d) ดาวน์โหลด l) รายการ u) อัพเดต c) Config h) Help q) Quit

ดาวน์โหลด> d

ดาวน์โหลดแพ็คเกจใด (l = list; x = ยกเลิก)? ตัวระบุ> punkt


27

จากเชลล์คุณสามารถดำเนินการ:

sudo python -m nltk.downloader punkt 

หากคุณต้องการติดตั้ง NLTK corpora / รุ่นยอดนิยม:

sudo python -m nltk.downloader popular

หากคุณต้องการที่จะติดตั้งทั้งหมด NLTK corpora / รุ่น:

sudo python -m nltk.downloader all

ในการแสดงรายการทรัพยากรที่คุณดาวน์โหลด:

python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'

12
import nltk
nltk.download('punkt')

เปิดพรอมต์ Python และเรียกใช้ข้อความข้างต้น

sent_tokenizeฟังก์ชั่นใช้ตัวอย่างของPunktSentenceTokenizerจาก nltk.tokenize.punktโมดูล อินสแตนซ์นี้ได้รับการฝึกอบรมแล้วและใช้ได้ดีกับภาษายุโรปหลายภาษา ดังนั้นจึงรู้ว่าเครื่องหมายวรรคตอนและอักขระใดทำเครื่องหมายจุดสิ้นสุดของประโยคและขึ้นต้นประโยคใหม่


9

สิ่งเดียวกันนี้เกิดขึ้นกับฉันเมื่อไม่นานมานี้คุณเพียงแค่ต้องดาวน์โหลดแพ็คเกจ "punkt" และควรใช้งานได้

เมื่อคุณดำเนินการ "รายการ" (l) หลังจาก "ดาวน์โหลดสิ่งที่มีทั้งหมด" ทุกอย่างจะถูกทำเครื่องหมายเหมือนบรรทัดต่อไปนี้หรือไม่:

[*] punkt............... Punkt Tokenizer Models

หากคุณเห็นบรรทัดนี้พร้อมกับดาวแสดงว่าคุณมีอยู่และ nltk ควรจะโหลดได้


1
สวัสดี @ supreeth-meka ฉันดีใจที่คุณพบวิธีแก้ปัญหานั่นคือสิ่งที่ฉันแนะนำคุณช่วยทำเครื่องหมายคำตอบของฉันว่า "ยอมรับแล้ว" ได้ไหม
eeelnico

5

ไปที่ python console โดยพิมพ์

$ python

ในเทอร์มินัลของคุณ จากนั้นพิมพ์ 2 คำสั่งต่อไปนี้ในไพ ธ อนเชลล์ของคุณเพื่อติดตั้งแพ็กเกจที่เกี่ยวข้อง:

>> nltk.download ('punkt') >> nltk.download ('aveverage_perceptron_tagger')

สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้



3

ฉันได้รับข้อผิดพลาดแม้ว่าจะนำเข้าสิ่งต่อไปนี้

import nltk
nltk.download()

แต่สำหรับ google colab สิ่งนี้ช่วยแก้ปัญหาของฉันได้

   !python3 -c "import nltk; nltk.download('all')"

2

ปัญหาของฉันคือฉันโทร nltk.download('all')เป็นผู้ใช้รูท แต่กระบวนการที่ใช้ nltk ในที่สุดก็เป็นผู้ใช้รายอื่นที่ไม่มีสิทธิ์เข้าถึง / root / nltk_data ที่ดาวน์โหลดเนื้อหา

ดังนั้นฉันเพียงแค่คัดลอกทุกอย่างซ้ำ ๆ จากตำแหน่งดาวน์โหลดไปยังหนึ่งในเส้นทางที่ NLTK ต้องการค้นหาสิ่งนี้:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data

2

nltk.download () อย่างง่ายจะไม่สามารถแก้ปัญหานี้ได้ ฉันลองด้านล่างและได้ผลสำหรับฉัน:

ในโฟลเดอร์ nltk สร้างโฟลเดอร์ tokenizers และคัดลอกโฟลเดอร์ punkt ของคุณไปยังโฟลเดอร์ tokenizers

จะได้ผล.! โครงสร้างโฟลเดอร์จะต้องเป็นดังที่แสดงในภาพ


2
  1. ดำเนินการรหัสต่อไปนี้:

    import nltk
    nltk.download()
    
  2. หลังจากนี้โปรแกรมดาวน์โหลด NLTK จะปรากฏขึ้น

  3. เลือกแพ็คเกจทั้งหมด
  4. ดาวน์โหลด punkt.

1

คุณต้องจัดเรียงโฟลเดอร์ของคุณใหม่ย้ายtokenizersโฟลเดอร์ของคุณไปไว้ในnltk_dataโฟลเดอร์ จะใช้ไม่ได้ถ้าคุณมีnltk_dataโฟลเดอร์ที่มีcorporaโฟลเดอร์ที่มี tokenizersโฟลเดอร์


1

สำหรับฉันสิ่งที่กล่าวมาข้างต้นไม่ได้ผลดังนั้นฉันจึงดาวน์โหลดไฟล์ทั้งหมดด้วยมือจากเว็บไซต์http://www.nltk.org/nltk_data/และฉันใส่ไฟล์ "tokenizers" ด้วยมือภายใน "nltk_data "โฟลเดอร์ ไม่ใช่วิธีการแก้ปัญหาที่สวยงาม แต่ยังคงเป็นทางออก


0

ฉันประสบปัญหาเดียวกัน หลังจากดาวน์โหลดทุกอย่างแล้วยังมีข้อผิดพลาด "punkt" อยู่ ฉันค้นหาแพ็คเกจบนเครื่อง windows ของฉันที่ C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers และฉันเห็น 'punkt.zip' อยู่ที่นั่น ฉันตระหนักว่ายังไม่ได้แตกไฟล์ zip ลงใน C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk เมื่อฉันแตกไฟล์ zip มันก็ทำงานเหมือนเพลง


0

ตรวจสอบให้แน่ใจว่าคุณกำลังใช้JupyterNotebook และในโน้ตบุ๊กให้ดำเนินการดังนี้:

import nltk

nltk.download()

จากนั้นหน้าต่างป๊อปอัปจะปรากฏขึ้น (แสดงข้อมูลhttps://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml ) จากนั้นคุณต้องดาวน์โหลดทุกอย่าง

จากนั้นรันโค้ดของคุณอีกครั้ง


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.