--- a/bsfilter/bsfilter
+++ b/bsfilter/bsfilter
@@ -1101,11 +1101,6 @@
         else
           @m_dic_enc = Encoding.default_external
         end
-      when 'chasen'
-        Chasen.getopt('-F', '%H %m\n', '-j')
-        @method = proc { |s| chasen(s) }
-      when 'kakasi'
-        @method = proc { |s| kakasi(s) }
       else
         raise "internal error: unknown method #{method}"
       end
@@ -1120,18 +1115,6 @@
     Reg_kanji_katakana = Regexp.compile("[\xb0\xa1-\xf4\xa4\xa1\xbc\xa5\xa1-\xa5\xf6]".force_encoding('EUC-JP'))
     Reg_not_kanji_katakana = Regexp.compile("[^\xb0\xa1-\xf4\xa4\xa1\xbc\xa5\xa1-\xa5\xf6]".force_encoding('EUC-JP'))
 
-    def kakasi(str)
-      str = str.gsub(/[\x00-\x7f]/, ' ')
-      return [] if (str =~ /\A +\z/)
-
-      array = []
-      Kakasi.kakasi('-oeuc -w', str).scan(/\S+/).each do |token|
-        token.gsub!(Reg_not_kanji_katakana, '')
-        array.push(token) if ((token =~ Reg_kanji) || (token.length > 2))
-      end
-      return array
-    end
-
     def mecab(str)
       str = str.encode(@m_dic_enc, invalid: :replace, undef: :replace, replace: ' ')
       str = str.gsub(/[\x00-\x7f]/, ' ')
@@ -1169,26 +1152,6 @@
       return array
     end
 
-    def chasen(str)
-      str = str.gsub(/[\x00-\x7f]/, ' ')
-      return [] if (str =~ /\A +\z/)
-
-      array = []
-      Chasen.sparse(str).split("\n").each do |hinshi_token|
-        next unless (hinshi_token =~ /(.*) (.*)/)
-
-        hinshi = ::Regexp.last_match(1)
-        token = ::Regexp.last_match(2)
-        if (hinshi == "\xcc\xbe\xbb\xec")
-          array.push(token) if ((token =~ Reg_kanji_katakana) || (token.length > 2))
-        else
-          token.gsub!(Reg_not_kanji_katakana, '')
-          array.push(token) if ((token =~ Reg_kanji) || (token.length > 2))
-        end
-      end
-      return array
-    end
-
     def block(str)
       tokens = str.scan(Reg_kanji)
       tokens.concat(str.scan(Reg_katakana))
@@ -2004,7 +1967,7 @@
       		specify the name of database type
       		"sdbm" by default
 
-              --jtokenizer|-j bigram|block|mecab|chasen|kakasi
+              --jtokenizer|-j bigram|block|mecab
       		specify algorithm of a tokenizer for Japanese language
       		"bigram" by default
 
@@ -3185,10 +3148,6 @@
     when 'block'
     when 'mecab'
       require 'MeCab'
-    when 'chasen'
-      require 'chasen.o'
-    when 'kakasi'
-      require 'kakasi'
     else
       soft_raise(format("#{$PROGRAM_NAME}: unsupported argument `%s' for --jtokenizer or -j\n", options['jtokenizer']))
     end
--- a/test/test.rb
+++ b/test/test.rb
@@ -212,7 +212,6 @@
 
   def test_by_jtokenizer
     return if (! safe_require('MeCab'))
-    return if (! safe_require('chasen.o'))
 
     @files = ["testcases/iso_2022_jp_plain"]
 
@@ -228,14 +227,9 @@
     @bsfilter2.setup($default_options + ["--jtokenizer", "bigram"])
     @bsfilter2.use_dummyfh
 
-    @bsfilter3 = Bsfilter::new
-    @bsfilter3.setup($default_options + ["--jtokenizer", "chasen"])
-    @bsfilter3.use_dummyfh
-
     @bsfilter0.run(@files)
     @bsfilter1.run(@files)
     @bsfilter2.run(@files)
-    @bsfilter3.run(@files)
 
     assert_equal(1, @bsfilter0.count_message(/tokenizer ja body ī/),  "@bsfilter0 2letters")
     assert_equal(0, @bsfilter0.count_message(/tokenizer ja body /), "@bsfilter0 3letters")
@@ -245,9 +239,6 @@
 
     assert_equal(1, @bsfilter2.count_message(/tokenizer ja body ī/), "@bsfilter2 2letters")
     assert_equal(0, @bsfilter2.count_message(/tokenizer ja body /), "@bsfilter2 3letters")
-
-    assert_equal(1, @bsfilter3.count_message(/tokenizer ja body ī/), "@bsfilter3 2letters")
-    assert_equal(1, @bsfilter3.count_message(/tokenizer ja body /), "@bsfilter3 3letters")
   end
 
   def teardown
@@ -336,16 +327,6 @@
     end
     @bsfilter.use_dummyfh
     @bsfilter.run(@files)
-    assert_equal(1, @bsfilter.count_message(/tokenizer ja body ī/), "2 letters")
-    assert_equal(1, @bsfilter.count_message(/tokenizer ja body /), "3 letters")
-  end
-
-  def test_chasen
-    assert_nothing_raised('Warning: ignore this test if chasen is NOT installed') do
-      @bsfilter.setup($default_options + ["--jtokenizer", "chasen"])
-    end
-    @bsfilter.use_dummyfh
-    @bsfilter.run(@files)
     assert_equal(1, @bsfilter.count_message(/tokenizer ja body ī/), "2 letters")
     assert_equal(1, @bsfilter.count_message(/tokenizer ja body /), "3 letters")
   end
