Nltk.data.load দিয়ে ইংলিশ.পিকল লোড করা ব্যর্থ


144

punktটোকনাইজারটি লোড করার চেষ্টা করার সময় ...

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

... একটি LookupErrorউত্থাপিত হয়েছিল:

> LookupError: 
>     *********************************************************************   
> Resource 'tokenizers/punkt/english.pickle' not found.  Please use the NLTK Downloader to obtain the resource: nltk.download().   Searched in:
>         - 'C:\\Users\\Martinos/nltk_data'
>         - 'C:\\nltk_data'
>         - 'D:\\nltk_data'
>         - 'E:\\nltk_data'
>         - 'E:\\Python26\\nltk_data'
>         - 'E:\\Python26\\lib\\nltk_data'
>         - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
>     **********************************************************************

2
আপনি ব্যবহার করে আচারের মডেলটি ডাউনলোড করতে পারেন>>> nltk.download()
আলভাস

উত্তর:


261

আমারও একই সমস্যা ছিল অজগর শেলের মধ্যে গিয়ে টাইপ করুন:

>>> import nltk
>>> nltk.download()

তারপরে একটি ইনস্টলেশন উইন্ডো উপস্থিত হবে। 'মডেলস' ট্যাবে যান এবং 'আইডেন্টিফায়ার' কলামের নীচে 'পাঙ্কট' নির্বাচন করুন। তারপরে ডাউনলোড ক্লিক করুন এবং এটি প্রয়োজনীয় ফাইলগুলি ইনস্টল করবে। তাহলে এটা কাজ করা উচিত!


4
মনে রাখবেন যে কয়েকটি সংস্করণে, কোনও মডেল ট্যাব নেই এবং আপনি 'ডাউনলোড' এ গিয়ে প্যাকেজটি 'পাঙ্কট' পেতে বা উপলব্ধ প্যাকেজগুলির তালিকা তৈরি করতে কোনও 'তালিকা' বিকল্প ব্যবহার করতে পারেন।
ইলি

2
এটি একটি ডিরেক্টরিতে আমার বাড়ির ফোল্ডারে ইনস্টল করে nltk_data। আমার কি পাঙ্ক্টের এই ডিরেক্টরিটি কোনও এনল্টক লাইব্রেরি ফোল্ডারে কপি করা উচিত?
প্লিজ

আপনি কি বোঝাতে চাচ্ছেন তা আমি নিশ্চিত নই. tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')তারপর কাজ এবং আপনি এখন মত tokenizer ব্যবহার করতে পারেন উচিত: tokenizer.tokenize('The cat. The mat. It Sat.')। এখানে nltk tokenizers/punkt/english.pickleবেশ কয়েকটি অবস্থানের বিরুদ্ধে আপেক্ষিক পথটি সমাধান করার চেষ্টা করে । উদাহরণস্বরূপ উইন্ডোজে এটি দেখতে %APPDATA%\nltk_data\tokenizers\punkt\english.pickleবা C:\nltk_data\tokenizers\punkt\english.pickle(ডি: এবং ই :) এর সমান)। সুতরাং আপনি যদি নিশ্চিত হন যে পাঙ্কট.জিপ ফাইলটি এমনভাবে যেভাবে এই স্থানগুলির মধ্যে একটি বিদ্যমান রয়েছে তবে আনজিপ করা আছে, এটি এটি সন্ধান করতে সক্ষম হওয়া উচিত।
সমৃদ্ধ 21

বিকল্পভাবে, আপনার NLTK_DATAপরিবেশ পরিবর্তনশীলটিকে nltk_data ফোল্ডারটি নির্দেশ করতে সেট করুন যাতে %NLTK_DATA%\tokenizers\punkt\english.pickleউপস্থিত থাকে।
সমৃদ্ধ 21

যদি কোনও নন-এক্স-উইন্ডো সিস্টেমে চলছে (উদাহরণস্বরূপ কোনও sshসংযোগের উপরে ) কোনও জিইউআই উইন্ডো থাকবে না এবং এভাবে কোনও 'মডেল' ট্যাব থাকবে না।
mknaf

95

আপনি এই মত করতে পারেন।

import nltk
nltk.download('punkt')

from nltk import word_tokenize,sent_tokenize

আপনি ফাংশনে punktআর্গুমেন্ট হিসাবে পাস করে টোকেনাইজারগুলি ডাউনলোড করতে পারেন download। শব্দ এবং বাক্য টোকেনাইজারগুলি তখন উপলব্ধ nltk

আপনি ডাউনলোড সবকিছু অর্থাত করতে চান chunkers, grammars, misc, sentiment, taggers, corpora, help, models, stemmers, tokenizers, ভালো কোনো আর্গুমেন্ট পাস না।

nltk.download()

আরও অন্তর্দৃষ্টি জন্য এটি দেখুন। https://www.nltk.org/data.html


1
কোড কেবলমাত্র উত্তরগুলি খুব উচ্চারণ করে। আপনার উত্তর আরও ব্যাখ্যা যোগ করুন। কিভাবে এই কাজ করে? কেন এটি দরকারী?
রাবারডাক

এটি যা করে তা হ'ল এনলেটকে কোনও টোকেনাইজেশন কাজ করার অনুমতি দেওয়ার জন্য প্রয়োজনীয় লাইব্রেরিগুলি ডাউনলোড করা।
ইতজিক গিলি

টোকিনাইজার কীভাবে ব্যবহার করবেন?
ভাগ্যবান হ্যান্ডলার

python -c "import nltk; nltk.download('punkt')" [nltk_data] Downloading package punkt to /home/my_user/nltk_data... [nltk_data] Error downloading 'punkt' from [nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh- [nltk_data] pages/packages/tokenizers/punkt.zip>: HTTP Error [nltk_data] 503: first byte timeout
mrgloom

27

এই মুহূর্তে আমার জন্য এটি কাজ করেছে:

# Do this in a separate python interpreter session, since you only have to do it once
import nltk
nltk.download('punkt')

# Do this in your ipython notebook or analysis script
from nltk.tokenize import word_tokenize

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

sentences_tokenized = []
for s in sentences:
    sentences_tokenized.append(word_tokenize(s))

বাক্য_ টোকেনাইজড হ'ল টোকেনগুলির তালিকার একটি তালিকা:

[['Mr.', 'Green', 'killed', 'Colonel', 'Mustard', 'in', 'the', 'study', 'with', 'the', 'candlestick', '.', 'Mr.', 'Green', 'is', 'not', 'a', 'very', 'nice', 'fellow', '.'],
['Professor', 'Plum', 'has', 'a', 'green', 'plant', 'in', 'his', 'study', '.'],
['Miss', 'Scarlett', 'watered', 'Professor', 'Plum', "'s", 'green', 'plant', 'while', 'he', 'was', 'away', 'from', 'his', 'office', 'last', 'week', '.']]

বাক্যগুলি "মাইনিং দ্য সোশ্যাল ওয়েব, ২ য় সংস্করণ" বইয়ের সাথে আইপথন নোটবুকের উদাহরণ থেকে নেওয়া হয়েছে


16

বাশ কমান্ড লাইন থেকে, চালান:

$ python -c "import nltk; nltk.download('punkt')"

আমি [nltk_data] পাঙ্ক লোড করার সময় ত্রুটি পেয়েছি: HTTP ত্রুটি 405: অনুমোদিত নয়।
ব্যবহারকারী 2478236

1
@ ব্যবহারকারী 2478236 গিটিহাব অনেক সময় অত্যন্ত উচ্চ পরিমাণের কারণে ডাউনলোডারটিকে এইচটিটিপি 405 দিয়ে ব্লক করে আসছে; দেখতে github.com/nltk/nltk/issues/1787
জন Vandenberg

1
আমার জন্য কাজ করা, এটি nltk_dataআমার বাড়ির দির মধ্যে ফোল্ডার তৈরি করে এবং এতে পাঙ্কটি সংরক্ষণ করে। আমার ফেডোরা 27, পাই 3.6 রয়েছে।
এমএনকিউআর


9

সরল nltk.download()এই সমস্যাটি সমাধান করবে না। আমি নীচে চেষ্টা করেছিলাম এবং এটি আমার জন্য কাজ করেছে:

মধ্যে nltkফোল্ডারের একটি তৈরি tokenizersফোল্ডার এবং আপনার কপি punktমধ্যে ফোল্ডারের tokenizersফোল্ডার।

এই কাজ করবে।! ফোল্ডারের কাঠামো ছবিতে যেমন দেখানো দরকার! 1


1
এটি আমার পক্ষে কাজ করে, আমার ক্ষেত্রে আমি nltk.download এর মাধ্যমে ডাউনলোড করতে পারিনি ... তাই আমি nltk.org/nltk_data থেকে ফাইলটি ম্যানুয়ালি ডাউনলোড করেছি এবং সি: / nltk_data / টোকেনাইজার / পাঙ্ক্ট একটি ফোল্ডার তৈরি করেছি এবং আমি সমস্তগুলি অনুলিপি করেছি এই স্থানে ফাইলগুলি
ফর্মিন পিটল

6

nltk এর প্রাক-প্রশিক্ষিত টোকেনাইজার মডেল রয়েছে। মডেলটি অভ্যন্তরীণভাবে পূর্বনির্ধারিত ওয়েব উত্স থেকে ডাউনলোড করছে এবং নিম্নলিখিত সম্ভাব্য ফাংশন কলগুলি সম্পাদন করার সময় ইনস্টলড এনল্টেকে প্যাকেজের পথে সংরক্ষণ করা হবে।

যেমন 1 টোকেনাইজার = nltk.data.load ('nltk: টোকেনাইজার / পাঙ্ক / ইংলিশ.পিক্লে')

উদাহরণস্বরূপ 2 নল্টকডাউনলোড ('পাঙ্কট')

আপনি যদি আপনার কোডটিতে উপরের বাক্যটি কল করেন তবে নিশ্চিত করুন যে কোনও ফায়ারওয়াল সুরক্ষা ছাড়াই আপনার ইন্টারনেট সংযোগ রয়েছে।

আমি উপরের সমস্যাটি আরও ভাল গভীর বোঝার সাথে সমাধানের জন্য আরও কিছু ভালতর অল্টার-নেট ভাগ করতে চাই।

দয়া করে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন এবং ইংলিশ শব্দ টোকেনাইজেশন এনটিলেটকে ব্যবহার করে উপভোগ করুন।

পদক্ষেপ 1: ওয়েব পথ অনুসরণ করে প্রথমে "english.pickle" মডেলটি ডাউনলোড করুন।

" Http://www.nltk.org/nltk_data/ " লিঙ্কটি যান এবং "107 বিকল্পে" ডাউনলোড "ক্লিক করুন Pun পাঙ্ক্ট টোকেনাইজার মডেলগুলি"

পদক্ষেপ 2: ডাউনলোড করা "পাঙ্কট.জিপ" ফাইলটি বের করুন এবং সেখান থেকে "ইংলিশ.পিক্লে" ফাইলটি সন্ধান করুন এবং সি ড্রাইভে রাখুন।

পদক্ষেপ 3: নিম্নলিখিত কোডটি অনুলিপি করুন এবং সম্পাদন করুন।

from nltk.data import load
from nltk.tokenize.treebank import TreebankWordTokenizer

sentences = [
    "Mr. Green killed Colonel Mustard in the study with the candlestick. Mr. Green is not a very nice fellow.",
    "Professor Plum has a green plant in his study.",
    "Miss Scarlett watered Professor Plum's green plant while he was away from his office last week."
]

tokenizer = load('file:C:/english.pickle')
treebank_word_tokenize = TreebankWordTokenizer().tokenize

wordToken = []
for sent in sentences:
    subSentToken = []
    for subSent in tokenizer.tokenize(sent):
        subSentToken.extend([token for token in treebank_word_tokenize(subSent)])

    wordToken.append(subSentToken)

for token in wordToken:
    print token

আপনি যদি কোনও সমস্যার মুখোমুখি হন তবে আমাকে জানান


আপনি খুব আক্রমণাত্মক ফায়ারওয়ালের পিছনে থাকলে সত্যিই দুর্দান্ত উত্তর।
করিয়াতো

5

জেনকিনসে এটি বিল্ড ট্যাবের অধীনে ভার্চুয়ালেনভ বিল্ডারে কোডের মতো কোড যুক্ত করে ঠিক করা যেতে পারে :

python -m nltk.downloader punkt

এখানে চিত্র বর্ণনা লিখুন


4

আমি যখন এনটিএলটিকে পোস্ট ট্যাগ করার চেষ্টা করছিলাম তখন আমি এই সমস্যাটি পেলাম। আমি যেভাবে এটি সঠিকভাবে পেয়েছি তা হ'ল "ট্যাগার্স" নামের কর্পোরো ডিরেক্টরি সহ একটি নতুন ডিরেক্টরি তৈরি করা এবং ডিরেক্টরি ট্যাগারে ম্যাক্স_পোস_ট্যাগার অনুলিপি করা।
আশা করি এটি আপনার জন্যও কাজ করে। এটাতে তোমার ভাগ্য সুপ্রসন্ন হোক!!!.


4

স্পাইডারে আপনার অ্যাক্টিভ শেলটিতে যান এবং নীচে ২ টি কমান্ড ব্যবহার করে এনলেটকে ডাউনলোড করুন। Import nltk nltk.download () তারপরে আপনার নীচের মতো এনএলটিকে ডাউনলোডার উইন্ডোটি দেখতে পাওয়া উচিত, এই উইন্ডোতে 'মডেলগুলি' ট্যাবে যান এবং 'পাঙ্কট' ক্লিক করুন এবং 'পাঙ্কট' ডাউনলোড করুন

জানলা


0

আপনার সমস্ত NLTK লাইব্রেরি আছে কিনা তা পরীক্ষা করে দেখুন।


0

পাঙ্ক টোকেনাইজার ডেটা 35 এমবি-র উপরে বেশ বড় , এটি আমার পক্ষে যদি আপনি যেমন লম্বদা যেমন একটি সীমাবদ্ধ সংস্থান আছে এমন পরিবেশে এনলটেক চালাচ্ছেন তবে তা বড় কথা হতে পারে।

আপনার যদি কেবলমাত্র এক বা সম্ভবত কয়েকটি ভাষার টোকেনাইজার প্রয়োজন হয় তবে আপনি কেবলমাত্র সেই ভাষা .pickleফাইলগুলি অন্তর্ভুক্ত করে ডেটার আকারকে মারাত্মকভাবে হ্রাস করতে পারেন ।

যদি আপনার কেবলমাত্র ইংলিশ সমর্থন করতে হয় তবে আপনার এনল্টক ডেটার আকার 407 কেবি (পাইথন 3 সংস্করণের জন্য) এ হ্রাস করা যেতে পারে ।

ধাপ

  1. Nltk পাঙ্ক ডেটা ডাউনলোড করুন: https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/packages/tokenis/punkt.zip
  2. আপনার পরিবেশের কোথাও ফোল্ডারগুলি তৈরি করুন:, nltk_data/tokenizers/punktপাইথন 3 ব্যবহার করা হলে অন্য একটি ফোল্ডার যুক্ত করুন PY3যাতে আপনার নতুন ডিরেক্টরি কাঠামো দেখতে লাগে nltk_data/tokenizers/punkt/PY3। আমার ক্ষেত্রে আমি এই প্রকল্পগুলি আমার প্রকল্পের মূলে তৈরি করেছি।
  3. জিপটি এক্সট্রাক্ট করুন এবং আপনি সবে তৈরি .pickleকরা punktফোল্ডারে যে ভাষাগুলি সমর্থন করতে চান তার জন্য ফাইলগুলি সরান । দ্রষ্টব্য: পাইথন 3 ব্যবহারকারীদের PY3ফোল্ডার থেকে আচার ব্যবহার করা উচিত । আপনার ভাষার ফাইল লোড হওয়ার সাথে এটি এমন কিছু দেখতে পাওয়া উচিত: উদাহরণ-ফোল্ডার-স্টাকচার uct
  4. এখন আপনাকে কেবলমাত্র আপনার nltk_dataফোল্ডারটিকে অনুসন্ধানের পথে যুক্ত করতে হবে, ধরে নেওয়া আপনার ডেটা পূর্বনির্ধারিত অনুসন্ধানের পথে নেই । আপনি পরিবেশের পরিবর্তনশীল হয় ব্যবহার করে আপনার ডেটা যুক্ত করতে পারেন NLTK_DATA='path/to/your/nltk_data'। অজগরটিতে রানটাইমের সময় আপনি একটি কাস্টম পাথ যুক্ত করতে পারেন:
from nltk import data
data.path += ['/path/to/your/nltk_data']

দ্রষ্টব্য: রানটাইমের সময় আপনার যদি ডেটা লোড করার প্রয়োজন হয় না বা আপনার কোডের সাহায্যে ডেটা বান্ডিল করার প্রয়োজন না nltk_dataহয় তবে এনটিএলকে যে বিল্ট-ইন লোকস সন্ধান করা হয় সেখানে আপনার ফোল্ডারগুলি তৈরি করা ভাল ।


0

nltk.download()এই সমস্যাটি সমাধান করবে না। আমি নীচে চেষ্টা করেছিলাম এবং এটি আমার জন্য কাজ করেছে:

মধ্যে '...AppData\Roaming\nltk_data\tokenizers'ফোল্ডার নির্যাস ডাউনলোড করা punkt.zipএকই অবস্থানে ফোল্ডার।


0

ইন Python-3.6আমি ট্রেসব্যাকে পরামর্শটি দেখতে পাচ্ছি। এটি বেশ সহায়ক। তাই আমি বলব যে আপনি যে ত্রুটিটি পেয়েছেন তার প্রতি মনোযোগ দিন, বেশিরভাগ সময় উত্তরগুলি সেই সমস্যার মধ্যে রয়েছে;)।

এখানে চিত্র বর্ণনা লিখুন

এবং তারপরে এখানে অন্যান্য লোকেরা পরামর্শ দিয়েছিল হয় হয় পাইথন টার্মিনাল ব্যবহার করে বা একটি কমান্ড ব্যবহার করে যেমন python -c "import nltk; nltk.download('wordnet')"আমরা উড়তে তাদের ইনস্টল করতে পারি। আপনাকে কেবল একবার এই আদেশটি চালানো দরকার এবং তারপরে এটি আপনার হোম ডিরেক্টরিতে স্থানীয়ভাবে ডেটা সংরক্ষণ করবে।


0

একাধিক ডাউনলোডের জন্য একটি নির্ধারিত ফোল্ডারটি ব্যবহার করার সময় আমার একই সমস্যা ছিল এবং আমাকে নিজেই ডেটা পাথটি সংযুক্ত করতে হয়েছিল:

একক ডাউনলোড, অনুসরণ হিসাবে প্রাপ্ত করা যেতে পারে (কাজ)

import os as _os
from nltk.corpus import stopwords
from nltk import download as nltk_download

nltk_download('stopwords', download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)

stop_words: list = stopwords.words('english')

এই কোডটি কাজ করে, যার অর্থ এনল্টক ডাউনলোড ফક્શનে পাস করা ডাউনলোডের পথটি মনে করে। অন্যান্য ন্যাডগুলিতে আমি যদি পরবর্তী প্যাকেজটি ডাউনলোড করি তবে আমি ব্যবহারকারী দ্বারা বর্ণিত অনুরূপ ত্রুটি পেয়েছি:

একাধিক ডাউনলোড ত্রুটি বাড়ায়:

import os as _os

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

from nltk import download as nltk_download

nltk_download(['stopwords', 'punkt'], download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)

print(stopwords.words('english'))
print(word_tokenize("I am trying to find the download path 99."))

ত্রুটি:

সংস্থান পাঙ্ক পাওয়া যায় নি। রিসোর্সটি পেতে NLTK ডাউনলোডার ব্যবহার করুন:

আমদানি করুন nltk nltk.download ('পাঙ্কট')

এখন আমি যদি আমার ডাউনলোডের পাথের সাথে এনটিএলকে ডেটা পাথ যুক্ত করি তবে এটি কাজ করে:

import os as _os

from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize

from nltk import download as nltk_download
from nltk.data import path as nltk_path


nltk_path.append( _os.path.join(get_project_root_path(), 'temp'))


nltk_download(['stopwords', 'punkt'], download_dir=_os.path.join(get_project_root_path(), 'temp'), raise_on_error=True)

print(stopwords.words('english'))
print(word_tokenize("I am trying to find the download path 99."))

এটি কাজ করে ... নিশ্চিত নয় যে কেন একটি ক্ষেত্রে কাজ করে তবে অন্যটি নয়, তবে ত্রুটি বার্তাটি বোঝায় যে এটি দ্বিতীয়বার ডাউনলোড ফোল্ডারে চেক করে না। এনবি: উইন্ডোজ 8.1 / পাইথন 3.7 / এনল্টেকে 3.5 ব্যবহার করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.