diff --git a/README.rst b/README.rst index 21373ba7..0ce0c500 100644 --- a/README.rst +++ b/README.rst @@ -234,6 +234,7 @@ Features uk Ukrainian vi Vietnamese zh Chinese + bn Bengali Get it now diff --git a/docs/index.rst b/docs/index.rst index 111ae633..c66a7a17 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -231,6 +231,7 @@ Features uk Ukrainian vi Vietnamese zh Chinese + bn Bengali Get it now diff --git a/docs/user_guide/quickstart.rst b/docs/user_guide/quickstart.rst index 24fe07b6..4c402d2e 100644 --- a/docs/user_guide/quickstart.rst +++ b/docs/user_guide/quickstart.rst @@ -291,3 +291,4 @@ of popular news source urls.. In case you need help choosing a news source! ja Japanese be Belarusian lt Lithuanian + bn Bengali diff --git a/newspaper/configuration.py b/newspaper/configuration.py index 94688e70..132ddc14 100644 --- a/newspaper/configuration.py +++ b/newspaper/configuration.py @@ -13,7 +13,7 @@ import logging from .parsers import Parser -from .text import (StopWords, StopWordsArabic, StopWordsChinese, +from .text import (StopWords, StopWordsArabic, StopWordsBengali, StopWordsChinese, StopWordsKorean, StopWordsHindi, StopWordsJapanese, StopWordsThai) from .version import __version__ @@ -116,6 +116,8 @@ def get_stopwords_class(language): return StopWordsArabic elif language == 'ja': return StopWordsJapanese + elif language == 'bn': + return StopWordsBengali elif language == 'th': return StopWordsThai return StopWords diff --git a/newspaper/resources/text/stopwords-bn.txt b/newspaper/resources/text/stopwords-bn.txt new file mode 100644 index 00000000..9dc1bfcb --- /dev/null +++ b/newspaper/resources/text/stopwords-bn.txt @@ -0,0 +1,398 @@ +অতএব +অথচ +অথবা +অনুযায়ী +অনেক +অনেকে +অনেকেই +অন্তত +অন্য +অবধি +অবশ্য +অর্থাত +আই +আগামী +আগে +আগেই +আছে +আজ +আদ্যভাগে +আপনার +আপনি +আবার +আমরা +আমাকে +আমাদের +আমার +আমি +আর +আরও +ই +ইত্যাদি +ইহা +উচিত +উত্তর +উনি +উপর +উপরে +এ +এঁদের +এঁরা +এই +একই +একটি +একবার +একে +এক্ +এখন +এখনও +এখানে +এখানেই +এটা +এটাই +এটি +এত +এতটাই +এতে +এদের +এব +এবং +এবার +এমন +এমনকী +এমনি +এর +এরা +এল +এস +এসে +ঐ +ও +ওঁদের +ওঁর +ওঁরা +ওই +ওকে +ওখানে +ওদের +ওর +ওরা +কখনও +কত +কবে +কমনে +কয়েক +কয়েকটি +করছে +করছেন +করতে +করবে +করবেন +করলে +করলেন +করা +করাই +করায় +করার +করি +করিতে +করিয়া +করিয়ে +করে +করেই +করেছিলেন +করেছে +করেছেন +করেন +কাউকে +কাছ +কাছে +কাজ +কাজে +কারও +কারণ +কি +কিংবা +কিছু +কিছুই +কিন্তু +কী +কে +কেউ +কেউই +কেখা +কেন +কোটি +কোন +কোনও +কোনো +ক্ষেত্রে +কয়েক +খুব +গিয়ে +গিয়েছে +গিয়ে +গুলি +গেছে +গেল +গেলে +গোটা +চলে +চান +চায় +চার +চালু +চেয়ে +চেষ্টা +ছাড়া +ছাড়াও +ছিল +ছিলেন +জন +জনকে +জনের +জন্য +জন্যওজে +জানতে +জানা +জানানো +জানায় +জানিয়ে +জানিয়েছে +জে +জ্নজন +টি +ঠিক +তখন +তত +তথা +তবু +তবে +তা +তাঁকে +তাঁদের +তাঁর +তাঁরা +তাঁাহারা +তাই +তাও +তাকে +তাতে +তাদের +তার +তারপর +তারা +তারৈ +তাহলে +তাহা +তাহাতে +তাহার +তিনঐ +তিনি +তিনিও +তুমি +তুলে +তেমন +তো +তোমার +থাকবে +থাকবেন +থাকা +থাকায় +থাকে +থাকেন +থেকে +থেকেই +থেকেও +দিকে +দিতে +দিন +দিয়ে +দিয়েছে +দিয়েছেন +দিলেন +দু +দুই +দুটি +দুটো +দেওয়া +দেওয়ার +দেওয়া +দেখতে +দেখা +দেখে +দেন +দেয় +দ্বারা +ধরা +ধরে +ধামার +নতুন +নয় +না +নাই +নাকি +নাগাদ +নানা +নিজে +নিজেই +নিজেদের +নিজের +নিতে +নিয়ে +নিয়ে +নেই +নেওয়া +নেওয়ার +নেওয়া +নয় +পক্ষে +পর +পরে +পরেই +পরেও +পর্যন্ত +পাওয়া +পাচ +পারি +পারে +পারেন +পি +পেয়ে +পেয়্র্ +প্রতি +প্রথম +প্রভৃতি +প্রযন্ত +প্রাথমিক +প্রায় +প্রায় +ফলে +ফিরে +ফের +বক্তব্য +বদলে +বন +বরং +বলতে +বলল +বললেন +বলা +বলে +বলেছেন +বলেন +বসে +বহু +বা +বাদে +বার +বি +বিনা +বিভিন্ন +বিশেষ +বিষয়টি +বেশ +বেশি +ব্যবহার +ব্যাপারে +ভাবে +ভাবেই +মতো +মতোই +মধ্যভাগে +মধ্যে +মধ্যেই +মধ্যেও +মনে +মাত্র +মাধ্যমে +মোট +মোটেই +যখন +যত +যতটা +যথেষ্ট +যদি +যদিও +যা +যাঁর +যাঁরা +যাওয়া +যাওয়ার +যাওয়া +যাকে +যাচ্ছে +যাতে +যাদের +যান +যাবে +যায় +যার +যারা +যিনি +যে +যেখানে +যেতে +যেন +যেমন +র +রকম +রয়েছে +রাখা +রেখে +লক্ষ +শুধু +শুরু +সঙ্গে +সঙ্গেও +সব +সবার +সমস্ত +সম্প্রতি +সহ +সহিত +সাধারণ +সামনে +সি +সুতরাং +সে +সেই +সেখান +সেখানে +সেটা +সেটাই +সেটাও +সেটি +স্পষ্ট +স্বয়ং +হইতে +হইবে +হইয়া +হওয়া +হওয়ায় +হওয়ার +হচ্ছে +হত +হতে +হতেই +হন +হবে +হবেন +হয় +হয়তো +হয়নি +হয়ে +হয়েই +হয়েছিল +হয়েছে +হয়েছেন +হল +হলে +হলেই +হলেও +হলো +হাজার +হিসাবে +হৈলে +হোক +হয় \ No newline at end of file diff --git a/newspaper/text.py b/newspaper/text.py index 23b4c6b1..9e60f6ef 100644 --- a/newspaper/text.py +++ b/newspaper/text.py @@ -113,6 +113,19 @@ def candidate_words(self, stripped_input): import jieba return jieba.cut(stripped_input, cut_all=True) +class StopWordsBengali(StopWords): + """Chinese segmentation + """ + def __init__(self, language='bn'): + super(StopWordsBengali, self).__init__(language='bn') + + def candidate_words(self, stripped_input): + # jieba builds a tree that takes a while. avoid building + # this tree if we don't use the chinese language + from bnltk.tokenize import Tokenizers + basic_t = Tokenizers() + return basic_t.bn_word_tokenizer(stripped_input) + class StopWordsArabic(StopWords): """Arabic segmentation diff --git a/newspaper/utils.py b/newspaper/utils.py index bfa44148..eaf85d96 100644 --- a/newspaper/utils.py +++ b/newspaper/utils.py @@ -357,6 +357,7 @@ def print_available_languages(): language_dict = { 'ar': 'Arabic', 'be': 'Belarusian', + 'bn': 'Bengali', 'bg': 'Bulgarian', 'da': 'Danish', 'de': 'German', diff --git a/requirements.txt b/requirements.txt index 61974601..83eb2cff 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,4 +11,5 @@ python-dateutil>=2.5.3 PyYAML>=3.11 requests>=2.10.0 tinysegmenter==0.3 # TODO(codelucas): Investigate making this >=0.3 -tldextract>=2.0.1 \ No newline at end of file +tldextract>=2.0.1 +bnltk \ No newline at end of file