لقد جربت tiny_segmenter من Rubygems وعلى الأقل فإنه يولد الكلمات التي أدرجتها في التعليق السابق.
# coding: utf-8
require 'tiny_segmenter'
require 'pp'
s = File.read('topic27.txt')
ts = TinySegmenter.new
sg = ts.segment(s, ignore_punctuation: true)
pp(sg)
bundle exec ruby test.rb | grep -e 北側 -e 真上 -e 一般
"北側",
"真上",
"一般",
"一般",
"一般",
"北側",
"一般",
أخبرني بحث سريع حول TinySegmenter أن النموذج الذي يستخدمه ليس جيدًا. يوجد مولد نماذج له.
لم أجربه بعد.