SSS
2020 年 7 月 13 日午前 5:50
21
Thank you for your reply.
A sample paragraph here in katakana
通報テスト9,通報テスト11,通報テスト8…etc
A sample search term that you have that is not working
テスト
The “テスト” is not working.
But the “通報” or “通報テスト” seems to be working correctly.
Confirmation that your site locale is in Japanese or that search tokenize chinese japanese korean is enabled
Yes, I have confirmed that both settings are set correctly.
SSS
2020 年 7 月 15 日午前 1:08
24
信じられないことが起こりました。「最小検索語の長さ」をデフォルト値の2から1に変更したところ、カタカナを検索できるようになりました。なぜかはわかりませんが、この設定は関係があるのでしょうか?
tgxworld
(Alan Tan)
2020 年 8 月 24 日午前 9:01
26
これを再現できました。主な原因は、以下の 2 つの組み合わせによるものです。
if ['zh_TW', 'zh_CN', 'ja'].include?(SiteSetting.default_locale) || SiteSetting.search_tokenize_chinese_japanese_korean
require 'cppjieba_rb' unless defined? CppjiebaRb
mode = (purpose == :query ? :query : :mix)
data = CppjiebaRb.segment(search_data, mode: mode)
と
テスト という用語が CppjiebaRb を経る際に テ ス ト に変換され、これが設定されている min_search_length の保護機構をトリガーしてしまいます。
@sam 修正は難しいです。このような検索問題を根本的に解決するには、日本語向けの適切なトークナイザーが必要だからです。局所的な調整を繰り返すことはできますが、それは「ど根性ゲーム」のようになり、一時的な対応に終わってしまいます。
sam
(Sam Saffron)
2020 年 9 月 28 日午前 7:14
27
適切な日本語のセグメンターが存在しないとは思います。
ここで最善の策は、これらのデフォルト値を単に 1 に緩和することです。
そうしないと、日本語で「家」という単語を検索するユーザーを禁止することになってしまいますが、英語で「house」を検索することは許可しています。
yashi
(Yasushi SHOJI)
2022 年 2 月 2 日午前 10:13
28
最近はRubyを使っていませんし、Discourseの要件も分かりませんが、「MeCab 」用のgemがあるようです。
私のホストされている公開インスタンス でいくつかの単語の検索が機能しないことに気づき、このトピックに来ました。
最小検索語長: 1
中国語、日本語、韓国語の検索トークン化: 有効
デフォルトロケール: 日本語
記憶が正しければ、サイトは英語ロケールで初期化し、後で日本語設定に変更しました。
検索に失敗した単語は「北側」、「真上」、「一般」です。これらの単語はこのトピック にあります。多くの単語は機能しますが、これらは機能しません。単語が機能するかどうかのパターンは分かりません。
ホストされているインスタンスで生成された検索インデックスを確認する方法はありますか?Rubyと日本語の両方が読めるので、DiscourseがCJKの検索インデックスをどのように生成するかを見る方法があれば、何かお手伝いできるかもしれません。
@tgxworldが言及した CppjiebaRb またはcppjieba は中国語用のように思われます。日本語ロケールでも使用されますか?
sam
(Sam Saffron)
2022 年 2 月 2 日午前 10:21
29
Mecab is sadly not an option, it is GPL and we prefer only to take on MIT and BSD licenses in dependencies
We have a PR that will add TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア which has a compatible license. Can you try out the segmenting and let us know how well it works, there is a form on the website you can use to test
yashi
(Yasushi SHOJI)
2022 年 2 月 2 日午前 10:58
30
tiny_segmenter を試しましたが、少なくとも前のコメントにリストした単語を生成してくれます。
# 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 について軽く検索したところ、使用しているモデルがあまり良くないことがわかりました。モデルジェネレーターがあります。
Contribute to shogo82148/TinySegmenterMaker development by creating an account on GitHub.
まだ試していませんが。