Suche nach einem Begriff auf Japanisch

Vielen Dank für Ihre Antwort.

  1. Ein Beispielsatz hier in Katakana
    通報テスト 9, 通報テスト 11, 通報テスト 8… usw.

  2. Ein Suchbegriff, der bei Ihnen nicht funktioniert
    テスト
    „テスト

Ein unglaubliches Ereignis ist eingetreten. Nachdem wir die „minimale Suchbegriffslänge

Ich kann das reproduzieren, und es liegt hauptsächlich an einer Kombination aus

und

Der Begriff テスト wird nach dem Durchlaufen von CppjiebaRb in テ ス ト umgewandelt, was unseren Schutzmechanismus min_search_length auslöst.

@Sam Das ist schwierig zu beheben, da wir einen ordentlichen Tokenizer für Japanisch benötigen, um Suchprobleme wie dieses endgültig zu lösen. Wir können hier und da Anpassungen vornehmen, aber es wird ein Spiel von „Wackel-Maulwurf“ werden.

Ich glaube nicht, dass es einen geeigneten japanischen Segmentierer gibt, den wir verwenden können.

Ich denke, das Beste, was wir hier tun können, ist, diese Standardwerte einfach auf 1 herabzusetzen.

Andernfalls würden wir es Menschen verbieten, nach „Haus

Ich benutze Ruby heutzutage nicht mehr und kenne auch nicht die Anforderungen von Discourse, aber es scheint ein Gem für „MeCab“ zu geben.

Ich bin auf dieses Thema gestoßen, weil ich festgestellt habe, dass die Suche nach einigen Wörtern auf meiner gehosteten öffentlichen Instanz nicht funktioniert. Ich habe

  • min search term length: 1
  • search tokenize chinese japanese korean: enabled
  • default locale: Japanese

Soweit ich mich erinnere, habe ich die Website mit englischer Locale initialisiert und die Einstellung später auf Japanisch geändert.

Die Wörter, bei denen die Suche fehlschlug, sind „北側“, „真上“, „一般“. Diese Wörter befinden sich in diesem Thema. Viele Wörter funktionieren, aber diese nicht. Ich sehe kein Muster, ob ein Wort funktioniert oder nicht.

Gibt es eine Möglichkeit, den generierten Suchindex auf der gehosteten Instanz zu überprüfen? Ich kann sowohl Ruby als auch Japanisch lesen. Wenn es also eine Möglichkeit gibt zu sehen, wie Discourse den Suchindex für CJK generiert, könnte ich vielleicht helfen.

CppjiebaRb oder cppjieba, das von @tgxworld erwähnt wurde, scheint für Chinesisch zu sein. Wird es für die japanische Locale verwendet?

Mecab ist leider keine Option, es ist GPL und wir bevorzugen es, nur MIT- und BSD-Lizenzen bei Abhängigkeiten zu verwenden.

Wir haben einen PR, der TinySegmenter: Javascriptだけで実装されたコンパクトな分かち書きソフトウェア hinzufügt, das eine kompatible Lizenz hat. Können Sie das Segmentieren ausprobieren und uns mitteilen, wie gut es funktioniert? Es gibt ein Formular auf der Website, das Sie zum Testen verwenden können.

Ich habe tiny_segmenter von Rubygems ausprobiert und es generiert zumindest die Wörter, die ich im vorherigen Kommentar aufgelistet habe.

# 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 一般
 "北側",
 "真上",
 "一般",
 "一般",
 "一般",
 "北側",
 "一般",

Eine schnelle Suche nach TinySegmenter hat mir gesagt, dass das verwendete Modell nicht so gut ist. Es gibt einen Modellgenerator dafür.

Ich habe es aber noch nicht ausprobiert.