Skip to content

Commit

Permalink
🐛「お」を付けたことで二重丁寧語になるおバグを修正いたしましたわ~!!! (#30)
Browse files Browse the repository at this point in the history
* 🐛 丁寧語や、読みが「お」で始まる単語のときは「お」を付けない

* 丁寧語を除外する処理で無視されるようになったので削除
  • Loading branch information
jiro4989 authored Jun 21, 2022
1 parent b8e0f63 commit 8255920
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 12 deletions.
11 changes: 11 additions & 0 deletions ojosama.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,11 @@ func appendPrefix(data tokenizer.TokenData, tokens []tokenizer.Token, i int, sur
return surface, false
}

// 丁寧語の場合は「お」を付けない
if isPoliteWord(data) {
return surface, false
}

// 次のトークンが動詞の場合は「お」を付けない。
// 例: プレイする
if i+1 < len(tokens) {
Expand Down Expand Up @@ -293,3 +298,9 @@ func appendLongNote(src string, tokens []tokenizer.Token, i int, opt *ConvertOpt
}
return src
}

// isPoliteWord は丁寧語かどうかを判定する。
// 読みがオで始まる言葉も true になる。
func isPoliteWord(data tokenizer.TokenData) bool {
return strings.HasPrefix(data.Reading, "オ")
}
14 changes: 14 additions & 0 deletions ojosama_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,20 @@ func TestConvert(t *testing.T) {
opt: nil,
wantErr: false,
},
{
desc: "正常系: 二重丁寧語にはしませんの",
src: "お嬢様、おにぎり、お腹、お寿司、おませさん、お利口さん",
want: "お嬢様、おにぎり、お腹、お寿司、おませさん、お利口さん",
opt: nil,
wantErr: false,
},
{
desc: "正常系: 読みが「お」で始まる言葉には「お」を付けませんの",
src: "追い剥ぎ、大型、大分、おろし金",
want: "追い剥ぎ、大型、大分、おろし金",
opt: nil,
wantErr: false,
},
}

for _, tt := range tests {
Expand Down
12 changes: 0 additions & 12 deletions rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,18 +95,6 @@ var (
// excludeRules は変換処理を無視するルール。
// このルールは convertRules よりも優先して評価される。
excludeRules = []convertRule{
{
Conditions: convertConditions{
{
Type: convertTypeFeatures,
Value: []string{"名詞", "一般"},
},
{
Type: convertTypeSurface,
Value: []string{"お嬢様"},
},
},
},
{
Conditions: convertConditions{
{
Expand Down

0 comments on commit 8255920

Please sign in to comment.