Skip to content

Commit

Permalink
[ja] Add deinflection rule for 〜過ぎる (#1245)
Browse files Browse the repository at this point in the history
* Add sugiru kanji form

* Fix test
  • Loading branch information
khaitruong922 authored Jul 20, 2024
1 parent 77b184a commit a4ee09f
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 0 deletions.
4 changes: 4 additions & 0 deletions benches/japanese-language-transformer.bench.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ describe('japanese language transformer', () => {
'愛しい',
'愛しそう',
'愛しすぎる',
'愛し過ぎる',
'愛しかったら',
'愛しかったり',
'愛しくて',
Expand Down Expand Up @@ -67,6 +68,7 @@ describe('japanese language transformer', () => {
'食べなさい',
'食べそう',
'食べすぎる',
'食べ過ぎる',
'食べたい',
'食べたら',
'食べたり',
Expand Down Expand Up @@ -118,6 +120,7 @@ describe('japanese language transformer', () => {
'きなさい',
'きそう',
'きすぎる',
'き過ぎる',
'きたい',
'きたら',
'きたり',
Expand Down Expand Up @@ -170,6 +173,7 @@ describe('japanese language transformer', () => {
'しなさい',
'しそう',
'しすぎる',
'し過ぎる',
'したい',
'したら',
'したり',
Expand Down
31 changes: 31 additions & 0 deletions ext/js/language/ja/japanese-transforms.js
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,37 @@ export const japaneseTransforms = {
suffixInflection('來すぎる', '來る', ['v1'], ['vk']),
],
},
'-sugiru-kanji': {
name: '-sugiru',
description: 'Shows something "is too..." or someone is doing something "too much".\n' +
'Usage: Attach 過ぎる to the continuative form (renyoukei) of verbs, or to the stem of adjectives.',
i18n: [
{
language: 'ja',
name: '~過ぎる',
description: '程度や限度を超える',
},
],
rules: [
suffixInflection('過ぎる', 'い', ['v1'], ['adj-i']),
suffixInflection('過ぎる', 'る', ['v1'], ['v1']),
suffixInflection('い過ぎる', 'う', ['v1'], ['v5']),
suffixInflection('き過ぎる', 'く', ['v1'], ['v5']),
suffixInflection('ぎ過ぎる', 'ぐ', ['v1'], ['v5']),
suffixInflection('し過ぎる', 'す', ['v1'], ['v5']),
suffixInflection('ち過ぎる', 'つ', ['v1'], ['v5']),
suffixInflection('に過ぎる', 'ぬ', ['v1'], ['v5']),
suffixInflection('び過ぎる', 'ぶ', ['v1'], ['v5']),
suffixInflection('み過ぎる', 'む', ['v1'], ['v5']),
suffixInflection('り過ぎる', 'る', ['v1'], ['v5']),
suffixInflection('じ過ぎる', 'ずる', ['v1'], ['vz']),
suffixInflection('し過ぎる', 'する', ['v1'], ['vs']),
suffixInflection('為過ぎる', '為る', ['v1'], ['vs']),
suffixInflection('き過ぎる', 'くる', ['v1'], ['vk']),
suffixInflection('来過ぎる', '来る', ['v1'], ['vk']),
suffixInflection('來過ぎる', '來る', ['v1'], ['vk']),
],
},
'-tai': {
name: '-tai',
description: '1. Expresses the feeling of desire or hope.\n' +
Expand Down
17 changes: 17 additions & 0 deletions test/language/japanese-transforms.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ const tests = [
{term: '愛しい', source: '愛しい', rule: 'adj-i', reasons: []},
{term: '愛しい', source: '愛しそう', rule: 'adj-i', reasons: ['-sou']},
{term: '愛しい', source: '愛しすぎる', rule: 'adj-i', reasons: ['-sugiru']},
{term: '愛しい', source: '愛し過ぎる', rule: 'adj-i', reasons: ['-sugiru-kanji']},
{term: '愛しい', source: '愛しかったら', rule: 'adj-i', reasons: ['-tara']},
{term: '愛しい', source: '愛しかったり', rule: 'adj-i', reasons: ['-tari']},
{term: '愛しい', source: '愛しくて', rule: 'adj-i', reasons: ['-te']},
Expand Down Expand Up @@ -78,6 +79,7 @@ const tests = [
{term: '食べる', source: '食べなさい', rule: 'v1', reasons: ['-nasai']},
{term: '食べる', source: '食べそう', rule: 'v1', reasons: ['-sou']},
{term: '食べる', source: '食べすぎる', rule: 'v1', reasons: ['-sugiru']},
{term: '食べる', source: '食べ過ぎる', rule: 'v1', reasons: ['-sugiru-kanji']},
{term: '食べる', source: '食べたい', rule: 'v1', reasons: ['-tai']},
{term: '食べる', source: '食べたがる', rule: 'v1', reasons: ['-tai', '-garu']},
{term: '食べる', source: '食べたら', rule: 'v1', reasons: ['-tara']},
Expand Down Expand Up @@ -133,6 +135,7 @@ const tests = [
{term: '買う', source: '買いなさい', rule: 'v5', reasons: ['-nasai']},
{term: '買う', source: '買いそう', rule: 'v5', reasons: ['-sou']},
{term: '買う', source: '買いすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '買う', source: '買い過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '買う', source: '買いたい', rule: 'v5', reasons: ['-tai']},
{term: '買う', source: '買いたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '買う', source: '買ったら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -188,6 +191,7 @@ const tests = [
{term: '行く', source: '行きなさい', rule: 'v5', reasons: ['-nasai']},
{term: '行く', source: '行きそう', rule: 'v5', reasons: ['-sou']},
{term: '行く', source: '行きすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '行く', source: '行き過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '行く', source: '行きたい', rule: 'v5', reasons: ['-tai']},
{term: '行く', source: '行きたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '行く', source: '行いたら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -243,6 +247,7 @@ const tests = [
{term: '泳ぐ', source: '泳ぎなさい', rule: 'v5', reasons: ['-nasai']},
{term: '泳ぐ', source: '泳ぎそう', rule: 'v5', reasons: ['-sou']},
{term: '泳ぐ', source: '泳ぎすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '泳ぐ', source: '泳ぎ過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '泳ぐ', source: '泳ぎたい', rule: 'v5', reasons: ['-tai']},
{term: '泳ぐ', source: '泳ぎたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '泳ぐ', source: '泳いだら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -297,6 +302,7 @@ const tests = [
{term: '話す', source: '話しなさい', rule: 'v5', reasons: ['-nasai']},
{term: '話す', source: '話しそう', rule: 'v5', reasons: ['-sou']},
{term: '話す', source: '話しすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '話す', source: '話し過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '話す', source: '話したい', rule: 'v5', reasons: ['-tai']},
{term: '話す', source: '話したがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '話す', source: '話したら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -354,6 +360,7 @@ const tests = [
{term: '待つ', source: '待ちなさい', rule: 'v5', reasons: ['-nasai']},
{term: '待つ', source: '待ちそう', rule: 'v5', reasons: ['-sou']},
{term: '待つ', source: '待ちすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '待つ', source: '待ち過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '待つ', source: '待ちたい', rule: 'v5', reasons: ['-tai']},
{term: '待つ', source: '待ちたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '待つ', source: '待ったら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -409,6 +416,7 @@ const tests = [
{term: '死ぬ', source: '死になさい', rule: 'v5', reasons: ['-nasai']},
{term: '死ぬ', source: '死にそう', rule: 'v5', reasons: ['-sou']},
{term: '死ぬ', source: '死にすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '死ぬ', source: '死に過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '死ぬ', source: '死にたい', rule: 'v5', reasons: ['-tai']},
{term: '死ぬ', source: '死にたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '死ぬ', source: '死んだら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -463,6 +471,7 @@ const tests = [
{term: '遊ぶ', source: '遊びなさい', rule: 'v5', reasons: ['-nasai']},
{term: '遊ぶ', source: '遊びそう', rule: 'v5', reasons: ['-sou']},
{term: '遊ぶ', source: '遊びすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '遊ぶ', source: '遊び過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '遊ぶ', source: '遊びたい', rule: 'v5', reasons: ['-tai']},
{term: '遊ぶ', source: '遊びたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '遊ぶ', source: '遊んだら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -517,6 +526,7 @@ const tests = [
{term: '飲む', source: '飲みなさい', rule: 'v5', reasons: ['-nasai']},
{term: '飲む', source: '飲みそう', rule: 'v5', reasons: ['-sou']},
{term: '飲む', source: '飲みすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '飲む', source: '飲み過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '飲む', source: '飲みたい', rule: 'v5', reasons: ['-tai']},
{term: '飲む', source: '飲みたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '飲む', source: '飲んだら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -571,6 +581,7 @@ const tests = [
{term: '作る', source: '作りなさい', rule: 'v5', reasons: ['-nasai']},
{term: '作る', source: '作りそう', rule: 'v5', reasons: ['-sou']},
{term: '作る', source: '作りすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '作る', source: '作り過ぎる', rule: 'v5', reasons: ['-sugiru-kanji']},
{term: '作る', source: '作りたい', rule: 'v5', reasons: ['-tai']},
{term: '作る', source: '作りたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '作る', source: '作ったら', rule: 'v5', reasons: ['-tara']},
Expand Down Expand Up @@ -630,6 +641,7 @@ const tests = [
{term: '為る', source: '為なさい', rule: 'vs', reasons: ['-nasai']},
{term: '為る', source: '為そう', rule: 'vs', reasons: ['-sou']},
{term: '為る', source: '為すぎる', rule: 'vs', reasons: ['-sugiru']},
{term: '為る', source: '為過ぎる', rule: 'vs', reasons: ['-sugiru-kanji']},
{term: '為る', source: '為たい', rule: 'vs', reasons: ['-tai']},
{term: '為る', source: '為たがる', rule: 'vs', reasons: ['-tai', '-garu']},
{term: '為る', source: '為たら', rule: 'vs', reasons: ['-tara']},
Expand Down Expand Up @@ -686,6 +698,7 @@ const tests = [
{term: 'する', source: 'しなさい', rule: 'vs', reasons: ['-nasai']},
{term: 'する', source: 'しそう', rule: 'vs', reasons: ['-sou']},
{term: 'する', source: 'しすぎる', rule: 'vs', reasons: ['-sugiru']},
{term: 'する', source: 'し過ぎる', rule: 'vs', reasons: ['-sugiru-kanji']},
{term: 'する', source: 'したい', rule: 'vs', reasons: ['-tai']},
{term: 'する', source: 'したがる', rule: 'vs', reasons: ['-tai', '-garu']},
{term: 'する', source: 'したら', rule: 'vs', reasons: ['-tara']},
Expand Down Expand Up @@ -737,6 +750,7 @@ const tests = [
{term: '来る', source: '来なさい', rule: 'vk', reasons: ['-nasai']},
{term: '来る', source: '来そう', rule: 'vk', reasons: ['-sou']},
{term: '来る', source: '来すぎる', rule: 'vk', reasons: ['-sugiru']},
{term: '来る', source: '来過ぎる', rule: 'vk', reasons: ['-sugiru-kanji']},
{term: '来る', source: '来たい', rule: 'vk', reasons: ['-tai']},
{term: '来る', source: '来たがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: '来る', source: '来たら', rule: 'vk', reasons: ['-tara']},
Expand Down Expand Up @@ -787,6 +801,7 @@ const tests = [
{term: '來る', source: '來なさい', rule: 'vk', reasons: ['-nasai']},
{term: '來る', source: '來そう', rule: 'vk', reasons: ['-sou']},
{term: '來る', source: '來すぎる', rule: 'vk', reasons: ['-sugiru']},
{term: '來る', source: '來過ぎる', rule: 'vk', reasons: ['-sugiru-kanji']},
{term: '來る', source: '來たい', rule: 'vk', reasons: ['-tai']},
{term: '來る', source: '來たがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: '來る', source: '來たら', rule: 'vk', reasons: ['-tara']},
Expand Down Expand Up @@ -837,6 +852,7 @@ const tests = [
{term: 'くる', source: 'きなさい', rule: 'vk', reasons: ['-nasai']},
{term: 'くる', source: 'きそう', rule: 'vk', reasons: ['-sou']},
{term: 'くる', source: 'きすぎる', rule: 'vk', reasons: ['-sugiru']},
{term: 'くる', source: 'き過ぎる', rule: 'vk', reasons: ['-sugiru-kanji']},
{term: 'くる', source: 'きたい', rule: 'vk', reasons: ['-tai']},
{term: 'くる', source: 'きたがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: 'くる', source: 'きたら', rule: 'vk', reasons: ['-tara']},
Expand Down Expand Up @@ -899,6 +915,7 @@ const tests = [
{term: '論ずる', source: '論じなさい', rule: 'vz', reasons: ['-nasai']},
{term: '論ずる', source: '論じそう', rule: 'vz', reasons: ['-sou']},
{term: '論ずる', source: '論じすぎる', rule: 'vz', reasons: ['-sugiru']},
{term: '論ずる', source: '論じ過ぎる', rule: 'vz', reasons: ['-sugiru-kanji']},
{term: '論ずる', source: '論じたい', rule: 'vz', reasons: ['-tai']},
{term: '論ずる', source: '論じたがる', rule: 'vz', reasons: ['-tai', '-garu']},
{term: '論ずる', source: '論じたら', rule: 'vz', reasons: ['-tara']},
Expand Down

0 comments on commit a4ee09f

Please sign in to comment.