Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into fcitx
Browse files Browse the repository at this point in the history
  • Loading branch information
Fcitx Bot committed Sep 13, 2024
2 parents 515dd86 + 636b59e commit 9d69314
Show file tree
Hide file tree
Showing 7 changed files with 65 additions and 39 deletions.
5 changes: 2 additions & 3 deletions src/composer/internal/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,7 @@ load(
"mozc_cc_test",
)

package(default_visibility = [
"//:__subpackages__",
])
package(default_visibility = ["//composer:__subpackages__"])

mozc_cc_library(
name = "transliterator_interface",
Expand Down Expand Up @@ -203,6 +201,7 @@ mozc_cc_library(
name = "converter",
srcs = ["converter.cc"],
hdrs = ["converter.h"],
visibility = [], # for mozc_transliterator
deps = [
"//composer:table",
"@com_google_absl//absl/strings",
Expand Down
73 changes: 37 additions & 36 deletions src/converter/converter_main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ void PrintSegments(const Segments &segments, std::ostream *os) {

bool ExecCommand(const ConverterInterface &converter, const std::string &line,
const commands::Request &request, config::Config *config,
ConversionRequest *conversion_request, Segments *segments) {
Segments *segments) {
std::vector<std::string> fields =
absl::StrSplit(line, absl::ByAnyChar("\t "), absl::SkipEmpty());

Expand All @@ -291,16 +291,21 @@ bool ExecCommand(const ConverterInterface &converter, const std::string &line,

CHECK_FIELDS_LENGTH(1);

const std::string &func = fields[0];

composer::Composer composer(&composer::Table::GetDefaultTable(), &request,
config);
conversion_request->set_composer(&composer);
commands::Context context;
ConversionRequest conversion_request =
ConversionRequest(&composer, &request, &context, config);
conversion_request.set_max_conversion_candidates_size(
absl::GetFlag(FLAGS_max_conversion_candidates_size));
conversion_request.set_create_partial_candidates(
request.auto_partial_suggestion());

const std::string &func = fields[0];
if (func == "startconversion" || func == "start" || func == "s") {
CHECK_FIELDS_LENGTH(2);
composer.SetPreeditTextForTestOnly(fields[1]);
return converter.StartConversion(*conversion_request, segments);
return converter.StartConversion(conversion_request, segments);
} else if (func == "convertwithnodeinfo" || func == "cn") {
CHECK_FIELDS_LENGTH(5);
Lattice::SetDebugDisplayNode(
Expand All @@ -316,19 +321,19 @@ bool ExecCommand(const ConverterInterface &converter, const std::string &line,
} else if (func == "startprediction" || func == "predict" || func == "p") {
if (fields.size() >= 2) {
composer.SetPreeditTextForTestOnly(fields[1]);
return converter.StartPrediction(*conversion_request, segments);
return converter.StartPrediction(conversion_request, segments);
} else {
return converter.StartPrediction(*conversion_request, segments);
return converter.StartPrediction(conversion_request, segments);
}
} else if (func == "startsuggestion" || func == "suggest") {
if (fields.size() >= 2) {
composer.SetPreeditTextForTestOnly(fields[1]);
return converter.StartSuggestion(*conversion_request, segments);
return converter.StartSuggestion(conversion_request, segments);
} else {
return converter.StartSuggestion(*conversion_request, segments);
return converter.StartSuggestion(conversion_request, segments);
}
} else if (func == "finishconversion" || func == "finish") {
converter.FinishConversion(*conversion_request, segments);
converter.FinishConversion(conversion_request, segments);
return true;
} else if (func == "resetconversion" || func == "reset") {
converter.ResetConversion(segments);
Expand All @@ -348,7 +353,7 @@ bool ExecCommand(const ConverterInterface &converter, const std::string &line,
if (!(converter.CommitSegmentValue(segments, i, 0))) return false;
}
}
converter.FinishConversion(*conversion_request, segments);
converter.FinishConversion(conversion_request, segments);
return true;
} else if (func == "focussegmentvalue" || func == "focus") {
CHECK_FIELDS_LENGTH(3);
Expand All @@ -362,7 +367,7 @@ bool ExecCommand(const ConverterInterface &converter, const std::string &line,
return converter.CommitSegments(segments, singleton_vector);
} else if (func == "resizesegment" || func == "resize") {
if (fields.size() == 3) {
return converter.ResizeSegment(segments, *conversion_request,
return converter.ResizeSegment(segments, conversion_request,
NumberUtil::SimpleAtoi(fields[1]),
NumberUtil::SimpleAtoi(fields[2]));
} else if (fields.size() > 3) {
Expand All @@ -372,7 +377,7 @@ bool ExecCommand(const ConverterInterface &converter, const std::string &line,
static_cast<uint8_t>(NumberUtil::SimpleAtoi(fields[i])));
}
return converter.ResizeSegment(
segments, *conversion_request, NumberUtil::SimpleAtoi(fields[1]),
segments, conversion_request, NumberUtil::SimpleAtoi(fields[1]),
NumberUtil::SimpleAtoi(fields[2]), new_arrays);
}
} else if (func == "disableuserhistory") {
Expand Down Expand Up @@ -441,6 +446,24 @@ bool IsConsistentEngineNameAndType(const std::string &engine_name,
kConsistentPairs->end();
}

void RunLoop(std::unique_ptr<EngineInterface> engine,
commands::Request &&request, config::Config &&config) {
ConverterInterface *converter = engine->GetConverter();
CHECK(converter);

Segments segments;
std::string line;
while (!std::getline(std::cin, line).fail()) {
if (ExecCommand(*converter, line, request, &config, &segments)) {
if (absl::GetFlag(FLAGS_output_debug_string)) {
PrintSegments(segments, &std::cout);
}
} else {
std::cout << "ExecCommand() return false" << std::endl;
}
}
}

} // namespace
} // namespace mozc

Expand Down Expand Up @@ -510,33 +533,11 @@ int main(int argc, char **argv) {
<< request.decoder_experiment_params();
}

mozc::ConverterInterface *converter = engine->GetConverter();
CHECK(converter);

if (!mozc::IsConsistentEngineNameAndType(absl::GetFlag(FLAGS_engine_name),
absl::GetFlag(FLAGS_engine_type))) {
LOG(WARNING) << "Engine name and type do not match.";
}

mozc::Segments segments;
std::string line;

mozc::ConversionRequest conversion_request =
mozc::ConversionRequest(nullptr, &request, &config);
conversion_request.set_max_conversion_candidates_size(
absl::GetFlag(FLAGS_max_conversion_candidates_size));
conversion_request.set_create_partial_candidates(
request.auto_partial_suggestion());

while (!std::getline(std::cin, line).fail()) {
if (mozc::ExecCommand(*converter, line, request, &config,
&conversion_request, &segments)) {
if (absl::GetFlag(FLAGS_output_debug_string)) {
mozc::PrintSegments(segments, &std::cout);
}
} else {
std::cout << "ExecCommand() return false" << std::endl;
}
}
mozc::RunLoop(std::move(engine), std::move(request), std::move(config));
return 0;
}
2 changes: 2 additions & 0 deletions src/data/dictionary_manual/places.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
いりなかえき いりなか駅 地名
いわきのくに 磐城国 地名
いわしろのくに 岩代国 地名
いんちょん 仁川 地名
うごのくに 羽後国 地名
うぜん 羽前 地名
うぜんのくに 羽前国 地名
Expand Down Expand Up @@ -64,6 +65,7 @@
しもうさのくに 下総国 地名
しもつけのくに 下野国 地名
しりべしのくに 後志国 地名
じんせん 仁川 地名
しんせん 深圳 地名
すおうのくに 周防国 地名
するがのくに 駿河国 地名
Expand Down
16 changes: 16 additions & 0 deletions src/data/dictionary_manual/words.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,19 @@ CJKとうごうかんじ CJK統合漢字 名詞
あさごはん 朝ご飯 名詞
あてぬの 当て布 名詞サ変
いけいざい 違警罪 名詞
いこみき 已己巳己 名詞
いただきもの 頂き物 名詞
いっきょうたじゃく 一強他弱 名詞
いもじ イ文字 名詞
いもじ 彝文字 名詞
いわぶろ 岩風呂 名詞
いんきゃ 陰キャ 名詞
いんむ 淫夢 名詞
うすいほん 薄い本 名詞
うっぷんばらし 鬱憤晴らし 名詞サ変
うらめん 裏面 名詞
うりどき 売り時 名詞
うんてい 芸亭 名詞
えいえいじてん 英英辞典 名詞
えつご 粤語 名詞
おくぶたえ 奥二重 名詞
Expand All @@ -30,12 +33,14 @@ CJKとうごうかんじ CJK統合漢字 名詞
かいかい 回回 固有名詞
かいごかんせい 下位互換性 名詞
かいていこう 改訂稿 名詞
かぎょうしもいちだんかつよう カ行下一段活用 名詞
かくしあじ 隠し味 名詞
かくしゃ 覚者 名詞
かじょうわん 渦状腕 名詞
かねのなるき 金のなる木 名詞
かもふら カモフラ 名詞サ変
からだき 空焚き 名詞サ変
かわきもの 乾き物 名詞
かんじ 巻次 名詞
かんじこうせいきじゅつもじ 漢字構成記述文字 名詞
かんじょうば 勘定場 名詞
Expand All @@ -51,6 +56,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
ぎゅうめし 牛めし 名詞
きんとれ 筋トレ 名詞サ変
くうしゅうごう 空集合 名詞
くうぼうそう 空乏層 名詞
くわたけいすけ 桑田佳祐 人名
けいらんし 鶏卵紙 名詞
けっかんしゅうしゅく 血管収縮 名詞サ変
Expand All @@ -63,6 +69,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
こうこう 礦坑 名詞
ごうしかいしゃ 合資会社 名詞
こうじょ 扣除 名詞サ変
こうそけん 公訴権 名詞
こうばいりょくへいか 購買力平価 名詞
こうはんいんさつ 孔版印刷 名詞サ変
こうぶんかいせきき 構文解析器 名詞
Expand Down Expand Up @@ -98,9 +105,12 @@ CJKとうごうかんじ CJK統合漢字 名詞
しゅうじゅう 集住 名詞サ変
しゅうせいこう 修正稿 名詞
しゅかい 珠海 地名
しゅじょうさいど 衆生済度 名詞
しゅっとん 出音 名詞
じょういごかんせい 上位互換性 名詞
しょうじんか 省人化 名詞サ変
しんかん 身幹 名詞
しんご 身後 名詞
じんじょうこうとうしょうがっこう 尋常高等小学校 名詞
じんじょうしょう 尋常小 名詞
じんじょうしょうがっこう 尋常小学校 名詞
Expand All @@ -109,6 +119,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
すいくち 吸い口 名詞
すざくもん 朱雀門 固有名詞
すみけし 墨消し 名詞サ変
すみしん 住信 固有名詞
すらんと スラント 名詞
せいりめいがら 整理銘柄 名詞
ぜんざいさん 全財産 名詞
Expand All @@ -119,6 +130,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
たいしょうがい 対象外 名詞
たいしょうない 対象内 名詞
たいせつ 堆雪 名詞サ変
たいりょうしあんごう 耐量子暗号 名詞
だうなー ダウナー 名詞
だきまくら 抱き枕 名詞
たちあらい 太刀洗
Expand Down Expand Up @@ -159,6 +171,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
ばうんしゃ 馬運車 名詞
はきいん 破毀院 名詞
はくしかてい 博士課程 名詞
ばくそく 爆速 名詞
はんき 搬器 名詞
ひきなみ 引き波 名詞
ひともうけ 一儲け 名詞サ変
Expand All @@ -174,6 +187,8 @@ CJKとうごうかんじ CJK統合漢字 名詞
ふもうご 不妄語 名詞
ぶらばん ブラバン 名詞サ変
ぷりいんすとーる プリインストール 名詞サ変
ぷろくし プロクシ 名詞
へんむてき 片務的 名詞形動
ほしいも 干し芋 名詞
ほじょう 圃場 名詞
ほせんご 莆仙語 名詞
Expand All @@ -198,6 +213,7 @@ CJKとうごうかんじ CJK統合漢字 名詞
ゆうしょう 有床 名詞
ゆうしょうしんりょうじょ 有床診療所 名詞
ゆうちょぎんこう ゆうちょ銀行 固有名詞
ようかいおんど 溶解温度 名詞
らのべ ラノベ 名詞
りねーむ リネーム 名詞サ変
りまいんど リマインド 名詞サ変
Expand Down
2 changes: 2 additions & 0 deletions src/data/dictionary_oss/collocation.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,5 @@
ここから
食事をした
状況を注視
訴権の濫用
公訴権の濫用
3 changes: 3 additions & 0 deletions src/data/dictionary_oss/evaluation.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,9 @@ OK: ちゅうおん 中音 Conversion Expected 9 注音 2.30.5544
OK: いもじ イ文字 Conversion Expected 9 イ文字 2.30.5544
OK: いもじ イ文字 Conversion Expected 9 彝文字 2.30.5544
OK: かんじこうせいきじゅつもじ 漢字構成記述文字 Conversion Expected 漢字構成記述文字 2.30.5544
OK: かわきもの 乾き物 Conversion Expected 乾き物 2.30.5544
OK: そけんのらんよう 訴権の濫用 Conversion Expected 訴権の濫用 2.30.5544
OK: こうそけんのらんよう 公訴権の濫用 Conversion Expected 公訴権の濫用 2.30.5544
OK: たしました 足しました Conversion Expected 足しました 2.26.4695
OK: こじんよう 個人用 Conversion Expected 個人用 2.26.4695
OK: からめて 絡めて Conversion Expected 絡めて 2.26.4695
Expand Down
3 changes: 3 additions & 0 deletions src/data/test/quality_regression_test/oss.tsv
Original file line number Diff line number Diff line change
Expand Up @@ -425,3 +425,6 @@ oss_issue1054 ちゅうおん 注音 Conversion Expected 9
oss_issue1054 いもじ イ文字 Conversion Expected 9
oss_issue1054 いもじ 彝文字 Conversion Expected 9
oss_issue1054 かんじこうせいきじゅつもじ 漢字構成記述文字 Conversion Expected
oss_issue かわきもの 乾き物 Conversion Expected
oss_issue そけんのらんよう 訴権の濫用 Conversion Expected
oss_issue こうそけんのらんよう 公訴権の濫用 Conversion Expected

0 comments on commit 9d69314

Please sign in to comment.