Skip to content

Commit

Permalink
allow inflection rule chains with "polite" (#627)
Browse files Browse the repository at this point in the history
* fix deinflection bug

* add test

* fix polite te and past

* expand verb flag

* fix polite negative

* fix polite volitional

* fix polite past negative

* remove unneeded rules in

* new deinflector format

* make nicer

* lint

* remove extra line
  • Loading branch information
StefanVukovic99 committed Feb 4, 2024
1 parent 1a10af1 commit 6b327e0
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 189 deletions.
145 changes: 38 additions & 107 deletions ext/data/language/japanese-transforms.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
{
"language": "ja",
"conditions": {
"v": {
"name": "Verb",
"partsOfSpeech": ["v1", "v5", "vk", "vs", "vz"],
"i18n": [
{
"language": "ja",
"name": "動詞"
}
],
"subConditions": ["v1", "v5", "vk", "vs", "vz"]
},
"v1": {
"name": "Ichidan verb",
"partsOfSpeech": ["v1"],
Expand Down Expand Up @@ -365,7 +376,8 @@
{"suffixIn": "添うて", "suffixOut": "添う", "conditionsIn": ["iru"], "conditionsOut": ["v5"]},
{"suffixIn": "副うて", "suffixOut": "副う", "conditionsIn": ["iru"], "conditionsOut": ["v5"]},
{"suffixIn": "厭うて", "suffixOut": "厭う", "conditionsIn": ["iru"], "conditionsOut": ["v5"]},
{"suffixIn": "のたもうて", "suffixOut": "のたまう", "conditionsIn": ["iru"], "conditionsOut": ["v5"]}
{"suffixIn": "のたもうて", "suffixOut": "のたまう", "conditionsIn": ["iru"], "conditionsOut": ["v5"]},
{"suffixIn": "まして", "suffixOut": "ます", "conditionsIn": [], "conditionsOut": ["v"]}
]
},
{
Expand Down Expand Up @@ -531,7 +543,7 @@
{
"name": "imperative negative",
"rules": [
{"suffixIn": "", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1", "v5", "vk", "vs", "vz"]}
{"suffixIn": "", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v"]}
]
},
{
Expand Down Expand Up @@ -592,7 +604,8 @@
{"suffixIn": "為ない", "suffixOut": "為る", "conditionsIn": ["adj-i"], "conditionsOut": ["vs"]},
{"suffixIn": "こない", "suffixOut": "くる", "conditionsIn": ["adj-i"], "conditionsOut": ["vk"]},
{"suffixIn": "来ない", "suffixOut": "来る", "conditionsIn": ["adj-i"], "conditionsOut": ["vk"]},
{"suffixIn": "來ない", "suffixOut": "來る", "conditionsIn": ["adj-i"], "conditionsOut": ["vk"]}
{"suffixIn": "來ない", "suffixOut": "來る", "conditionsIn": ["adj-i"], "conditionsOut": ["vk"]},
{"suffixIn": "ません", "suffixOut": "ます", "conditionsIn": ["v"], "conditionsOut": ["v"]}
]
},
{
Expand Down Expand Up @@ -659,114 +672,31 @@
{"suffixIn": "添うた", "suffixOut": "添う", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "副うた", "suffixOut": "副う", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "厭うた", "suffixOut": "厭う", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "のたもうた", "suffixOut": "のたまう", "conditionsIn": [], "conditionsOut": ["v5"]}
{"suffixIn": "のたもうた", "suffixOut": "のたまう", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ました", "suffixOut": "ます", "conditionsIn": [], "conditionsOut": ["v"]},
{"suffixIn": "ませんでした", "suffixOut": "ません", "conditionsIn": [], "conditionsOut": ["v"]}
]
},
{
"name": "polite",
"rules": [
{"suffixIn": "ます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1"]},
{"suffixIn": "います", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "きます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ぎます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "します", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ちます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "にます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "びます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "みます", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ります", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "じます", "suffixOut": "ずる", "conditionsIn": [], "conditionsOut": ["vz"]},
{"suffixIn": "します", "suffixOut": "する", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "為ます", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "きます", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来ます", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來ます", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
]
},
{
"name": "polite negative",
"rules": [
{"suffixIn": "くありません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["adj-i"]},
{"suffixIn": "ません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1"]},
{"suffixIn": "いません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "きません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ぎません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "しません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ちません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "にません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "びません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "みません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "りません", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "じません", "suffixOut": "ずる", "conditionsIn": [], "conditionsOut": ["vz"]},
{"suffixIn": "しません", "suffixOut": "する", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "為ません", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "きません", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来ません", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來ません", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
]
},
{
"name": "polite past",
"rules": [
{"suffixIn": "ました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1"]},
{"suffixIn": "いました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "きました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ぎました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "しました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ちました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "にました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "びました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "みました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "りました", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "じました", "suffixOut": "ずる", "conditionsIn": [], "conditionsOut": ["vz"]},
{"suffixIn": "しました", "suffixOut": "する", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "為ました", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "きました", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来ました", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來ました", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
]
},
{
"name": "polite past negative",
"rules": [
{"suffixIn": "くありませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["adj-i"]},
{"suffixIn": "ませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1"]},
{"suffixIn": "いませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "きませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ぎませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "しませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ちませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "にませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "びませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "みませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "りませんでした", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "じませんでした", "suffixOut": "ずる", "conditionsIn": [], "conditionsOut": ["vz"]},
{"suffixIn": "しませんでした", "suffixOut": "する", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "為ませんでした", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "きませんでした", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来ませんでした", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來ませんでした", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
]
},
{
"name": "polite volitional",
"rules": [
{"suffixIn": "ましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v1"]},
{"suffixIn": "いましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "きましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ぎましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "しましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "ちましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "にましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "びましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "みましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "りましょう", "suffixOut": "", "conditionsIn": [], "conditionsOut": ["v5"]},
{"suffixIn": "じましょう", "suffixOut": "ずる", "conditionsIn": [], "conditionsOut": ["vz"]},
{"suffixIn": "しましょう", "suffixOut": "する", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "為ましょう", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "きましょう", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来ましょう", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來ましょう", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
{"suffixIn": "ます", "suffixOut": "", "conditionsIn": ["v1"], "conditionsOut": ["v1"]},
{"suffixIn": "います", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "きます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "ぎます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "します", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "ちます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "にます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "びます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "みます", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "ります", "suffixOut": "", "conditionsIn": ["v5"], "conditionsOut": ["v5"]},
{"suffixIn": "じます", "suffixOut": "ずる", "conditionsIn": ["vz"], "conditionsOut": ["vz"]},
{"suffixIn": "します", "suffixOut": "する", "conditionsIn": ["vs"], "conditionsOut": ["vs"]},
{"suffixIn": "為ます", "suffixOut": "為る", "conditionsIn": ["vs"], "conditionsOut": ["vs"]},
{"suffixIn": "きます", "suffixOut": "くる", "conditionsIn": ["vk"], "conditionsOut": ["vk"]},
{"suffixIn": "来ます", "suffixOut": "来る", "conditionsIn": ["vk"], "conditionsOut": ["vk"]},
{"suffixIn": "來ます", "suffixOut": "來る", "conditionsIn": ["vk"], "conditionsOut": ["vk"]},
{"suffixIn": "くあります", "suffixOut": "", "conditionsIn": ["v"], "conditionsOut": ["adj-i"]}
]
},
{
Expand Down Expand Up @@ -819,7 +749,8 @@
{"suffixIn": "為よう", "suffixOut": "為る", "conditionsIn": [], "conditionsOut": ["vs"]},
{"suffixIn": "こよう", "suffixOut": "くる", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "来よう", "suffixOut": "来る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "來よう", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]}
{"suffixIn": "來よう", "suffixOut": "來る", "conditionsIn": [], "conditionsOut": ["vk"]},
{"suffixIn": "ましょう", "suffixOut": "ます", "conditionsIn": [], "conditionsOut": ["v"]}
]
},
{
Expand Down
10 changes: 5 additions & 5 deletions test/data/anki-note-builder-test-results.json
Original file line number Diff line number Diff line change
Expand Up @@ -1692,7 +1692,7 @@
"cloze-body": "打ち込んでいませんでした",
"cloze-prefix": "cloze-prefix",
"cloze-suffix": "cloze-suffix",
"conjugation": "-te « progressive or perfect « polite past negative",
"conjugation": "-te « progressive or perfect « polite « negative « past",
"dictionary": "Test Dictionary 2",
"document-title": "title",
"expression": "打ち込む",
Expand Down Expand Up @@ -1727,7 +1727,7 @@
"cloze-body": "打ち込んでいませんでした",
"cloze-prefix": "cloze-prefix",
"cloze-suffix": "cloze-suffix",
"conjugation": "-te « progressive or perfect « polite past negative",
"conjugation": "-te « progressive or perfect « polite « negative « past",
"dictionary": "Test Dictionary 2",
"document-title": "title",
"expression": "打ち込む",
Expand Down Expand Up @@ -1762,7 +1762,7 @@
"cloze-body": "打ち込んでいませんでした",
"cloze-prefix": "cloze-prefix",
"cloze-suffix": "cloze-suffix",
"conjugation": "-te « progressive or perfect « polite past negative",
"conjugation": "-te « progressive or perfect « polite « negative « past",
"dictionary": "Test Dictionary 2",
"document-title": "title",
"expression": "打ち込む",
Expand Down Expand Up @@ -1797,7 +1797,7 @@
"cloze-body": "打ち込んでいませんでした",
"cloze-prefix": "cloze-prefix",
"cloze-suffix": "cloze-suffix",
"conjugation": "-te « progressive or perfect « polite past negative",
"conjugation": "-te « progressive or perfect « polite « negative « past",
"dictionary": "Test Dictionary 2",
"document-title": "title",
"expression": "打ち込む",
Expand Down Expand Up @@ -2837,7 +2837,7 @@
"cloze-body": "testました",
"cloze-prefix": "cloze-prefix",
"cloze-suffix": "cloze-suffix",
"conjugation": "polite past",
"conjugation": "polite « past",
"dictionary": "Test Dictionary 2",
"document-title": "title",
"expression": "読む",
Expand Down
19 changes: 14 additions & 5 deletions test/data/translator-test-results-note-data1.json
Original file line number Diff line number Diff line change
Expand Up @@ -15851,7 +15851,9 @@
"inflectionRules": [
"-te",
"progressive or perfect",
"polite past negative"
"polite",
"negative",
"past"
]
}
],
Expand Down Expand Up @@ -16276,7 +16278,9 @@
"inflectionRules": [
"-te",
"progressive or perfect",
"polite past negative"
"polite",
"negative",
"past"
]
}
],
Expand Down Expand Up @@ -16701,7 +16705,9 @@
"inflectionRules": [
"-te",
"progressive or perfect",
"polite past negative"
"polite",
"negative",
"past"
]
}
],
Expand Down Expand Up @@ -17126,7 +17132,9 @@
"inflectionRules": [
"-te",
"progressive or perfect",
"polite past negative"
"polite",
"negative",
"past"
]
}
],
Expand Down Expand Up @@ -26937,7 +26945,8 @@
{
"source": "algorithm",
"inflectionRules": [
"polite past"
"polite",
"past"
]
}
],
Expand Down
Loading

0 comments on commit 6b327e0

Please sign in to comment.