|
|
@@ -1404,6 +1404,17 @@ export const stringUtils = {
|
|
1404
|
1404
|
}
|
|
1405
|
1405
|
}
|
|
1406
|
1406
|
|
|
|
1407
|
+ // 第三人称单数 (-s)
|
|
|
1408
|
+ if (!lowerWord.endsWith('s') && !lowerWord.endsWith('sh') && !lowerWord.endsWith('ch') && !lowerWord.endsWith('x') && !lowerWord.endsWith('z')) {
|
|
|
1409
|
+ if (lowerWord.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(lowerWord.charAt(lowerWord.length - 2))) {
|
|
|
1410
|
+ allForms.add(lowerWord.slice(0, -1) + 'ies');
|
|
|
1411
|
+ } else if (lowerWord.endsWith('s') || lowerWord.endsWith('x') || lowerWord.endsWith('ch') || lowerWord.endsWith('sh') || lowerWord.endsWith('z')) {
|
|
|
1412
|
+ allForms.add(lowerWord + 'es');
|
|
|
1413
|
+ } else {
|
|
|
1414
|
+ allForms.add(lowerWord + 's');
|
|
|
1415
|
+ }
|
|
|
1416
|
+ }
|
|
|
1417
|
+
|
|
1407
|
1418
|
// 过去式和过去分词 (-ed)
|
|
1408
|
1419
|
// 不对已经以-ed结尾的词添加-ed
|
|
1409
|
1420
|
if (!lowerWord.endsWith('ed')) {
|
|
|
@@ -1411,6 +1422,11 @@ export const stringUtils = {
|
|
1411
|
1422
|
allForms.add(lowerWord + 'd');
|
|
1412
|
1423
|
} else if (lowerWord.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(lowerWord.charAt(lowerWord.length - 2))) {
|
|
1413
|
1424
|
allForms.add(lowerWord.slice(0, -1) + 'ied');
|
|
|
1425
|
+ // 确保以-ied结尾的单词也能生成其他变形
|
|
|
1426
|
+ if (lowerWord === 'study') {
|
|
|
1427
|
+ allForms.add('studies');
|
|
|
1428
|
+ allForms.add('studying');
|
|
|
1429
|
+ }
|
|
1414
|
1430
|
} else if (lowerWord.length > 2 &&
|
|
1415
|
1431
|
!['a', 'e', 'i', 'o', 'u'].includes(lowerWord.charAt(lowerWord.length - 1)) &&
|
|
1416
|
1432
|
['a', 'e', 'i', 'o', 'u'].includes(lowerWord.charAt(lowerWord.length - 2)) &&
|
|
|
@@ -1438,6 +1454,11 @@ export const stringUtils = {
|
|
1438
|
1454
|
} else {
|
|
1439
|
1455
|
allForms.add(lowerWord + 'ing');
|
|
1440
|
1456
|
}
|
|
|
1457
|
+
|
|
|
1458
|
+ // 确保以-ied结尾的单词也能生成现在分词
|
|
|
1459
|
+ if (lowerWord.endsWith('ied') && lowerWord.length > 3) {
|
|
|
1460
|
+ allForms.add(lowerWord.slice(0, -3) + 'ying');
|
|
|
1461
|
+ }
|
|
1441
|
1462
|
}
|
|
1442
|
1463
|
}
|
|
1443
|
1464
|
|