@termdock/twlint 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/dictionary-manager.d.ts +1 -1
- package/dist/core/dictionary-manager.d.ts.map +1 -1
- package/dist/core/dictionary-manager.js +76 -24
- package/dist/core/dictionary-manager.js.map +1 -1
- package/dist/dictionaries/academic.json +1 -1
- package/dist/dictionaries/ai-emerging-tech.json +1 -1
- package/dist/dictionaries/business-finance.json +1 -1
- package/dist/dictionaries/core.json +610 -2
- package/dist/dictionaries/hardware-3c.json +1 -1
- package/dist/dictionaries/index.json +4 -4
- package/dist/dictionaries/network-cloud.json +1 -1
- package/dist/dictionaries/operating-system.json +1 -1
- package/dist/dictionaries/social-media.json +1 -1
- package/dist/dictionaries/software-development.json +34 -2
- package/dist/dictionaries/user-interface.json +1 -1
- package/package.json +2 -2
|
@@ -6,7 +6,7 @@ export declare class DictionaryManager {
|
|
|
6
6
|
constructor(dictionariesPath?: string, maxCacheSize?: number);
|
|
7
7
|
loadDictionary(name: string): Promise<CompiledDict>;
|
|
8
8
|
findMatches(text: string): MatchResult[];
|
|
9
|
-
private
|
|
9
|
+
private addMatch;
|
|
10
10
|
scanAvailableDictionaries(): Promise<string[]>;
|
|
11
11
|
getLoadedDictionaries(): string[];
|
|
12
12
|
clearCache(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-manager.d.ts","sourceRoot":"","sources":["../../src/core/dictionary-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAA;AAK7E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;gBAE5C,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IActD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"dictionary-manager.d.ts","sourceRoot":"","sources":["../../src/core/dictionary-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAmB,MAAM,aAAa,CAAA;AAK7E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;gBAE5C,gBAAgB,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IActD,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAiBzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE;IAgIxC,OAAO,CAAC,QAAQ;IAgBV,yBAAyB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAepD,qBAAqB,IAAI,MAAM,EAAE;IAIjC,UAAU,IAAI,IAAI;IAKlB,wBAAwB,IAAI,MAAM,EAAE;CAIrC"}
|
|
@@ -38,7 +38,6 @@ export class DictionaryManager {
|
|
|
38
38
|
}
|
|
39
39
|
findMatches(text) {
|
|
40
40
|
const allMatches = [];
|
|
41
|
-
const processedRanges = new Map(); // 改為 Map 來追蹤最佳匹配
|
|
42
41
|
for (const dict of this.cache.values()) {
|
|
43
42
|
// 先處理所有基本詞彙匹配
|
|
44
43
|
const basicTerms = Object.keys(dict.lookup).filter(term => !term.includes('_'));
|
|
@@ -51,7 +50,7 @@ export class DictionaryManager {
|
|
|
51
50
|
continue;
|
|
52
51
|
const matches = strategy.match(text, term, entry.context);
|
|
53
52
|
for (const match of matches) {
|
|
54
|
-
this.
|
|
53
|
+
this.addMatch(allMatches, match, entry, dict.metadata.name);
|
|
55
54
|
}
|
|
56
55
|
// 對於語境敏感詞彙,同時檢查其變體
|
|
57
56
|
if (entry.match_type === 'context_sensitive') {
|
|
@@ -63,42 +62,95 @@ export class DictionaryManager {
|
|
|
63
62
|
continue;
|
|
64
63
|
const variantMatches = variantStrategy.match(text, term, variantEntry.context);
|
|
65
64
|
for (const match of variantMatches) {
|
|
66
|
-
this.
|
|
65
|
+
this.addMatch(allMatches, match, variantEntry, dict.metadata.name, true);
|
|
67
66
|
}
|
|
68
67
|
}
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
|
-
//
|
|
73
|
-
|
|
71
|
+
// 1. 排序:優先長度,其次信心度,最後位置
|
|
72
|
+
// Sort logic: Longest length > Higher confidence > Earlier position
|
|
73
|
+
allMatches.sort((a, b) => {
|
|
74
|
+
const lenA = a.end - a.start;
|
|
75
|
+
const lenB = b.end - b.start;
|
|
76
|
+
if (lenA !== lenB)
|
|
77
|
+
return lenB - lenA; // Longest first
|
|
74
78
|
if (Math.abs(a.confidence - b.confidence) > 0.01) {
|
|
75
|
-
return b.confidence - a.confidence;
|
|
79
|
+
return b.confidence - a.confidence; // Higher confidence first
|
|
76
80
|
}
|
|
77
|
-
return a.start - b.start;
|
|
81
|
+
return a.start - b.start; // Earlier position first
|
|
78
82
|
});
|
|
83
|
+
// 2. 去重:過濾掉與高優先級匹配重疊的結果
|
|
84
|
+
// Deduplication using Interval Merging (O(N log N) or O(N) since already sorted by length?)
|
|
85
|
+
// Actually, simply maintaining a list of disjoint intervals is enough.
|
|
86
|
+
// Since matches are sorted by Length DESC, we iterate and check if the current match
|
|
87
|
+
// overlaps with ANY already accepted match.
|
|
88
|
+
// To do this efficiently:
|
|
89
|
+
// We can use a simple boolean array if text is short, but text can be long.
|
|
90
|
+
// Better: Maintain a sorted list of accepted intervals [start, end).
|
|
91
|
+
// For each candidate, check if it overlaps with any interval in the list.
|
|
92
|
+
// Since we process in priority order, if it doesn't overlap, we add it.
|
|
93
|
+
const acceptedMatches = [];
|
|
94
|
+
// 為了效能,我們實作一個簡單的區間檢查
|
|
95
|
+
// 由於我們可能有大量的匹配,線性掃描 acceptedMatches (O(M)) 對每個候選 (N) -> O(NM)。
|
|
96
|
+
// 如果 M 很大,這會慢。
|
|
97
|
+
// 優化:使用一個簡單的遮罩或區間樹?
|
|
98
|
+
// 考量到 JS 的 overhead,對於一般長度的文本,線性掃描可能已經足夠快。
|
|
99
|
+
// 但 Reviewer 提到效能,我們來做一個稍微好一點的檢查。
|
|
100
|
+
// 我們可以使用一個 Uint8Array 來標記被佔用的位置,如果文本長度允許 (e.g. < 1MB)。
|
|
101
|
+
// 這是 O(1) 檢查,O(L) 標記。
|
|
102
|
+
// 如果文本太長,回退到區間檢查。
|
|
103
|
+
// 假設大部分檢查的文本都在 100KB 以內。
|
|
104
|
+
if (text.length < 100000) {
|
|
105
|
+
const occupied = new Uint8Array(text.length);
|
|
106
|
+
for (const candidate of allMatches) {
|
|
107
|
+
let isOverlapping = false;
|
|
108
|
+
// Check overlap
|
|
109
|
+
for (let i = candidate.start; i < candidate.end; i++) {
|
|
110
|
+
if (occupied[i] === 1) {
|
|
111
|
+
isOverlapping = true;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (!isOverlapping) {
|
|
116
|
+
acceptedMatches.push(candidate);
|
|
117
|
+
// Mark occupied
|
|
118
|
+
for (let i = candidate.start; i < candidate.end; i++) {
|
|
119
|
+
occupied[i] = 1;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Fallback for very long text: Interval List
|
|
126
|
+
// Keep intervals sorted by start
|
|
127
|
+
const acceptedIntervals = [];
|
|
128
|
+
for (const candidate of allMatches) {
|
|
129
|
+
// Binary search or linear scan? Linear scan is O(M).
|
|
130
|
+
// Check overlap with any accepted interval
|
|
131
|
+
const isOverlapping = acceptedIntervals.some(interval => candidate.start < interval.end && candidate.end > interval.start);
|
|
132
|
+
if (!isOverlapping) {
|
|
133
|
+
acceptedMatches.push(candidate);
|
|
134
|
+
acceptedIntervals.push({ start: candidate.start, end: candidate.end });
|
|
135
|
+
// No need to sort acceptedIntervals every time if we just use .some()
|
|
136
|
+
// But for binary search we would need to maintain order.
|
|
137
|
+
// Given the typical number of matches, .some() is acceptable here compared to strict O(N^2) if M is small.
|
|
138
|
+
// Wait, previous logic WAS O(N*M) where M is accepted count. This is same.
|
|
139
|
+
// But Uint8Array is O(N * Len).
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// 3. 最終排序:按位置輸出,符合閱讀順序
|
|
144
|
+
return acceptedMatches.sort((a, b) => a.start - b.start);
|
|
79
145
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const newMatch = {
|
|
146
|
+
addMatch(allMatches, match, entry, dictName, isVariant = false) {
|
|
147
|
+
allMatches.push({
|
|
83
148
|
...match,
|
|
84
149
|
replacement: entry.taiwan,
|
|
85
150
|
confidence: entry.confidence,
|
|
86
151
|
rule: `${dictName}-${entry.match_type || 'exact'}${isVariant ? '-variant' : ''}`,
|
|
87
152
|
autofix_safe: entry.autofix_safe || false
|
|
88
|
-
};
|
|
89
|
-
// 如果這個範圍還沒有匹配,或者新匹配的信心度更高
|
|
90
|
-
const existingMatch = processedRanges.get(rangeKey);
|
|
91
|
-
if (!existingMatch || newMatch.confidence > existingMatch.confidence) {
|
|
92
|
-
if (existingMatch) {
|
|
93
|
-
// 移除舊的匹配
|
|
94
|
-
const index = allMatches.indexOf(existingMatch);
|
|
95
|
-
if (index > -1) {
|
|
96
|
-
allMatches.splice(index, 1);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
processedRanges.set(rangeKey, newMatch);
|
|
100
|
-
allMatches.push(newMatch);
|
|
101
|
-
}
|
|
153
|
+
});
|
|
102
154
|
}
|
|
103
155
|
async scanAvailableDictionaries() {
|
|
104
156
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary-manager.js","sourceRoot":"","sources":["../../src/core/dictionary-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,MAAM,OAAO,iBAAiB;IACpB,KAAK,GAAG,IAAI,QAAQ,CAAuB,EAAE,CAAC,CAAA,CAAC,cAAc;IACpD,gBAAgB,CAAQ;IACxB,gBAAgB,CAAuB;IAExD,YAAY,gBAAyB,EAAE,YAAqB;QAC1D,gBAAgB;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAuB,YAAY,IAAI,EAAE,CAAC,CAAA;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACrB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,2BAA2B;YAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAA;QAChE,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA;QAC9B,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,OAAO,CAAC,CAAA;YAC5D,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACjD,MAAM,IAAI,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAE9C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC1B,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,MAAM,UAAU,GAAkB,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"dictionary-manager.js","sourceRoot":"","sources":["../../src/core/dictionary-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"name": "core",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"entries":
|
|
4
|
+
"version": "1.2.1",
|
|
5
|
+
"entries": 165
|
|
6
6
|
},
|
|
7
7
|
"lookup": {
|
|
8
8
|
"访问": {
|
|
@@ -4012,6 +4012,614 @@
|
|
|
4012
4012
|
"reason": "台灣檔案操作標準",
|
|
4013
4013
|
"match_type": "exact",
|
|
4014
4014
|
"autofix_safe": true
|
|
4015
|
+
},
|
|
4016
|
+
"包含": {
|
|
4017
|
+
"taiwan": "包含",
|
|
4018
|
+
"confidence": 1,
|
|
4019
|
+
"category": "fixed-term",
|
|
4020
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4021
|
+
"match_type": "exact",
|
|
4022
|
+
"autofix_safe": false
|
|
4023
|
+
},
|
|
4024
|
+
"包含_contain": {
|
|
4025
|
+
"taiwan": "包含",
|
|
4026
|
+
"confidence": 1,
|
|
4027
|
+
"category": "fixed-term",
|
|
4028
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4029
|
+
"match_type": "exact",
|
|
4030
|
+
"autofix_safe": false
|
|
4031
|
+
},
|
|
4032
|
+
"包括": {
|
|
4033
|
+
"taiwan": "包括",
|
|
4034
|
+
"confidence": 1,
|
|
4035
|
+
"category": "fixed-term",
|
|
4036
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4037
|
+
"match_type": "exact",
|
|
4038
|
+
"autofix_safe": false
|
|
4039
|
+
},
|
|
4040
|
+
"包括_include": {
|
|
4041
|
+
"taiwan": "包括",
|
|
4042
|
+
"confidence": 1,
|
|
4043
|
+
"category": "fixed-term",
|
|
4044
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4045
|
+
"match_type": "exact",
|
|
4046
|
+
"autofix_safe": false
|
|
4047
|
+
},
|
|
4048
|
+
"包装": {
|
|
4049
|
+
"taiwan": "包裝",
|
|
4050
|
+
"confidence": 1,
|
|
4051
|
+
"category": "fixed-term",
|
|
4052
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4053
|
+
"match_type": "exact",
|
|
4054
|
+
"autofix_safe": false
|
|
4055
|
+
},
|
|
4056
|
+
"包装_packaging": {
|
|
4057
|
+
"taiwan": "包裝",
|
|
4058
|
+
"confidence": 1,
|
|
4059
|
+
"category": "fixed-term",
|
|
4060
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4061
|
+
"match_type": "exact",
|
|
4062
|
+
"autofix_safe": false
|
|
4063
|
+
},
|
|
4064
|
+
"包裝": {
|
|
4065
|
+
"taiwan": "包裝",
|
|
4066
|
+
"confidence": 1,
|
|
4067
|
+
"category": "fixed-term",
|
|
4068
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4069
|
+
"match_type": "exact",
|
|
4070
|
+
"autofix_safe": false
|
|
4071
|
+
},
|
|
4072
|
+
"包裝_packaging": {
|
|
4073
|
+
"taiwan": "包裝",
|
|
4074
|
+
"confidence": 1,
|
|
4075
|
+
"category": "fixed-term",
|
|
4076
|
+
"reason": "避免 '包' 被錯誤匹配",
|
|
4077
|
+
"match_type": "exact",
|
|
4078
|
+
"autofix_safe": false
|
|
4079
|
+
},
|
|
4080
|
+
"人类": {
|
|
4081
|
+
"taiwan": "人類",
|
|
4082
|
+
"confidence": 1,
|
|
4083
|
+
"category": "fixed-term",
|
|
4084
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4085
|
+
"match_type": "exact",
|
|
4086
|
+
"autofix_safe": false
|
|
4087
|
+
},
|
|
4088
|
+
"人类_human": {
|
|
4089
|
+
"taiwan": "人類",
|
|
4090
|
+
"confidence": 1,
|
|
4091
|
+
"category": "fixed-term",
|
|
4092
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4093
|
+
"match_type": "exact",
|
|
4094
|
+
"autofix_safe": false
|
|
4095
|
+
},
|
|
4096
|
+
"人類": {
|
|
4097
|
+
"taiwan": "人類",
|
|
4098
|
+
"confidence": 1,
|
|
4099
|
+
"category": "fixed-term",
|
|
4100
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4101
|
+
"match_type": "exact",
|
|
4102
|
+
"autofix_safe": false
|
|
4103
|
+
},
|
|
4104
|
+
"人類_human": {
|
|
4105
|
+
"taiwan": "人類",
|
|
4106
|
+
"confidence": 1,
|
|
4107
|
+
"category": "fixed-term",
|
|
4108
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4109
|
+
"match_type": "exact",
|
|
4110
|
+
"autofix_safe": false
|
|
4111
|
+
},
|
|
4112
|
+
"种类": {
|
|
4113
|
+
"taiwan": "種類",
|
|
4114
|
+
"confidence": 1,
|
|
4115
|
+
"category": "fixed-term",
|
|
4116
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4117
|
+
"match_type": "exact",
|
|
4118
|
+
"autofix_safe": false
|
|
4119
|
+
},
|
|
4120
|
+
"种类_kind": {
|
|
4121
|
+
"taiwan": "種類",
|
|
4122
|
+
"confidence": 1,
|
|
4123
|
+
"category": "fixed-term",
|
|
4124
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4125
|
+
"match_type": "exact",
|
|
4126
|
+
"autofix_safe": false
|
|
4127
|
+
},
|
|
4128
|
+
"種類": {
|
|
4129
|
+
"taiwan": "種類",
|
|
4130
|
+
"confidence": 1,
|
|
4131
|
+
"category": "fixed-term",
|
|
4132
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4133
|
+
"match_type": "exact",
|
|
4134
|
+
"autofix_safe": false
|
|
4135
|
+
},
|
|
4136
|
+
"種類_kind": {
|
|
4137
|
+
"taiwan": "種類",
|
|
4138
|
+
"confidence": 1,
|
|
4139
|
+
"category": "fixed-term",
|
|
4140
|
+
"reason": "避免 '类' 被錯誤匹配",
|
|
4141
|
+
"match_type": "exact",
|
|
4142
|
+
"autofix_safe": false
|
|
4143
|
+
},
|
|
4144
|
+
"多云": {
|
|
4145
|
+
"taiwan": "多雲",
|
|
4146
|
+
"confidence": 1,
|
|
4147
|
+
"category": "fixed-term",
|
|
4148
|
+
"reason": "避免 '云' 被錯誤匹配",
|
|
4149
|
+
"match_type": "exact",
|
|
4150
|
+
"autofix_safe": false
|
|
4151
|
+
},
|
|
4152
|
+
"多云_cloudy": {
|
|
4153
|
+
"taiwan": "多雲",
|
|
4154
|
+
"confidence": 1,
|
|
4155
|
+
"category": "fixed-term",
|
|
4156
|
+
"reason": "避免 '云' 被錯誤匹配",
|
|
4157
|
+
"match_type": "exact",
|
|
4158
|
+
"autofix_safe": false
|
|
4159
|
+
},
|
|
4160
|
+
"多雲": {
|
|
4161
|
+
"taiwan": "多雲",
|
|
4162
|
+
"confidence": 1,
|
|
4163
|
+
"category": "fixed-term",
|
|
4164
|
+
"reason": "避免 '云' 被錯誤匹配",
|
|
4165
|
+
"match_type": "exact",
|
|
4166
|
+
"autofix_safe": false
|
|
4167
|
+
},
|
|
4168
|
+
"多雲_cloudy": {
|
|
4169
|
+
"taiwan": "多雲",
|
|
4170
|
+
"confidence": 1,
|
|
4171
|
+
"category": "fixed-term",
|
|
4172
|
+
"reason": "避免 '云' 被錯誤匹配",
|
|
4173
|
+
"match_type": "exact",
|
|
4174
|
+
"autofix_safe": false
|
|
4175
|
+
},
|
|
4176
|
+
"区域": {
|
|
4177
|
+
"taiwan": "區域",
|
|
4178
|
+
"confidence": 1,
|
|
4179
|
+
"category": "fixed-term",
|
|
4180
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4181
|
+
"match_type": "exact",
|
|
4182
|
+
"autofix_safe": false
|
|
4183
|
+
},
|
|
4184
|
+
"区域_region": {
|
|
4185
|
+
"taiwan": "區域",
|
|
4186
|
+
"confidence": 1,
|
|
4187
|
+
"category": "fixed-term",
|
|
4188
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4189
|
+
"match_type": "exact",
|
|
4190
|
+
"autofix_safe": false
|
|
4191
|
+
},
|
|
4192
|
+
"區域": {
|
|
4193
|
+
"taiwan": "區域",
|
|
4194
|
+
"confidence": 1,
|
|
4195
|
+
"category": "fixed-term",
|
|
4196
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4197
|
+
"match_type": "exact",
|
|
4198
|
+
"autofix_safe": false
|
|
4199
|
+
},
|
|
4200
|
+
"區域_region": {
|
|
4201
|
+
"taiwan": "區域",
|
|
4202
|
+
"confidence": 1,
|
|
4203
|
+
"category": "fixed-term",
|
|
4204
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4205
|
+
"match_type": "exact",
|
|
4206
|
+
"autofix_safe": false
|
|
4207
|
+
},
|
|
4208
|
+
"领域": {
|
|
4209
|
+
"taiwan": "領域",
|
|
4210
|
+
"confidence": 1,
|
|
4211
|
+
"category": "fixed-term",
|
|
4212
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4213
|
+
"match_type": "exact",
|
|
4214
|
+
"autofix_safe": false
|
|
4215
|
+
},
|
|
4216
|
+
"领域_field_domain": {
|
|
4217
|
+
"taiwan": "領域",
|
|
4218
|
+
"confidence": 1,
|
|
4219
|
+
"category": "fixed-term",
|
|
4220
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4221
|
+
"match_type": "exact",
|
|
4222
|
+
"autofix_safe": false
|
|
4223
|
+
},
|
|
4224
|
+
"領域": {
|
|
4225
|
+
"taiwan": "領域",
|
|
4226
|
+
"confidence": 1,
|
|
4227
|
+
"category": "fixed-term",
|
|
4228
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4229
|
+
"match_type": "exact",
|
|
4230
|
+
"autofix_safe": false
|
|
4231
|
+
},
|
|
4232
|
+
"領域_field_domain": {
|
|
4233
|
+
"taiwan": "領域",
|
|
4234
|
+
"confidence": 1,
|
|
4235
|
+
"category": "fixed-term",
|
|
4236
|
+
"reason": "避免 '域' 被錯誤匹配",
|
|
4237
|
+
"match_type": "exact",
|
|
4238
|
+
"autofix_safe": false
|
|
4239
|
+
},
|
|
4240
|
+
"客栈": {
|
|
4241
|
+
"taiwan": "客棧",
|
|
4242
|
+
"confidence": 1,
|
|
4243
|
+
"category": "fixed-term",
|
|
4244
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4245
|
+
"match_type": "exact",
|
|
4246
|
+
"autofix_safe": false
|
|
4247
|
+
},
|
|
4248
|
+
"客栈_inn": {
|
|
4249
|
+
"taiwan": "客棧",
|
|
4250
|
+
"confidence": 1,
|
|
4251
|
+
"category": "fixed-term",
|
|
4252
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4253
|
+
"match_type": "exact",
|
|
4254
|
+
"autofix_safe": false
|
|
4255
|
+
},
|
|
4256
|
+
"客棧": {
|
|
4257
|
+
"taiwan": "客棧",
|
|
4258
|
+
"confidence": 1,
|
|
4259
|
+
"category": "fixed-term",
|
|
4260
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4261
|
+
"match_type": "exact",
|
|
4262
|
+
"autofix_safe": false
|
|
4263
|
+
},
|
|
4264
|
+
"客棧_inn": {
|
|
4265
|
+
"taiwan": "客棧",
|
|
4266
|
+
"confidence": 1,
|
|
4267
|
+
"category": "fixed-term",
|
|
4268
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4269
|
+
"match_type": "exact",
|
|
4270
|
+
"autofix_safe": false
|
|
4271
|
+
},
|
|
4272
|
+
"栈道": {
|
|
4273
|
+
"taiwan": "棧道",
|
|
4274
|
+
"confidence": 1,
|
|
4275
|
+
"category": "fixed-term",
|
|
4276
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4277
|
+
"match_type": "exact",
|
|
4278
|
+
"autofix_safe": false
|
|
4279
|
+
},
|
|
4280
|
+
"栈道_plank_road": {
|
|
4281
|
+
"taiwan": "棧道",
|
|
4282
|
+
"confidence": 1,
|
|
4283
|
+
"category": "fixed-term",
|
|
4284
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4285
|
+
"match_type": "exact",
|
|
4286
|
+
"autofix_safe": false
|
|
4287
|
+
},
|
|
4288
|
+
"棧道": {
|
|
4289
|
+
"taiwan": "棧道",
|
|
4290
|
+
"confidence": 1,
|
|
4291
|
+
"category": "fixed-term",
|
|
4292
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4293
|
+
"match_type": "exact",
|
|
4294
|
+
"autofix_safe": false
|
|
4295
|
+
},
|
|
4296
|
+
"棧道_plank_road": {
|
|
4297
|
+
"taiwan": "棧道",
|
|
4298
|
+
"confidence": 1,
|
|
4299
|
+
"category": "fixed-term",
|
|
4300
|
+
"reason": "避免 '栈' 被錯誤匹配",
|
|
4301
|
+
"match_type": "exact",
|
|
4302
|
+
"autofix_safe": false
|
|
4303
|
+
},
|
|
4304
|
+
"河流": {
|
|
4305
|
+
"taiwan": "河流",
|
|
4306
|
+
"confidence": 1,
|
|
4307
|
+
"category": "fixed-term",
|
|
4308
|
+
"reason": "避免 '流' 被錯誤匹配",
|
|
4309
|
+
"match_type": "exact",
|
|
4310
|
+
"autofix_safe": false
|
|
4311
|
+
},
|
|
4312
|
+
"河流_river": {
|
|
4313
|
+
"taiwan": "河流",
|
|
4314
|
+
"confidence": 1,
|
|
4315
|
+
"category": "fixed-term",
|
|
4316
|
+
"reason": "避免 '流' 被錯誤匹配",
|
|
4317
|
+
"match_type": "exact",
|
|
4318
|
+
"autofix_safe": false
|
|
4319
|
+
},
|
|
4320
|
+
"交流": {
|
|
4321
|
+
"taiwan": "交流",
|
|
4322
|
+
"confidence": 1,
|
|
4323
|
+
"category": "fixed-term",
|
|
4324
|
+
"reason": "避免 '流' 被錯誤匹配",
|
|
4325
|
+
"match_type": "exact",
|
|
4326
|
+
"autofix_safe": false
|
|
4327
|
+
},
|
|
4328
|
+
"交流_communicate": {
|
|
4329
|
+
"taiwan": "交流",
|
|
4330
|
+
"confidence": 1,
|
|
4331
|
+
"category": "fixed-term",
|
|
4332
|
+
"reason": "避免 '流' 被錯誤匹配",
|
|
4333
|
+
"match_type": "exact",
|
|
4334
|
+
"autofix_safe": false
|
|
4335
|
+
},
|
|
4336
|
+
"考卷": {
|
|
4337
|
+
"taiwan": "考卷",
|
|
4338
|
+
"confidence": 1,
|
|
4339
|
+
"category": "fixed-term",
|
|
4340
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4341
|
+
"match_type": "exact",
|
|
4342
|
+
"autofix_safe": false
|
|
4343
|
+
},
|
|
4344
|
+
"考卷_exam_paper": {
|
|
4345
|
+
"taiwan": "考卷",
|
|
4346
|
+
"confidence": 1,
|
|
4347
|
+
"category": "fixed-term",
|
|
4348
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4349
|
+
"match_type": "exact",
|
|
4350
|
+
"autofix_safe": false
|
|
4351
|
+
},
|
|
4352
|
+
"问卷": {
|
|
4353
|
+
"taiwan": "問卷",
|
|
4354
|
+
"confidence": 1,
|
|
4355
|
+
"category": "fixed-term",
|
|
4356
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4357
|
+
"match_type": "exact",
|
|
4358
|
+
"autofix_safe": false
|
|
4359
|
+
},
|
|
4360
|
+
"问卷_questionnaire": {
|
|
4361
|
+
"taiwan": "問卷",
|
|
4362
|
+
"confidence": 1,
|
|
4363
|
+
"category": "fixed-term",
|
|
4364
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4365
|
+
"match_type": "exact",
|
|
4366
|
+
"autofix_safe": false
|
|
4367
|
+
},
|
|
4368
|
+
"問卷": {
|
|
4369
|
+
"taiwan": "問卷",
|
|
4370
|
+
"confidence": 1,
|
|
4371
|
+
"category": "fixed-term",
|
|
4372
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4373
|
+
"match_type": "exact",
|
|
4374
|
+
"autofix_safe": false
|
|
4375
|
+
},
|
|
4376
|
+
"問卷_questionnaire": {
|
|
4377
|
+
"taiwan": "問卷",
|
|
4378
|
+
"confidence": 1,
|
|
4379
|
+
"category": "fixed-term",
|
|
4380
|
+
"reason": "避免 '卷' 被錯誤匹配",
|
|
4381
|
+
"match_type": "exact",
|
|
4382
|
+
"autofix_safe": false
|
|
4383
|
+
},
|
|
4384
|
+
"土堆": {
|
|
4385
|
+
"taiwan": "土堆",
|
|
4386
|
+
"confidence": 1,
|
|
4387
|
+
"category": "fixed-term",
|
|
4388
|
+
"reason": "避免 '堆' 被錯誤匹配",
|
|
4389
|
+
"match_type": "exact",
|
|
4390
|
+
"autofix_safe": false
|
|
4391
|
+
},
|
|
4392
|
+
"土堆_mound": {
|
|
4393
|
+
"taiwan": "土堆",
|
|
4394
|
+
"confidence": 1,
|
|
4395
|
+
"category": "fixed-term",
|
|
4396
|
+
"reason": "避免 '堆' 被錯誤匹配",
|
|
4397
|
+
"match_type": "exact",
|
|
4398
|
+
"autofix_safe": false
|
|
4399
|
+
},
|
|
4400
|
+
"演算法": {
|
|
4401
|
+
"taiwan": "演算法",
|
|
4402
|
+
"confidence": 1,
|
|
4403
|
+
"category": "fixed-term",
|
|
4404
|
+
"reason": "避免 '算法' 錯誤匹配 '演算法'",
|
|
4405
|
+
"match_type": "exact",
|
|
4406
|
+
"autofix_safe": false
|
|
4407
|
+
},
|
|
4408
|
+
"演算法_algorithm": {
|
|
4409
|
+
"taiwan": "演算法",
|
|
4410
|
+
"confidence": 1,
|
|
4411
|
+
"category": "fixed-term",
|
|
4412
|
+
"reason": "避免 '算法' 錯誤匹配 '演算法'",
|
|
4413
|
+
"match_type": "exact",
|
|
4414
|
+
"autofix_safe": false
|
|
4415
|
+
},
|
|
4416
|
+
"类别": {
|
|
4417
|
+
"taiwan": "類別",
|
|
4418
|
+
"confidence": 1,
|
|
4419
|
+
"category": "fixed-term",
|
|
4420
|
+
"reason": "避免 '类' 錯誤匹配 '類別'",
|
|
4421
|
+
"match_type": "exact",
|
|
4422
|
+
"autofix_safe": false
|
|
4423
|
+
},
|
|
4424
|
+
"类别_class_category": {
|
|
4425
|
+
"taiwan": "類別",
|
|
4426
|
+
"confidence": 1,
|
|
4427
|
+
"category": "fixed-term",
|
|
4428
|
+
"reason": "避免 '类' 錯誤匹配 '類別'",
|
|
4429
|
+
"match_type": "exact",
|
|
4430
|
+
"autofix_safe": false
|
|
4431
|
+
},
|
|
4432
|
+
"類別": {
|
|
4433
|
+
"taiwan": "類別",
|
|
4434
|
+
"confidence": 1,
|
|
4435
|
+
"category": "fixed-term",
|
|
4436
|
+
"reason": "避免 '类' 錯誤匹配 '類別'",
|
|
4437
|
+
"match_type": "exact",
|
|
4438
|
+
"autofix_safe": false
|
|
4439
|
+
},
|
|
4440
|
+
"類別_class_category": {
|
|
4441
|
+
"taiwan": "類別",
|
|
4442
|
+
"confidence": 1,
|
|
4443
|
+
"category": "fixed-term",
|
|
4444
|
+
"reason": "避免 '类' 錯誤匹配 '類別'",
|
|
4445
|
+
"match_type": "exact",
|
|
4446
|
+
"autofix_safe": false
|
|
4447
|
+
},
|
|
4448
|
+
"云端": {
|
|
4449
|
+
"taiwan": "雲端",
|
|
4450
|
+
"confidence": 1,
|
|
4451
|
+
"category": "fixed-term",
|
|
4452
|
+
"reason": "避免 '云' 錯誤匹配 '雲端'",
|
|
4453
|
+
"match_type": "exact",
|
|
4454
|
+
"autofix_safe": false
|
|
4455
|
+
},
|
|
4456
|
+
"云端_cloud_computing": {
|
|
4457
|
+
"taiwan": "雲端",
|
|
4458
|
+
"confidence": 1,
|
|
4459
|
+
"category": "fixed-term",
|
|
4460
|
+
"reason": "避免 '云' 錯誤匹配 '雲端'",
|
|
4461
|
+
"match_type": "exact",
|
|
4462
|
+
"autofix_safe": false
|
|
4463
|
+
},
|
|
4464
|
+
"雲端": {
|
|
4465
|
+
"taiwan": "雲端",
|
|
4466
|
+
"confidence": 1,
|
|
4467
|
+
"category": "fixed-term",
|
|
4468
|
+
"reason": "避免 '云' 錯誤匹配 '雲端'",
|
|
4469
|
+
"match_type": "exact",
|
|
4470
|
+
"autofix_safe": false
|
|
4471
|
+
},
|
|
4472
|
+
"雲端_cloud_computing": {
|
|
4473
|
+
"taiwan": "雲端",
|
|
4474
|
+
"confidence": 1,
|
|
4475
|
+
"category": "fixed-term",
|
|
4476
|
+
"reason": "避免 '云' 錯誤匹配 '雲端'",
|
|
4477
|
+
"match_type": "exact",
|
|
4478
|
+
"autofix_safe": false
|
|
4479
|
+
},
|
|
4480
|
+
"堆积": {
|
|
4481
|
+
"taiwan": "堆積",
|
|
4482
|
+
"confidence": 1,
|
|
4483
|
+
"category": "fixed-term",
|
|
4484
|
+
"reason": "避免 '堆' 錯誤匹配 '堆積'",
|
|
4485
|
+
"match_type": "exact",
|
|
4486
|
+
"autofix_safe": false
|
|
4487
|
+
},
|
|
4488
|
+
"堆积_accumulate": {
|
|
4489
|
+
"taiwan": "堆積",
|
|
4490
|
+
"confidence": 1,
|
|
4491
|
+
"category": "fixed-term",
|
|
4492
|
+
"reason": "避免 '堆' 錯誤匹配 '堆積'",
|
|
4493
|
+
"match_type": "exact",
|
|
4494
|
+
"autofix_safe": false
|
|
4495
|
+
},
|
|
4496
|
+
"堆積": {
|
|
4497
|
+
"taiwan": "堆積",
|
|
4498
|
+
"confidence": 1,
|
|
4499
|
+
"category": "fixed-term",
|
|
4500
|
+
"reason": "避免 '堆' 錯誤匹配 '堆積'",
|
|
4501
|
+
"match_type": "exact",
|
|
4502
|
+
"autofix_safe": false
|
|
4503
|
+
},
|
|
4504
|
+
"堆積_accumulate": {
|
|
4505
|
+
"taiwan": "堆積",
|
|
4506
|
+
"confidence": 1,
|
|
4507
|
+
"category": "fixed-term",
|
|
4508
|
+
"reason": "避免 '堆' 錯誤匹配 '堆積'",
|
|
4509
|
+
"match_type": "exact",
|
|
4510
|
+
"autofix_safe": false
|
|
4511
|
+
},
|
|
4512
|
+
"串流": {
|
|
4513
|
+
"taiwan": "串流",
|
|
4514
|
+
"confidence": 1,
|
|
4515
|
+
"category": "fixed-term",
|
|
4516
|
+
"reason": "避免 '流' 錯誤匹配 '串流'",
|
|
4517
|
+
"match_type": "exact",
|
|
4518
|
+
"autofix_safe": false
|
|
4519
|
+
},
|
|
4520
|
+
"串流_streaming": {
|
|
4521
|
+
"taiwan": "串流",
|
|
4522
|
+
"confidence": 1,
|
|
4523
|
+
"category": "fixed-term",
|
|
4524
|
+
"reason": "避免 '流' 錯誤匹配 '串流'",
|
|
4525
|
+
"match_type": "exact",
|
|
4526
|
+
"autofix_safe": false
|
|
4527
|
+
},
|
|
4528
|
+
"玩路": {
|
|
4529
|
+
"taiwan": "網路",
|
|
4530
|
+
"confidence": 1,
|
|
4531
|
+
"category": "fixed-term",
|
|
4532
|
+
"reason": "避免 '网' 錯誤匹配 '網路'",
|
|
4533
|
+
"match_type": "exact",
|
|
4534
|
+
"autofix_safe": false
|
|
4535
|
+
},
|
|
4536
|
+
"玩路_internet": {
|
|
4537
|
+
"taiwan": "網路",
|
|
4538
|
+
"confidence": 1,
|
|
4539
|
+
"category": "fixed-term",
|
|
4540
|
+
"reason": "避免 '网' 錯誤匹配 '網路'",
|
|
4541
|
+
"match_type": "exact",
|
|
4542
|
+
"autofix_safe": false
|
|
4543
|
+
},
|
|
4544
|
+
"網路": {
|
|
4545
|
+
"taiwan": "網路",
|
|
4546
|
+
"confidence": 1,
|
|
4547
|
+
"category": "fixed-term",
|
|
4548
|
+
"reason": "避免 '网' 錯誤匹配 '網路'",
|
|
4549
|
+
"match_type": "exact",
|
|
4550
|
+
"autofix_safe": false
|
|
4551
|
+
},
|
|
4552
|
+
"網路_internet": {
|
|
4553
|
+
"taiwan": "網路",
|
|
4554
|
+
"confidence": 1,
|
|
4555
|
+
"category": "fixed-term",
|
|
4556
|
+
"reason": "避免 '网' 錯誤匹配 '網路'",
|
|
4557
|
+
"match_type": "exact",
|
|
4558
|
+
"autofix_safe": false
|
|
4559
|
+
},
|
|
4560
|
+
"网域": {
|
|
4561
|
+
"taiwan": "網域",
|
|
4562
|
+
"confidence": 1,
|
|
4563
|
+
"category": "fixed-term",
|
|
4564
|
+
"reason": "避免 '域' 錯誤匹配 '網域'",
|
|
4565
|
+
"match_type": "exact",
|
|
4566
|
+
"autofix_safe": false
|
|
4567
|
+
},
|
|
4568
|
+
"网域_domain": {
|
|
4569
|
+
"taiwan": "網域",
|
|
4570
|
+
"confidence": 1,
|
|
4571
|
+
"category": "fixed-term",
|
|
4572
|
+
"reason": "避免 '域' 錯誤匹配 '網域'",
|
|
4573
|
+
"match_type": "exact",
|
|
4574
|
+
"autofix_safe": false
|
|
4575
|
+
},
|
|
4576
|
+
"網域": {
|
|
4577
|
+
"taiwan": "網域",
|
|
4578
|
+
"confidence": 1,
|
|
4579
|
+
"category": "fixed-term",
|
|
4580
|
+
"reason": "避免 '域' 錯誤匹配 '網域'",
|
|
4581
|
+
"match_type": "exact",
|
|
4582
|
+
"autofix_safe": false
|
|
4583
|
+
},
|
|
4584
|
+
"網域_domain": {
|
|
4585
|
+
"taiwan": "網域",
|
|
4586
|
+
"confidence": 1,
|
|
4587
|
+
"category": "fixed-term",
|
|
4588
|
+
"reason": "避免 '域' 錯誤匹配 '網域'",
|
|
4589
|
+
"match_type": "exact",
|
|
4590
|
+
"autofix_safe": false
|
|
4591
|
+
},
|
|
4592
|
+
"影响应用": {
|
|
4593
|
+
"taiwan": "影響應用",
|
|
4594
|
+
"confidence": 1,
|
|
4595
|
+
"category": "fixed-term",
|
|
4596
|
+
"reason": "避免 '響應' 錯誤匹配 '影響應用'",
|
|
4597
|
+
"match_type": "exact",
|
|
4598
|
+
"autofix_safe": false
|
|
4599
|
+
},
|
|
4600
|
+
"影响应用_influence_application": {
|
|
4601
|
+
"taiwan": "影響應用",
|
|
4602
|
+
"confidence": 1,
|
|
4603
|
+
"category": "fixed-term",
|
|
4604
|
+
"reason": "避免 '響應' 錯誤匹配 '影響應用'",
|
|
4605
|
+
"match_type": "exact",
|
|
4606
|
+
"autofix_safe": false
|
|
4607
|
+
},
|
|
4608
|
+
"影響應用": {
|
|
4609
|
+
"taiwan": "影響應用",
|
|
4610
|
+
"confidence": 1,
|
|
4611
|
+
"category": "fixed-term",
|
|
4612
|
+
"reason": "避免 '響應' 錯誤匹配 '影響應用'",
|
|
4613
|
+
"match_type": "exact",
|
|
4614
|
+
"autofix_safe": false
|
|
4615
|
+
},
|
|
4616
|
+
"影響應用_influence_application": {
|
|
4617
|
+
"taiwan": "影響應用",
|
|
4618
|
+
"confidence": 1,
|
|
4619
|
+
"category": "fixed-term",
|
|
4620
|
+
"reason": "避免 '響應' 錯誤匹配 '影響應用'",
|
|
4621
|
+
"match_type": "exact",
|
|
4622
|
+
"autofix_safe": false
|
|
4015
4623
|
}
|
|
4016
4624
|
}
|
|
4017
4625
|
}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"description": "核心詞庫",
|
|
27
27
|
"type": "core",
|
|
28
28
|
"required": true,
|
|
29
|
-
"entries":
|
|
29
|
+
"entries": 165
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
32
|
"name": "extended",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"description": "軟體開發",
|
|
69
69
|
"type": "domain",
|
|
70
70
|
"required": false,
|
|
71
|
-
"entries":
|
|
71
|
+
"entries": 118
|
|
72
72
|
},
|
|
73
73
|
{
|
|
74
74
|
"name": "user-interface",
|
|
@@ -78,6 +78,6 @@
|
|
|
78
78
|
"entries": 106
|
|
79
79
|
}
|
|
80
80
|
],
|
|
81
|
-
"version": "1.
|
|
82
|
-
"buildTime": "
|
|
81
|
+
"version": "1.2.1",
|
|
82
|
+
"buildTime": "2026-02-19T07:08:57.503Z"
|
|
83
83
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"metadata": {
|
|
3
3
|
"name": "software-development",
|
|
4
|
-
"version": "1.
|
|
5
|
-
"entries":
|
|
4
|
+
"version": "1.2.1",
|
|
5
|
+
"entries": 118
|
|
6
6
|
},
|
|
7
7
|
"lookup": {
|
|
8
8
|
"算法": {
|
|
@@ -1909,6 +1909,38 @@
|
|
|
1909
1909
|
"match_type": "exact",
|
|
1910
1910
|
"autofix_safe": true
|
|
1911
1911
|
},
|
|
1912
|
+
"鲁棒性": {
|
|
1913
|
+
"taiwan": "穩健性",
|
|
1914
|
+
"confidence": 0.95,
|
|
1915
|
+
"category": "mainland-term",
|
|
1916
|
+
"reason": "台灣標準意譯",
|
|
1917
|
+
"match_type": "exact",
|
|
1918
|
+
"autofix_safe": true
|
|
1919
|
+
},
|
|
1920
|
+
"鲁棒性_robustness": {
|
|
1921
|
+
"taiwan": "穩健性",
|
|
1922
|
+
"confidence": 0.95,
|
|
1923
|
+
"category": "mainland-term",
|
|
1924
|
+
"reason": "台灣標準意譯",
|
|
1925
|
+
"match_type": "exact",
|
|
1926
|
+
"autofix_safe": true
|
|
1927
|
+
},
|
|
1928
|
+
"魯棒性": {
|
|
1929
|
+
"taiwan": "穩健性",
|
|
1930
|
+
"confidence": 0.95,
|
|
1931
|
+
"category": "mainland-term",
|
|
1932
|
+
"reason": "台灣標準意譯",
|
|
1933
|
+
"match_type": "exact",
|
|
1934
|
+
"autofix_safe": true
|
|
1935
|
+
},
|
|
1936
|
+
"魯棒性_robustness": {
|
|
1937
|
+
"taiwan": "穩健性",
|
|
1938
|
+
"confidence": 0.95,
|
|
1939
|
+
"category": "mainland-term",
|
|
1940
|
+
"reason": "台灣標準意譯",
|
|
1941
|
+
"match_type": "exact",
|
|
1942
|
+
"autofix_safe": true
|
|
1943
|
+
},
|
|
1912
1944
|
"回滚": {
|
|
1913
1945
|
"taiwan": "回溯",
|
|
1914
1946
|
"confidence": 0.9,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@termdock/twlint",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "A CLI tool for detecting simplified Chinese terms and suggesting Taiwan traditional alternatives",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"type": "module",
|
|
@@ -74,4 +74,4 @@
|
|
|
74
74
|
"engines": {
|
|
75
75
|
"node": ">=18.0.0"
|
|
76
76
|
}
|
|
77
|
-
}
|
|
77
|
+
}
|