chaffjs 0.5.0 → 0.5.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/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +6 -1
- package/dist/detectors/signals.js.map +1 -1
- package/dist/sentence-shape.d.ts.map +1 -1
- package/dist/sentence-shape.js +18 -1
- package/dist/sentence-shape.js.map +1 -1
- package/package.json +1 -1
- package/rules/concrete-evidence-density.yaml +2 -2
- package/src/detectors/signals.ts +6 -1
- package/src/sentence-shape.ts +19 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/detectors/signals.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoC,MAAM,cAAc,CAAC;AA4B/E,eAAO,MAAM,YAAY,EAAE,QAe1B,CAAC;
|
|
1
|
+
{"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/detectors/signals.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAoC,MAAM,cAAc,CAAC;AA4B/E,eAAO,MAAM,YAAY,EAAE,QAe1B,CAAC;AAgDF,eAAO,MAAM,eAAe,EAAE,QAiB7B,CAAC;AA4DF,eAAO,MAAM,gBAAgB,EAAE,QAiB9B,CAAC;AAQF,eAAO,MAAM,gBAAgB,EAAE,QAkB9B,CAAC;AAQF,eAAO,MAAM,WAAW,EAAE,QAezB,CAAC"}
|
|
@@ -59,7 +59,12 @@ const countGrams = (text, width) => {
|
|
|
59
59
|
* どちらを見るかは adapter が宣言する単位で決める。ひらがなを持たない char 単位の言語が
|
|
60
60
|
* 来たら、この見分けは効かなくなる(そのときは adapter 側に判定を移す)。
|
|
61
61
|
*/
|
|
62
|
-
|
|
62
|
+
/**
|
|
63
|
+
* つなぎが 1 つでは足りない。「detectorは」は用語に助詞が 1 つ付いただけで、
|
|
64
|
+
* 繰り返して当たり前の**用語**であって言い回しではない。
|
|
65
|
+
* 実文書で測ると、本物の言い回しはひらがなを 7 つ前後含み、用語+助詞は 1〜2 だった。
|
|
66
|
+
*/
|
|
67
|
+
const CONNECTIVE = { char: /[ぁ-ゖ].*[ぁ-ゖ].*[ぁ-ゖ]/u, word: /\S \S.*\S \S/u };
|
|
63
68
|
const isPhrasing = (gram, unit) => CONNECTIVE[unit].test(gram);
|
|
64
69
|
/** 文をまたいで数えない。文の終わりと次の文の始まりが繋がると、固有名詞が言い回しに見える。 */
|
|
65
70
|
const gramsOf = (doc) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/detectors/signals.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/detectors/signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentence-shape.d.ts","sourceRoot":"","sources":["../src/sentence-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAWnD,eAAO,MAAM,QAAQ,GAAI,UAAU,QAAQ,KAAG,OAAmC,CAAC;AAIlF,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,OAA4E,CAAC;AAE/H,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,KAAG,OAAgG,CAAC;
|
|
1
|
+
{"version":3,"file":"sentence-shape.d.ts","sourceRoot":"","sources":["../src/sentence-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAWnD,eAAO,MAAM,QAAQ,GAAI,UAAU,QAAQ,KAAG,OAAmC,CAAC;AAIlF,eAAO,MAAM,YAAY,GAAI,UAAU,QAAQ,KAAG,OAA4E,CAAC;AAE/H,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,KAAG,OAAgG,CAAC;AAsBlJ,eAAO,MAAM,WAAW,GAAI,UAAU,QAAQ,KAAG,KAAK,GAAG,SAA0F,CAAC"}
|
package/dist/sentence-shape.js
CHANGED
|
@@ -11,5 +11,22 @@ const PREDICATE = new Set(["AUX", "VERB", "ADJ"]);
|
|
|
11
11
|
export const hasPredicate = (sentence) => (sentence.tokens ?? []).some((token) => PREDICATE.has(token.pos));
|
|
12
12
|
export const hasParticle = (sentence) => (sentence.tokens ?? []).some((token) => token.pos === "ADP" || token.pos === "SCONJ");
|
|
13
13
|
const SKIP = new Set(["PUNCT", "PART", "SYM"]);
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* 文末の括弧は、文の終わりではなく添え物。
|
|
16
|
+
*
|
|
17
|
+
* 「これを最優先制約とする(§17)。」の述語は「とする」であって「17」ではない。
|
|
18
|
+
* 仕様書は相互参照を括弧で添えるので、これを数えると文末が全部そこになる。
|
|
19
|
+
*/
|
|
20
|
+
const TRAILING = /[((][^((]*[))][\s。.!?!?]*$/u;
|
|
21
|
+
const beforeTrailing = (sentence) => {
|
|
22
|
+
const tokens = sentence.tokens ?? [];
|
|
23
|
+
const match = TRAILING.exec(sentence.text);
|
|
24
|
+
if (match?.index === undefined)
|
|
25
|
+
return tokens;
|
|
26
|
+
const cut = sentence.span.start + match.index;
|
|
27
|
+
const kept = tokens.filter((token) => token.span.end <= cut);
|
|
28
|
+
// 括弧を外したら何も残らない文は、括弧そのものが中身。そのまま見る。
|
|
29
|
+
return kept.length === 0 ? tokens : kept;
|
|
30
|
+
};
|
|
31
|
+
export const lastContent = (sentence) => [...beforeTrailing(sentence)].reverse().find((token) => !SKIP.has(token.pos));
|
|
15
32
|
//# sourceMappingURL=sentence-shape.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentence-shape.js","sourceRoot":"","sources":["../src/sentence-shape.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,uBAAuB,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/H,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAElJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"sentence-shape.js","sourceRoot":"","sources":["../src/sentence-shape.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,IAAI,GAAG,uBAAuB,CAAC;AAErC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAElD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/H,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAElJ,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,6BAA6B,CAAC;AAE/C,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAoB,EAAE;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAC7D,oCAAoC;IACpC,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAkB,EAAqB,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ name:
|
|
|
9
9
|
en: Section with nothing concrete
|
|
10
10
|
|
|
11
11
|
why:
|
|
12
|
-
ja:
|
|
12
|
+
ja: 数値もコードもリンクも無い節は、読み終えても持ち帰るものがありません。抽象的な説明だけが残ります。仕様書では「error とは何か」のような定義の節が普通にあるので、technical では動かしません。
|
|
13
13
|
en: A section with no number, no code and no link leaves the reader with nothing to take away.
|
|
14
14
|
|
|
15
15
|
message:
|
|
@@ -22,4 +22,4 @@ how_to_fix:
|
|
|
22
22
|
|
|
23
23
|
levels: { strict: 1, normal: 3, relaxed: 6 }
|
|
24
24
|
|
|
25
|
-
use_for: [blog, business
|
|
25
|
+
use_for: [blog, business]
|
package/src/detectors/signals.ts
CHANGED
|
@@ -72,7 +72,12 @@ const countGrams = (text: string, width: number): Map<string, number> => {
|
|
|
72
72
|
* どちらを見るかは adapter が宣言する単位で決める。ひらがなを持たない char 単位の言語が
|
|
73
73
|
* 来たら、この見分けは効かなくなる(そのときは adapter 側に判定を移す)。
|
|
74
74
|
*/
|
|
75
|
-
|
|
75
|
+
/**
|
|
76
|
+
* つなぎが 1 つでは足りない。「detectorは」は用語に助詞が 1 つ付いただけで、
|
|
77
|
+
* 繰り返して当たり前の**用語**であって言い回しではない。
|
|
78
|
+
* 実文書で測ると、本物の言い回しはひらがなを 7 つ前後含み、用語+助詞は 1〜2 だった。
|
|
79
|
+
*/
|
|
80
|
+
const CONNECTIVE = { char: /[ぁ-ゖ].*[ぁ-ゖ].*[ぁ-ゖ]/u, word: /\S \S.*\S \S/u };
|
|
76
81
|
|
|
77
82
|
const isPhrasing = (gram: string, unit: ProseDocument["lengthUnit"]): boolean => CONNECTIVE[unit].test(gram);
|
|
78
83
|
|
package/src/sentence-shape.ts
CHANGED
|
@@ -19,4 +19,22 @@ export const hasParticle = (sentence: Sentence): boolean => (sentence.tokens ??
|
|
|
19
19
|
|
|
20
20
|
const SKIP = new Set(["PUNCT", "PART", "SYM"]);
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
/**
|
|
23
|
+
* 文末の括弧は、文の終わりではなく添え物。
|
|
24
|
+
*
|
|
25
|
+
* 「これを最優先制約とする(§17)。」の述語は「とする」であって「17」ではない。
|
|
26
|
+
* 仕様書は相互参照を括弧で添えるので、これを数えると文末が全部そこになる。
|
|
27
|
+
*/
|
|
28
|
+
const TRAILING = /[((][^((]*[))][\s。.!?!?]*$/u;
|
|
29
|
+
|
|
30
|
+
const beforeTrailing = (sentence: Sentence): readonly Token[] => {
|
|
31
|
+
const tokens = sentence.tokens ?? [];
|
|
32
|
+
const match = TRAILING.exec(sentence.text);
|
|
33
|
+
if (match?.index === undefined) return tokens;
|
|
34
|
+
const cut = sentence.span.start + match.index;
|
|
35
|
+
const kept = tokens.filter((token) => token.span.end <= cut);
|
|
36
|
+
// 括弧を外したら何も残らない文は、括弧そのものが中身。そのまま見る。
|
|
37
|
+
return kept.length === 0 ? tokens : kept;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export const lastContent = (sentence: Sentence): Token | undefined => [...beforeTrailing(sentence)].reverse().find((token) => !SKIP.has(token.pos));
|