Skip to content

Instantly share code, notes, and snippets.

@porimol
Created October 21, 2017 12:32
Show Gist options
  • Save porimol/80aa0755ff3fa2ea1d5f6e15cb60d42f to your computer and use it in GitHub Desktop.
Save porimol/80aa0755ff3fa2ea1d5f6e15cb60d42f to your computer and use it in GitHub Desktop.
Benglali stop words remove and sentence tokenization
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sentences Tokenization\n",
"['দুই নারী ভক্তকে ধর্ষণের দায়ে ২০ বছরের কারাদণ্ডাদেশপ্রাপ্ত ভারতের কথিত ধর্মগুরু গুরমিত রাম রহিম সিং ডেরায় কমপক্ষে দুই হাজার নারীকে ধর্ষণ জানিয়েছেন এক সাধ্বী', 'ইন্ডিয়া টিভি অনলাইনের প্রতিবেদনে হয়, নাম প্রকাশ শর্তে হরিয়ানায় সিরসার ডেরার সাধ্বী এক সাক্ষাৎকারে দাবি', 'সাধ্বী রাম রহিমের ডেরায় ৩০ বছর', 'সাক্ষাৎকারে সাধ্বী দাবি করেছেন, প্রতিদিন পাঁচ-ছয় ঘণ্টা পরপরই একজন নতুন মেয়েকে রাম রহিম ডেরায় ডেকে পাঠাতেন', '‘ভণ্ড বাবা’ ডেরায় কমপক্ষে দুই হাজার নারীকে ধর্ষণ', 'সাধ্বীর দাবি, রাম রহিমের অপকর্মের কথা মেয়েই মা-বাবাকে জানিয়েছিলেন', 'রাম রহিমের ওপর অগাধ বিশ্বাসের কারণে মেয়েদের কথা বিশ্বাস করতেন মা-বাবারা', 'সাক্ষাৎকারে রাম রহিমের পালিত কন্যা হানিপ্রীত সম্পর্কে সাধ্বী বলেছেন, পূর্বপরিকল্পিতভাবে হানিপ্রীতের বিয়ে দিয়েছিলেন রাম রহিম', 'এরপরে নকশা স্বামীর হানির বিবাহবিচ্ছেদ ঘটান', 'মানুষকে বিভ্রান্ত করতেই হানিপ্রীতকে পালিত কন্যা হিসেবে পরিচয়', 'হানি পালিত কন্যা নয়, আসলে রাম রহিমের প্রেমিকা', 'ডেরায় বাস সবাই এসব অপকর্ম সম্পর্কে জানতেন, সবাই নির্লিপ্ত', 'সাধ্বীর দাবি, রাম রহিমের বিলাসবহুল ডেরার ভেতর গোপন গুহা যৌন গুহা', 'গুহার খোলা জানালা ডেরার মেয়েদের পছন্দ করতেন', 'পছন্দের মেয়েকে ধর্ষণ করতেন', 'ধর্ষণের অন্তঃসত্ত্বা মেয়েদের জোর গর্ভপাত করাতেন', 'ডেরার হাজারো মেয়ের গর্ভপাত করানো', 'প্রথম পাঞ্জাবের বাথিন্ডার এলাকায় গর্ভপাত করানো হতো', 'রাম রহিম ডেরার ভেতর হাসপাতাল চালু গর্ভপাত করাতেন', 'গত ২৫ আগস্ট দুই নারী ভক্তকে ধর্ষণের অভিযোগে মামলায় দোষী সাব্যস্ত রাম রহিমকে', 'এরপর রোহতক শহর ১০ কিলোমিটার দূরের সানোরিয়া কারাগারে', 'রাম রহিমের সমর্থকেরা পঞ্চকুলা এলাকায় তাণ্ডব শুরু', 'পুলিশের দফায় দফায় সংঘর্ষে ৩১ নিহত ২৫০ আহত', 'গত ২৮ আগস্ট রাম রহিমকে মামলায় ১০ বছর ২০ বছরের কারাদণ্ডাদেশ সিবিআই আদালত', 'এদিকে শনিবার রাম রহিমের বিরুদ্ধে সাংবাদিক রামচন্দ্র ছত্রপতি সাবেক ডেরা ব্যবস্থাপক রণজিৎ সিং হত্যা মামলার শুনানি শুরু', 'রোহতাকের সানোরিয়া কারাগার ভিডিও কনফারেন্সের শুনানিতে অংশ নেবেন', 'কারণে হরিয়ানার পঞ্চকুলায় আবারও নিরাপত্তাব্যবস্থা জোরদার', '']\n",
"\n",
"Words Tokenization\n",
"[['দুই', 'নারী', 'ভক্তকে', 'ধর্ষণের', 'দায়ে', '২০', 'বছরের', 'কারাদণ্ডাদেশপ্রাপ্ত', 'ভারতের', 'কথিত', 'ধর্মগুরু', 'গুরমিত', 'রাম', 'রহিম', 'সিং', 'ডেরায়', 'কমপক্ষে', 'দুই', 'হাজার', 'নারীকে', 'ধর্ষণ', 'জানিয়েছেন', 'এক', 'সাধ্বী'], ['ইন্ডিয়া', 'টিভি', 'অনলাইনের', 'প্রতিবেদনে', 'হয়,', 'নাম', 'প্রকাশ', 'শর্তে', 'হরিয়ানায়', 'সিরসার', 'ডেরার', 'সাধ্বী', 'এক', 'সাক্ষাৎকারে', 'দাবি'], ['সাধ্বী', 'রাম', 'রহিমের', 'ডেরায়', '৩০', 'বছর'], ['সাক্ষাৎকারে', 'সাধ্বী', 'দাবি', 'করেছেন,', 'প্রতিদিন', 'পাঁচ-ছয়', 'ঘণ্টা', 'পরপরই', 'একজন', 'নতুন', 'মেয়েকে', 'রাম', 'রহিম', 'ডেরায়', 'ডেকে', 'পাঠাতেন'], ['‘ভণ্ড', 'বাবা’', 'ডেরায়', 'কমপক্ষে', 'দুই', 'হাজার', 'নারীকে', 'ধর্ষণ'], ['সাধ্বীর', 'দাবি,', 'রাম', 'রহিমের', 'অপকর্মের', 'কথা', 'মেয়েই', 'মা-বাবাকে', 'জানিয়েছিলেন'], ['রাম', 'রহিমের', 'ওপর', 'অগাধ', 'বিশ্বাসের', 'কারণে', 'মেয়েদের', 'কথা', 'বিশ্বাস', 'করতেন', 'মা-বাবারা'], ['সাক্ষাৎকারে', 'রাম', 'রহিমের', 'পালিত', 'কন্যা', 'হানিপ্রীত', 'সম্পর্কে', 'সাধ্বী', 'বলেছেন,', 'পূর্বপরিকল্পিতভাবে', 'হানিপ্রীতের', 'বিয়ে', 'দিয়েছিলেন', 'রাম', 'রহিম'], ['এরপরে', 'নকশা', 'স্বামীর', 'হানির', 'বিবাহবিচ্ছেদ', 'ঘটান'], ['মানুষকে', 'বিভ্রান্ত', 'করতেই', 'হানিপ্রীতকে', 'পালিত', 'কন্যা', 'হিসেবে', 'পরিচয়'], ['হানি', 'পালিত', 'কন্যা', 'নয়,', 'আসলে', 'রাম', 'রহিমের', 'প্রেমিকা'], ['ডেরায়', 'বাস', 'সবাই', 'এসব', 'অপকর্ম', 'সম্পর্কে', 'জানতেন,', 'সবাই', 'নির্লিপ্ত'], ['সাধ্বীর', 'দাবি,', 'রাম', 'রহিমের', 'বিলাসবহুল', 'ডেরার', 'ভেতর', 'গোপন', 'গুহা', 'যৌন', 'গুহা'], ['গুহার', 'খোলা', 'জানালা', 'ডেরার', 'মেয়েদের', 'পছন্দ', 'করতেন'], ['পছন্দের', 'মেয়েকে', 'ধর্ষণ', 'করতেন'], ['ধর্ষণের', 'অন্তঃসত্ত্বা', 'মেয়েদের', 'জোর', 'গর্ভপাত', 'করাতেন'], ['ডেরার', 'হাজারো', 'মেয়ের', 'গর্ভপাত', 'করানো'], ['প্রথম', 'পাঞ্জাবের', 'বাথিন্ডার', 'এলাকায়', 'গর্ভপাত', 'করানো', 'হতো'], ['রাম', 'রহিম', 'ডেরার', 'ভেতর', 'হাসপাতাল', 'চালু', 'গর্ভপাত', 'করাতেন'], ['গত', '২৫', 'আগস্ট', 'দুই', 'নারী', 'ভক্তকে', 'ধর্ষণের', 'অভিযোগে', 'মামলায়', 'দোষী', 'সাব্যস্ত', 'রাম', 'রহিমকে'], ['এরপর', 'রোহতক', 'শহর', '১০', 'কিলোমিটার', 'দূরের', 'সানোরিয়া', 'কারাগারে'], ['রাম', 'রহিমের', 'সমর্থকেরা', 'পঞ্চকুলা', 'এলাকায়', 'তাণ্ডব', 'শুরু'], ['পুলিশের', 'দফায়', 'দফায়', 'সংঘর্ষে', '৩১', 'নিহত', '২৫০', 'আহত'], ['গত', '২৮', 'আগস্ট', 'রাম', 'রহিমকে', 'মামলায়', '১০', 'বছর', '২০', 'বছরের', 'কারাদণ্ডাদেশ', 'সিবিআই', 'আদালত'], ['এদিকে', 'শনিবার', 'রাম', 'রহিমের', 'বিরুদ্ধে', 'সাংবাদিক', 'রামচন্দ্র', 'ছত্রপতি', 'সাবেক', 'ডেরা', 'ব্যবস্থাপক', 'রণজিৎ', 'সিং', 'হত্যা', 'মামলার', 'শুনানি', 'শুরু'], ['রোহতাকের', 'সানোরিয়া', 'কারাগার', 'ভিডিও', 'কনফারেন্সের', 'শুনানিতে', 'অংশ', 'নেবেন'], ['কারণে', 'হরিয়ানার', 'পঞ্চকুলায়', 'আবারও', 'নিরাপত্তাব্যবস্থা', 'জোরদার'], []]\n"
]
}
],
"source": [
"import re\n",
"\n",
"class BengaliSentTok:\n",
"\n",
" def bn_corpus(self):\n",
" with open('bangla_corpus.txt', 'r') as bn:\n",
" bn_paragraphs = \"\".join(bn.readlines())\n",
" \n",
" return bn_paragraphs.strip('\\n')\n",
"\n",
" \n",
" def bn_stop_words(self):\n",
" with open('stop_words.txt', 'r') as bn_stw:\n",
" bn_stop_words = \"\".join(bn_stw.readlines()) \n",
"\n",
" return set(bn_stop_words.split())\n",
" \n",
" \n",
" def file_write(self, token_list):\n",
" \n",
" with open('tokenized.txt', 'w') as file:\n",
" for index, token in enumerate(token_list):\n",
" file.write(str(index+1)+') '+token+'। \\n')\n",
"\n",
" \n",
" def bn_sentence_tok(self, pattern):\n",
" corpus = self.bn_corpus()\n",
" bn_tokens = re.split(pattern, corpus)\n",
" sentence_token = []\n",
" \n",
" for sentences in bn_tokens:\n",
" word_list = sentences.split()\n",
" sent = ' '.join([word for word in word_list if word not in bn_tok.bn_stop_words()])\n",
" sentence_token.append(sent)\n",
" \n",
" # call file writer function\n",
" # self.file_write(sentence_token)\n",
" \n",
" return sentence_token\n",
"\n",
" def bn_word_tok(self, pattern):\n",
" word_tokens = []\n",
" \n",
" for sent_token in self.bn_sentence_tok(pattern):\n",
" word_list = sent_token.split()\n",
" \n",
" word_tokens.append(word_list)\n",
" \n",
" return word_tokens\n",
" \n",
"if __name__ == \"__main__\":\n",
" \n",
" pattern = r'[?|।!]'\n",
" bn_tok = BengaliSentTok()\n",
" print('Sentences Tokenization')\n",
" print(bn_tok.bn_sentence_tok(pattern))\n",
" print('\\nWords Tokenization')\n",
" print(bn_tok.bn_word_tok(pattern))"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1) দুই নারী ভক্তকে ধর্ষণের দায়ে ২০ বছরের কারাদণ্ডাদেশপ্রাপ্ত ভারতের কথিত ধর্মগুরু গুরমিত রাম রহিম সিং ডেরায় কমপক্ষে দুই হাজার নারীকে ধর্ষণ জানিয়েছেন এক সাধ্বী\n",
"2) ইন্ডিয়া টিভি অনলাইনের প্রতিবেদনে হয়, নাম প্রকাশ শর্তে হরিয়ানায় সিরসার ডেরার সাধ্বী এক সাক্ষাৎকারে দাবি\n",
"3) সাধ্বী রাম রহিমের ডেরায় ৩০ বছর\n",
"4) সাক্ষাৎকারে সাধ্বী দাবি করেছেন, প্রতিদিন পাঁচ-ছয় ঘণ্টা পরপরই একজন নতুন মেয়েকে রাম রহিম ডেরায় ডেকে পাঠাতেন\n",
"5) ‘ভণ্ড বাবা’ ডেরায় কমপক্ষে দুই হাজার নারীকে ধর্ষণ\n",
"6) সাধ্বীর দাবি, রাম রহিমের অপকর্মের কথা মেয়েই মা-বাবাকে জানিয়েছিলেন\n",
"7) রাম রহিমের ওপর অগাধ বিশ্বাসের কারণে মেয়েদের কথা বিশ্বাস করতেন মা-বাবারা\n",
"8) সাক্ষাৎকারে রাম রহিমের পালিত কন্যা হানিপ্রীত সম্পর্কে সাধ্বী বলেছেন, পূর্বপরিকল্পিতভাবে হানিপ্রীতের বিয়ে দিয়েছিলেন রাম রহিম\n",
"9) এরপরে নকশা স্বামীর হানির বিবাহবিচ্ছেদ ঘটান\n",
"10) মানুষকে বিভ্রান্ত করতেই হানিপ্রীতকে পালিত কন্যা হিসেবে পরিচয়\n",
"11) হানি পালিত কন্যা নয়, আসলে রাম রহিমের প্রেমিকা\n",
"12) ডেরায় বাস সবাই এসব অপকর্ম সম্পর্কে জানতেন, সবাই নির্লিপ্ত\n",
"13) সাধ্বীর দাবি, রাম রহিমের বিলাসবহুল ডেরার ভেতর গোপন গুহা যৌন গুহা\n",
"14) গুহার খোলা জানালা ডেরার মেয়েদের পছন্দ করতেন\n",
"15) পছন্দের মেয়েকে ধর্ষণ করতেন\n",
"16) ধর্ষণের অন্তঃসত্ত্বা মেয়েদের জোর গর্ভপাত করাতেন\n",
"17) ডেরার হাজারো মেয়ের গর্ভপাত করানো\n",
"18) প্রথম পাঞ্জাবের বাথিন্ডার এলাকায় গর্ভপাত করানো হতো\n",
"19) রাম রহিম ডেরার ভেতর হাসপাতাল চালু গর্ভপাত করাতেন\n",
"20) গত ২৫ আগস্ট দুই নারী ভক্তকে ধর্ষণের অভিযোগে মামলায় দোষী সাব্যস্ত রাম রহিমকে\n",
"21) এরপর রোহতক শহর ১০ কিলোমিটার দূরের সানোরিয়া কারাগারে\n",
"22) রাম রহিমের সমর্থকেরা পঞ্চকুলা এলাকায় তাণ্ডব শুরু\n",
"23) পুলিশের দফায় দফায় সংঘর্ষে ৩১ নিহত ২৫০ আহত\n",
"24) গত ২৮ আগস্ট রাম রহিমকে মামলায় ১০ বছর ২০ বছরের কারাদণ্ডাদেশ সিবিআই আদালত\n",
"25) এদিকে শনিবার রাম রহিমের বিরুদ্ধে সাংবাদিক রামচন্দ্র ছত্রপতি সাবেক ডেরা ব্যবস্থাপক রণজিৎ সিং হত্যা মামলার শুনানি শুরু\n",
"26) রোহতাকের সানোরিয়া কারাগার ভিডিও কনফারেন্সের শুনানিতে অংশ নেবেন\n",
"27) কারণে হরিয়ানার পঞ্চকুলায় আবারও নিরাপত্তাব্যবস্থা জোরদার\n",
"28) \n"
]
}
],
"source": [
"pattern = r'[?|।!]'\n",
"\n",
"bn_tok = BengaliSentTok()\n",
"for index, tok in enumerate(bn_tok.bn_sentence_tok(pattern)):\n",
" print(str(index+1)+') '+tok)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment