এটি কীভাবে কাজ করে তা নির্ধারণের কয়েক বছর পরে, এর আপডেট টিউটোরিয়ালটি এখানে দেওয়া হয়েছে
পাঠ্য ফাইলগুলির ডিরেক্টরি সহ এনএলটিকে কর্পস কীভাবে তৈরি করবেন?
মূল ধারণাটি হল nltk.corpus.reader প্যাকেজটি ব্যবহার করা । কেস আপনি textfiles একটি ডিরেক্টরি আছে ইংরেজি , এটা ব্যবহার করা সর্বোত্তম PlaintextCorpusReader ।
আপনার যদি এমন কোনও ডিরেক্টরি থাকে যা দেখতে এরকম দেখায়:
newcorpus/
file1.txt
file2.txt
...
কেবল কোডের এই লাইনগুলি ব্যবহার করুন এবং আপনি একটি কর্পাস পেতে পারেন:
import os
from nltk.corpus.reader.plaintext import PlaintextCorpusReader
corpusdir = 'newcorpus/'
newcorpus = PlaintextCorpusReader(corpusdir, '.*')
উল্লেখ্য: যে PlaintextCorpusReader
ডিফল্ট ব্যবহার করবে nltk.tokenize.sent_tokenize()
এবং nltk.tokenize.word_tokenize()
ইংরেজি জন্য বিল্ড বাক্য এবং শব্দ এবং এই ফাংশন মধ্যে আপনার গ্রন্থে বিভক্ত করতে হয়, তাহা হইলে না সমস্ত ভাষা জন্য কাজ করি।
পরীক্ষার পাঠ্য ফাইলগুলি তৈরি করার এবং এনএলটিকে দিয়ে একটি কর্পাস কীভাবে তৈরি করা যায় এবং বিভিন্ন স্তরে কর্পাসকে কীভাবে অ্যাক্সেস করা যায় তার সম্পূর্ণ কোড এখানে রয়েছে:
import os
from nltk.corpus.reader.plaintext import PlaintextCorpusReader
txt1 = """This is a foo bar sentence.\nAnd this is the first txtfile in the corpus."""
txt2 = """Are you a foo bar? Yes I am. Possibly, everyone is.\n"""
corpus = [txt1,txt2]
corpusdir = 'newcorpus/'
if not os.path.isdir(corpusdir):
os.mkdir(corpusdir)
filename = 0
for text in corpus:
filename+=1
with open(corpusdir+str(filename)+'.txt','w') as fout:
print>>fout, text
assert os.path.isdir(corpusdir)
for infile, text in zip(sorted(os.listdir(corpusdir)),corpus):
assert open(corpusdir+infile,'r').read().strip() == text.strip()
newcorpus = PlaintextCorpusReader('newcorpus/', '.*')
for infile in sorted(newcorpus.fileids()):
print infile
with newcorpus.open(infile) as fin:
print fin.read().strip()
print
print newcorpus.raw().strip()
print
print newcorpus.paras()
print
print newcorpus.paras(newcorpus.fileids()[0])
print newcorpus.sents()
print
print newcorpus.sents(newcorpus.fileids()[0])
print newcorpus.words()
print newcorpus.words(newcorpus.fileids()[0])
শেষ অবধি, পাঠ্যগুলির একটি ডিরেক্টরি পড়তে এবং অন্য ভাষায় একটি এনএলটিকে কর্পস তৈরি করতে, আপনাকে অবশ্যই প্রথমে নিশ্চিত করতে হবে যে আপনার কাছে পাইথন-কলযোগ্য শব্দ টোকেনাইজেশন এবং বাক্য টোকেনাইজেশন মডিউল রয়েছে যা স্ট্রিং / বেসস্ট্রিং ইনপুট নেয় এবং এই জাতীয় আউটপুট উত্পাদন করে:
>>> from nltk.tokenize import sent_tokenize, word_tokenize
>>> txt1 = """This is a foo bar sentence.\nAnd this is the first txtfile in the corpus."""
>>> sent_tokenize(txt1)
['This is a foo bar sentence.', 'And this is the first txtfile in the corpus.']
>>> word_tokenize(sent_tokenize(txt1)[0])
['This', 'is', 'a', 'foo', 'bar', 'sentence', '.']