chaffjs 0.34.0 → 0.35.0
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/capitals-passage.d.ts +3 -0
- package/dist/capitals-passage.d.ts.map +1 -0
- package/dist/capitals-passage.js +26 -0
- package/dist/capitals-passage.js.map +1 -0
- package/dist/coined-hyphen-name.d.ts +13 -0
- package/dist/coined-hyphen-name.d.ts.map +1 -0
- package/dist/coined-hyphen-name.js +21 -0
- package/dist/coined-hyphen-name.js.map +1 -0
- package/dist/company-names.d.ts +6 -1
- package/dist/company-names.d.ts.map +1 -1
- package/dist/company-names.js +22 -3
- package/dist/company-names.js.map +1 -1
- package/dist/detectors/acronym-context.d.ts +1 -1
- package/dist/detectors/acronym-context.d.ts.map +1 -1
- package/dist/detectors/acronym-context.js +4 -4
- package/dist/detectors/acronym-context.js.map +1 -1
- package/dist/detectors/acronym-definition.d.ts +13 -0
- package/dist/detectors/acronym-definition.d.ts.map +1 -0
- package/dist/detectors/acronym-definition.js +90 -0
- package/dist/detectors/acronym-definition.js.map +1 -0
- package/dist/detectors/acronym-lone.d.ts +13 -0
- package/dist/detectors/acronym-lone.d.ts.map +1 -0
- package/dist/detectors/acronym-lone.js +22 -0
- package/dist/detectors/acronym-lone.js.map +1 -0
- package/dist/detectors/acronym-name.d.ts +55 -0
- package/dist/detectors/acronym-name.d.ts.map +1 -0
- package/dist/detectors/acronym-name.js +75 -0
- package/dist/detectors/acronym-name.js.map +1 -0
- package/dist/detectors/capitalised-term.d.ts +14 -2
- package/dist/detectors/capitalised-term.d.ts.map +1 -1
- package/dist/detectors/capitalised-term.js +115 -4
- package/dist/detectors/capitalised-term.js.map +1 -1
- package/dist/detectors/caps-caption.d.ts +11 -0
- package/dist/detectors/caps-caption.d.ts.map +1 -0
- package/dist/detectors/caps-caption.js +51 -0
- package/dist/detectors/caps-caption.js.map +1 -0
- package/dist/detectors/char-shape.d.ts.map +1 -1
- package/dist/detectors/char-shape.js +47 -18
- package/dist/detectors/char-shape.js.map +1 -1
- package/dist/detectors/clause-shape.d.ts +1 -1
- package/dist/detectors/clause-shape.d.ts.map +1 -1
- package/dist/detectors/clause-shape.js +9 -4
- package/dist/detectors/clause-shape.js.map +1 -1
- package/dist/detectors/concrete-evidence.d.ts +13 -1
- package/dist/detectors/concrete-evidence.d.ts.map +1 -1
- package/dist/detectors/concrete-evidence.js +59 -0
- package/dist/detectors/concrete-evidence.js.map +1 -1
- package/dist/detectors/contraction-minority.d.ts +11 -0
- package/dist/detectors/contraction-minority.d.ts.map +1 -0
- package/dist/detectors/contraction-minority.js +10 -0
- package/dist/detectors/contraction-minority.js.map +1 -0
- package/dist/detectors/counter-edge.d.ts +5 -0
- package/dist/detectors/counter-edge.d.ts.map +1 -1
- package/dist/detectors/counter-edge.js +23 -0
- package/dist/detectors/counter-edge.js.map +1 -1
- package/dist/detectors/date-any-year.d.ts +6 -3
- package/dist/detectors/date-any-year.d.ts.map +1 -1
- package/dist/detectors/date-any-year.js +47 -10
- package/dist/detectors/date-any-year.js.map +1 -1
- package/dist/detectors/date-heading-year.d.ts +18 -0
- package/dist/detectors/date-heading-year.d.ts.map +1 -0
- package/dist/detectors/date-heading-year.js +38 -0
- package/dist/detectors/date-heading-year.js.map +1 -0
- package/dist/detectors/date-year.d.ts +12 -2
- package/dist/detectors/date-year.d.ts.map +1 -1
- package/dist/detectors/date-year.js +31 -6
- package/dist/detectors/date-year.js.map +1 -1
- package/dist/detectors/defined-term-form.d.ts.map +1 -1
- package/dist/detectors/defined-term-form.js +26 -5
- package/dist/detectors/defined-term-form.js.map +1 -1
- package/dist/detectors/due-date.d.ts.map +1 -1
- package/dist/detectors/due-date.js +6 -0
- package/dist/detectors/due-date.js.map +1 -1
- package/dist/detectors/en-shape.d.ts.map +1 -1
- package/dist/detectors/en-shape.js +5 -1
- package/dist/detectors/en-shape.js.map +1 -1
- package/dist/detectors/fact-consistency.d.ts.map +1 -1
- package/dist/detectors/fact-consistency.js +3 -2
- package/dist/detectors/fact-consistency.js.map +1 -1
- package/dist/detectors/gram-passages.d.ts +11 -0
- package/dist/detectors/gram-passages.d.ts.map +1 -0
- package/dist/detectors/gram-passages.js +26 -0
- package/dist/detectors/gram-passages.js.map +1 -0
- package/dist/detectors/heading-end-mark.d.ts +8 -3
- package/dist/detectors/heading-end-mark.d.ts.map +1 -1
- package/dist/detectors/heading-end-mark.js +18 -8
- package/dist/detectors/heading-end-mark.js.map +1 -1
- package/dist/detectors/heading-names.d.ts +7 -0
- package/dist/detectors/heading-names.d.ts.map +1 -0
- package/dist/detectors/heading-names.js +24 -0
- package/dist/detectors/heading-names.js.map +1 -0
- package/dist/detectors/heading-numbering.d.ts.map +1 -1
- package/dist/detectors/heading-numbering.js +7 -2
- package/dist/detectors/heading-numbering.js.map +1 -1
- package/dist/detectors/inch-mark.d.ts +10 -0
- package/dist/detectors/inch-mark.d.ts.map +1 -0
- package/dist/detectors/inch-mark.js +48 -0
- package/dist/detectors/inch-mark.js.map +1 -0
- package/dist/detectors/lexicon.d.ts +0 -1
- package/dist/detectors/lexicon.d.ts.map +1 -1
- package/dist/detectors/lexicon.js +29 -23
- package/dist/detectors/lexicon.js.map +1 -1
- package/dist/detectors/mark-shape.d.ts +6 -3
- package/dist/detectors/mark-shape.d.ts.map +1 -1
- package/dist/detectors/mark-shape.js +12 -6
- package/dist/detectors/mark-shape.js.map +1 -1
- package/dist/detectors/name-variant-apart.d.ts +27 -0
- package/dist/detectors/name-variant-apart.d.ts.map +1 -0
- package/dist/detectors/name-variant-apart.js +51 -0
- package/dist/detectors/name-variant-apart.js.map +1 -0
- package/dist/detectors/name-variant.d.ts.map +1 -1
- package/dist/detectors/name-variant.js +18 -11
- package/dist/detectors/name-variant.js.map +1 -1
- package/dist/detectors/numeral-word.d.ts +15 -0
- package/dist/detectors/numeral-word.d.ts.map +1 -0
- package/dist/detectors/numeral-word.js +26 -0
- package/dist/detectors/numeral-word.js.map +1 -0
- package/dist/detectors/organisation-run.d.ts +14 -0
- package/dist/detectors/organisation-run.d.ts.map +1 -0
- package/dist/detectors/organisation-run.js +73 -0
- package/dist/detectors/organisation-run.js.map +1 -0
- package/dist/detectors/orthographic-variant.d.ts.map +1 -1
- package/dist/detectors/orthographic-variant.js +13 -5
- package/dist/detectors/orthographic-variant.js.map +1 -1
- package/dist/detectors/outline-label.d.ts +14 -0
- package/dist/detectors/outline-label.d.ts.map +1 -0
- package/dist/detectors/outline-label.js +32 -0
- package/dist/detectors/outline-label.js.map +1 -0
- package/dist/detectors/page-marker.d.ts +6 -0
- package/dist/detectors/page-marker.d.ts.map +1 -0
- package/dist/detectors/page-marker.js +19 -0
- package/dist/detectors/page-marker.js.map +1 -0
- package/dist/detectors/parallel-definition.d.ts +16 -0
- package/dist/detectors/parallel-definition.d.ts.map +1 -0
- package/dist/detectors/parallel-definition.js +51 -0
- package/dist/detectors/parallel-definition.js.map +1 -0
- package/dist/detectors/reference-text.d.ts.map +1 -1
- package/dist/detectors/reference-text.js +1 -0
- package/dist/detectors/reference-text.js.map +1 -1
- package/dist/detectors/registry/unfilled-placeholder.d.ts.map +1 -1
- package/dist/detectors/registry/unfilled-placeholder.js +2 -2
- package/dist/detectors/registry/unfilled-placeholder.js.map +1 -1
- package/dist/detectors/registry/vague-density.js +1 -1
- package/dist/detectors/registry/vague-density.js.map +1 -1
- package/dist/detectors/request-owner.d.ts +6 -2
- package/dist/detectors/request-owner.d.ts.map +1 -1
- package/dist/detectors/request-owner.js +57 -7
- package/dist/detectors/request-owner.js.map +1 -1
- package/dist/detectors/requirement-smell.d.ts.map +1 -1
- package/dist/detectors/requirement-smell.js +10 -2
- package/dist/detectors/requirement-smell.js.map +1 -1
- package/dist/detectors/sentence-length.d.ts.map +1 -1
- package/dist/detectors/sentence-length.js +24 -16
- package/dist/detectors/sentence-length.js.map +1 -1
- package/dist/detectors/sentence-rhythm.d.ts.map +1 -1
- package/dist/detectors/sentence-rhythm.js +6 -3
- package/dist/detectors/sentence-rhythm.js.map +1 -1
- package/dist/detectors/series-label.d.ts +2 -1
- package/dist/detectors/series-label.d.ts.map +1 -1
- package/dist/detectors/series-label.js +10 -4
- package/dist/detectors/series-label.js.map +1 -1
- package/dist/detectors/signals.d.ts +4 -0
- package/dist/detectors/signals.d.ts.map +1 -1
- package/dist/detectors/signals.js +95 -36
- package/dist/detectors/signals.js.map +1 -1
- package/dist/detectors/structure-tree.d.ts.map +1 -1
- package/dist/detectors/structure-tree.js +8 -7
- package/dist/detectors/structure-tree.js.map +1 -1
- package/dist/detectors/template-sections.d.ts +14 -0
- package/dist/detectors/template-sections.d.ts.map +1 -0
- package/dist/detectors/template-sections.js +25 -0
- package/dist/detectors/template-sections.js.map +1 -0
- package/dist/detectors/titled-run.d.ts +22 -0
- package/dist/detectors/titled-run.d.ts.map +1 -0
- package/dist/detectors/titled-run.js +34 -0
- package/dist/detectors/titled-run.js.map +1 -0
- package/dist/detectors/unbalanced-bracket.d.ts.map +1 -1
- package/dist/detectors/unbalanced-bracket.js +4 -0
- package/dist/detectors/unbalanced-bracket.js.map +1 -1
- package/dist/detectors/undefined-term.d.ts.map +1 -1
- package/dist/detectors/undefined-term.js +8 -0
- package/dist/detectors/undefined-term.js.map +1 -1
- package/dist/detectors/unfilled-placeholder.d.ts +4 -0
- package/dist/detectors/unfilled-placeholder.d.ts.map +1 -0
- package/dist/detectors/unfilled-placeholder.js +9 -0
- package/dist/detectors/unfilled-placeholder.js.map +1 -0
- package/dist/detectors/vague-density.d.ts +5 -0
- package/dist/detectors/vague-density.d.ts.map +1 -0
- package/dist/detectors/vague-density.js +52 -0
- package/dist/detectors/vague-density.js.map +1 -0
- package/dist/facts/fact-scope.d.ts +10 -1
- package/dist/facts/fact-scope.d.ts.map +1 -1
- package/dist/facts/fact-scope.js +34 -3
- package/dist/facts/fact-scope.js.map +1 -1
- package/dist/facts/table-facts.d.ts +12 -2
- package/dist/facts/table-facts.d.ts.map +1 -1
- package/dist/facts/table-facts.js +22 -4
- package/dist/facts/table-facts.js.map +1 -1
- package/dist/grade-api.d.ts +9 -2
- package/dist/grade-api.d.ts.map +1 -1
- package/dist/grade-api.js +31 -15
- package/dist/grade-api.js.map +1 -1
- package/dist/heading-numbering.d.ts +5 -2
- package/dist/heading-numbering.d.ts.map +1 -1
- package/dist/heading-numbering.js +27 -6
- package/dist/heading-numbering.js.map +1 -1
- package/dist/name-end-letter.d.ts +5 -0
- package/dist/name-end-letter.d.ts.map +1 -1
- package/dist/name-end-letter.js +8 -0
- package/dist/name-end-letter.js.map +1 -1
- package/dist/name-given-before.d.ts +15 -0
- package/dist/name-given-before.d.ts.map +1 -0
- package/dist/name-given-before.js +30 -0
- package/dist/name-given-before.js.map +1 -0
- package/dist/name-separator.d.ts +2 -2
- package/dist/name-separator.d.ts.map +1 -1
- package/dist/name-separator.js +56 -5
- package/dist/name-separator.js.map +1 -1
- package/dist/name-variants.d.ts +3 -1
- package/dist/name-variants.d.ts.map +1 -1
- package/dist/name-variants.js +8 -7
- package/dist/name-variants.js.map +1 -1
- package/dist/name-word-order.d.ts +9 -5
- package/dist/name-word-order.d.ts.map +1 -1
- package/dist/name-word-order.js +47 -15
- package/dist/name-word-order.js.map +1 -1
- package/dist/nominal-stem.d.ts +13 -0
- package/dist/nominal-stem.d.ts.map +1 -0
- package/dist/nominal-stem.js +32 -0
- package/dist/nominal-stem.js.map +1 -0
- package/dist/sentence-load.d.ts +2 -1
- package/dist/sentence-load.d.ts.map +1 -1
- package/dist/sentence-load.js +6 -2
- package/dist/sentence-load.js.map +1 -1
- package/dist/structure/cited-document-section.d.ts +7 -0
- package/dist/structure/cited-document-section.d.ts.map +1 -0
- package/dist/structure/cited-document-section.js +33 -0
- package/dist/structure/cited-document-section.js.map +1 -0
- package/dist/structure/html-text-blocks.d.ts +8 -0
- package/dist/structure/html-text-blocks.d.ts.map +1 -0
- package/dist/structure/html-text-blocks.js +47 -0
- package/dist/structure/html-text-blocks.js.map +1 -0
- package/dist/structure/issues.d.ts +1 -1
- package/dist/structure/issues.d.ts.map +1 -1
- package/dist/structure/issues.js +19 -4
- package/dist/structure/issues.js.map +1 -1
- package/dist/structure/labelled-date-order.d.ts +4 -1
- package/dist/structure/labelled-date-order.d.ts.map +1 -1
- package/dist/structure/labelled-date-order.js +2 -2
- package/dist/structure/labelled-date-order.js.map +1 -1
- package/dist/structure/labelled-order.d.ts +3 -0
- package/dist/structure/labelled-order.d.ts.map +1 -1
- package/dist/structure/labelled-order.js +8 -3
- package/dist/structure/labelled-order.js.map +1 -1
- package/dist/structure/list-numbering.d.ts +20 -4
- package/dist/structure/list-numbering.d.ts.map +1 -1
- package/dist/structure/list-numbering.js +65 -9
- package/dist/structure/list-numbering.js.map +1 -1
- package/dist/structure/listed-paragraph.d.ts +16 -0
- package/dist/structure/listed-paragraph.d.ts.map +1 -0
- package/dist/structure/listed-paragraph.js +37 -0
- package/dist/structure/listed-paragraph.js.map +1 -0
- package/dist/structure/numbering.d.ts +3 -2
- package/dist/structure/numbering.d.ts.map +1 -1
- package/dist/structure/numbering.js +31 -6
- package/dist/structure/numbering.js.map +1 -1
- package/dist/structure/reference-text.d.ts +9 -1
- package/dist/structure/reference-text.d.ts.map +1 -1
- package/dist/structure/reference-text.js +21 -3
- package/dist/structure/reference-text.js.map +1 -1
- package/dist/structure/section-names.d.ts +12 -0
- package/dist/structure/section-names.d.ts.map +1 -0
- package/dist/structure/section-names.js +26 -0
- package/dist/structure/section-names.js.map +1 -0
- package/dist/structure/versioned-label.d.ts +16 -0
- package/dist/structure/versioned-label.d.ts.map +1 -0
- package/dist/structure/versioned-label.js +48 -0
- package/dist/structure/versioned-label.js.map +1 -0
- package/dist/structure/written-headings.d.ts +31 -0
- package/dist/structure/written-headings.d.ts.map +1 -0
- package/dist/structure/written-headings.js +119 -0
- package/dist/structure/written-headings.js.map +1 -0
- package/dist/structure/written-resolve.d.ts +12 -0
- package/dist/structure/written-resolve.d.ts.map +1 -0
- package/dist/structure/written-resolve.js +49 -0
- package/dist/structure/written-resolve.js.map +1 -0
- package/package.json +3 -3
- package/rules/all-caps-shouting.yaml +2 -2
- package/rules/concrete-evidence-density.yaml +2 -2
- package/rules/contraction-consistency.yaml +13 -13
- package/rules/dangling-reference.yaml +2 -2
- package/rules/date-without-year.yaml +2 -2
- package/rules/defined-name-repeated.yaml +2 -2
- package/rules/fact-conflict.yaml +2 -2
- package/rules/heading-end-punctuation-mix.yaml +2 -2
- package/rules/heading-numbering-mix.yaml +2 -2
- package/rules/latin-spacing.yaml +2 -2
- package/rules/max-kanji-continuous.yaml +5 -3
- package/rules/max-sentence-length.yaml +3 -2
- package/rules/name-variant.yaml +2 -2
- package/rules/ngram-repetition.yaml +2 -2
- package/rules/numbering-gap.yaml +2 -2
- package/rules/orthographic-variant.yaml +2 -2
- package/rules/reference-title-mismatch.yaml +2 -2
- package/rules/repeated-sentence-ending.yaml +3 -2
- package/rules/request-without-deadline.yaml +2 -2
- package/rules/requirement-smell.yaml +2 -2
- package/rules/sentence-rhythm.yaml +2 -2
- package/rules/title-case-consistency.yaml +2 -2
- package/rules/unbalanced-bracket.yaml +2 -2
- package/rules/undefined-acronym.yaml +11 -2
- package/rules/undefined-term.yaml +2 -2
- package/rules/unfilled-placeholder.yaml +2 -2
- package/rules/vague-word-density.yaml +2 -2
- package/src/capitals-passage.ts +31 -0
- package/src/coined-hyphen-name.ts +27 -0
- package/src/company-names.ts +24 -3
- package/src/detectors/acronym-context.ts +5 -6
- package/src/detectors/acronym-definition.ts +123 -0
- package/src/detectors/acronym-lone.ts +26 -0
- package/src/detectors/acronym-name.ts +117 -0
- package/src/detectors/capitalised-term.ts +154 -4
- package/src/detectors/caps-caption.ts +61 -0
- package/src/detectors/char-shape.ts +74 -22
- package/src/detectors/clause-shape.ts +14 -4
- package/src/detectors/concrete-evidence.ts +77 -1
- package/src/detectors/contraction-minority.ts +11 -0
- package/src/detectors/counter-edge.ts +23 -0
- package/src/detectors/date-any-year.ts +56 -10
- package/src/detectors/date-heading-year.ts +55 -0
- package/src/detectors/date-year.ts +54 -9
- package/src/detectors/defined-term-form.ts +26 -5
- package/src/detectors/due-date.ts +10 -1
- package/src/detectors/en-shape.ts +5 -1
- package/src/detectors/fact-consistency.ts +3 -2
- package/src/detectors/gram-passages.ts +36 -0
- package/src/detectors/heading-end-mark.ts +23 -10
- package/src/detectors/heading-names.ts +31 -0
- package/src/detectors/heading-numbering.ts +7 -2
- package/src/detectors/inch-mark.ts +49 -0
- package/src/detectors/lexicon.ts +32 -21
- package/src/detectors/mark-shape.ts +12 -6
- package/src/detectors/name-variant-apart.ts +63 -0
- package/src/detectors/name-variant.ts +30 -12
- package/src/detectors/numeral-word.ts +33 -0
- package/src/detectors/organisation-run.ts +86 -0
- package/src/detectors/orthographic-variant.ts +22 -6
- package/src/detectors/outline-label.ts +48 -0
- package/src/detectors/page-marker.ts +26 -0
- package/src/detectors/parallel-definition.ts +64 -0
- package/src/detectors/reference-text.ts +1 -0
- package/src/detectors/registry/unfilled-placeholder.ts +2 -2
- package/src/detectors/registry/vague-density.ts +1 -1
- package/src/detectors/request-owner.ts +71 -8
- package/src/detectors/requirement-smell.ts +15 -2
- package/src/detectors/sentence-length.ts +14 -6
- package/src/detectors/sentence-rhythm.ts +8 -4
- package/src/detectors/series-label.ts +13 -4
- package/src/detectors/signals.ts +94 -26
- package/src/detectors/structure-tree.ts +10 -8
- package/src/detectors/template-sections.ts +37 -0
- package/src/detectors/titled-run.ts +43 -0
- package/src/detectors/unbalanced-bracket.ts +3 -0
- package/src/detectors/undefined-term.ts +8 -0
- package/src/detectors/unfilled-placeholder.ts +10 -0
- package/src/detectors/vague-density.ts +68 -0
- package/src/facts/fact-scope.ts +53 -4
- package/src/facts/table-facts.ts +43 -6
- package/src/grade-api.ts +38 -16
- package/src/heading-numbering.ts +35 -8
- package/src/name-end-letter.ts +9 -0
- package/src/name-given-before.ts +40 -0
- package/src/name-separator.ts +66 -5
- package/src/name-variants.ts +21 -11
- package/src/name-word-order.ts +62 -17
- package/src/nominal-stem.ts +36 -0
- package/src/sentence-load.ts +7 -2
- package/src/structure/cited-document-section.ts +42 -0
- package/src/structure/html-text-blocks.ts +45 -0
- package/src/structure/issues.ts +19 -4
- package/src/structure/labelled-date-order.ts +5 -2
- package/src/structure/labelled-order.ts +12 -3
- package/src/structure/list-numbering.ts +100 -11
- package/src/structure/listed-paragraph.ts +45 -0
- package/src/structure/numbering.ts +48 -19
- package/src/structure/reference-text.ts +25 -3
- package/src/structure/section-names.ts +32 -0
- package/src/structure/versioned-label.ts +52 -0
- package/src/structure/written-headings.ts +137 -0
- package/src/structure/written-resolve.ts +57 -0
package/rules/fact-conflict.yaml
CHANGED
|
@@ -74,8 +74,8 @@ example:
|
|
|
74
74
|
- Deadline: May 3, 2026
|
|
75
75
|
|
|
76
76
|
not_flagged:
|
|
77
|
-
ja: 違う見出しの下、違う親の項目の下、太字だけの行や「第2回:」のような行の後ろの値は、別のものの値として比べません。値の後ろに条件が続くもの(「3,000円から」「10月5日に開催」)、何あたりの違う値(日額と月額)や、距離や時間あたりの値とそれを掛けた金額(「1kmあたり15円」と「1,650円」。1件につき のような件ごとの値は比べます)、読点のあとから始まる項目名(「大人は、参加費は」)、単位の違う値(単位の食い違いは別に見ます)も比べません。単価の列(単価、時給)の升は、金額の列(金額、小計)の同じ名前の升とは比べません(文の値とは比べます)。同じ項目に三通り以上の値があれば、一覧として何も言いません。保存期間は、別のもの(ログは90日、個人情報は1年)や、上限・下限・目安の長さ(最長、以上、約)とは比べません。文書全体の項目は、拠り所(表の升、項目の名前を見出しにした節)と文のあいだだけで比べます。表どうしや、拠り所の無い文どうし(雇用形態ごとの節)、拠り所が二通りの値を書いた項目、条件の句の後ろの値(「製品登録をされた場合、保証期間は24か月です」)、名前に条件を書いた値(正社員の試用期間)は比べません。文書全体の項目は、表の升と文のあいだだけで比べます。表どうしや文どうし(雇用形態ごとの節)、表が二通りの値を書いた項目、名前に条件を書いた値(正社員の試用期間)は比べません。表の行と主語の文の金額は、行か文に同じ通貨の金額が二つ以上あるとき(日額と上限)、主語が見出しより長いとき(入院給付金の上限は)、文に条件の語(場合、ただし)があるときは比べません。全体の数は、全体の印(合計、全部で)と数える語(枚、名)の両方が付いた数だけを読みます。一部の数(うち2枚は)、上限(合計4枚まで)、表の行の名前を書いた文(S席は合計2
|
|
78
|
-
en: Values under different headings, under different parent list items, or after a bold-only line or a line like "Session 2:" are taken as values of different things. A value followed by a condition ("$300 per person", "May 3 at noon"), values per different units (a day, a month), a value per a distance or a time against the amount it multiplies into ("$0.45 per mile" and "$165"; a fee "for each transfer" is compared), a name that starts after a comma ("For adults, the fee"), and values in different units are not compared. A cell under a unit price column (Unit price, Rate) is not compared with a cell of the same name under an amount column (Amount, Total); it is compared with a sentence. An item with three or more different values is read as a list and left alone. A retention period is not compared with that of another thing (logs 90 days, account data 1 year) or with a bound or an estimate (up to, at least, about). A whole-document item is compared only between its source (a table cell, or a section headed by its name) and a sentence; two tables, two sentences with no source (sections per type of employment), an item its sources give two values, a value after a condition ("If you register the product, the warranty runs for 24 months"), and a qualified name (part-time probation period) are left alone. A whole-document item is compared only between a table cell and a sentence; two tables or two sentences (sections per type of employment), an item the tables give two values, and a qualified name (part-time probation period) are left alone. A table row and a sentence naming it are not compared when either holds two amounts in the currency (a daily amount and a cap), when the subject is longer than the heading ("Hospital cash cover is"), or when the sentence puts a condition on its amount (if, unless). A whole count is read only with a whole mark (in total, a total of) and a counting word (tickets, attendees). A part ("2 of the tickets"), a limit ("up to a total of 4 tickets"), a sentence naming a table row ("Stalls are 2 tickets in total"), and a document with two columns counting the same thing are left alone. Rows counting people are not summed, because the same guest is on the admission row and the dinner row.
|
|
77
|
+
ja: 違う見出しの下、違う親の項目の下、太字だけの行や「第2回:」のような行の後ろの値は、別のものの値として比べません。値の後ろに条件が続くもの(「3,000円から」「10月5日に開催」)、何あたりの違う値(日額と月額)や、距離や時間あたりの値とそれを掛けた金額(「1kmあたり15円」と「1,650円」。1件につき のような件ごとの値は比べます)、読点のあとから始まる項目名(「大人は、参加費は」)、単位の違う値(単位の食い違いは別に見ます)も比べません。単価の列(単価、時給)の升は、金額の列(金額、小計)の同じ名前の升とは比べません(文の値とは比べます)。同じ項目に三通り以上の値があれば、一覧として何も言いません。保存期間は、別のもの(ログは90日、個人情報は1年)や、上限・下限・目安の長さ(最長、以上、約)とは比べません。文書全体の項目は、拠り所(表の升、項目の名前を見出しにした節)と文のあいだだけで比べます。表どうしや、拠り所の無い文どうし(雇用形態ごとの節)、拠り所が二通りの値を書いた項目、条件の句の後ろの値(「製品登録をされた場合、保証期間は24か月です」)、名前に条件を書いた値(正社員の試用期間)は比べません。文書全体の項目は、表の升と文のあいだだけで比べます。表どうしや文どうし(雇用形態ごとの節)、表が二通りの値を書いた項目、名前に条件を書いた値(正社員の試用期間)は比べません。表の行と主語の文の金額は、行か文に同じ通貨の金額が二つ以上あるとき(日額と上限)、主語が見出しより長いとき(入院給付金の上限は)、文に条件の語(場合、ただし)があるときは比べません。全体の数は、全体の印(合計、全部で)と数える語(枚、名)の両方が付いた数だけを読みます。一部の数(うち2枚は)、上限(合計4枚まで)、表の行の名前を書いた文(S席は合計2枚)、数える列が二つ以上ある文書は比べません。人の数は行を足しません(同じ人が参加と交流会の両方の行に載ります)。段落の頭の名前だけの行(「例」「Example」「明細1(標準税率の分)」)の後ろの値は、その例や場合の値として、ほかの例とは比べません。見出しを繰り返して横に並べた表(曜日 | 時間 | 曜日 | 時間 の、第1週と第2週)は、並びごとに別の表として読みます。
|
|
78
|
+
en: Values under different headings, under different parent list items, or after a bold-only line or a line like "Session 2:" are taken as values of different things. A value followed by a condition ("$300 per person", "May 3 at noon"), values per different units (a day, a month), a value per a distance or a time against the amount it multiplies into ("$0.45 per mile" and "$165"; a fee "for each transfer" is compared), a name that starts after a comma ("For adults, the fee"), and values in different units are not compared. A cell under a unit price column (Unit price, Rate) is not compared with a cell of the same name under an amount column (Amount, Total); it is compared with a sentence. An item with three or more different values is read as a list and left alone. A retention period is not compared with that of another thing (logs 90 days, account data 1 year) or with a bound or an estimate (up to, at least, about). A whole-document item is compared only between its source (a table cell, or a section headed by its name) and a sentence; two tables, two sentences with no source (sections per type of employment), an item its sources give two values, a value after a condition ("If you register the product, the warranty runs for 24 months"), and a qualified name (part-time probation period) are left alone. A whole-document item is compared only between a table cell and a sentence; two tables or two sentences (sections per type of employment), an item the tables give two values, and a qualified name (part-time probation period) are left alone. A table row and a sentence naming it are not compared when either holds two amounts in the currency (a daily amount and a cap), when the subject is longer than the heading ("Hospital cash cover is"), or when the sentence puts a condition on its amount (if, unless). A whole count is read only with a whole mark (in total, a total of) and a counting word (tickets, attendees). A part ("2 of the tickets"), a limit ("up to a total of 4 tickets"), a sentence naming a table row ("Stalls are 2 tickets in total"), and a document with two columns counting the same thing are left alone. Rows counting people are not summed, because the same guest is on the admission row and the dinner row. Values after a name-only line at the head of a paragraph ("Example", "Element 1 (standard rated portion)") belong to that example or case and are not compared with another example's. A table that repeats its headings side by side (Day | Hours | Day | Hours, week 1 and week 2) is read as one table per group of columns.
|
|
79
79
|
rewrite:
|
|
80
80
|
depth: light
|
|
81
81
|
ja:
|
|
@@ -128,8 +128,8 @@ example:
|
|
|
128
128
|
Put everything back.
|
|
129
129
|
|
|
130
130
|
not_flagged:
|
|
131
|
-
ja: 文書の題(最初の一つだけの一番上の見出し)は比べません。同じ深さの見出しが四つ未満の所、記号で終わる見出しと終わらない見出しが同じくらいある文書(少ないほうが四分の一を超える)は指しません。疑問符・感嘆符で終わる見出しは、記号なしと数えます。「…」や「etc.」「Inc
|
|
132
|
-
en: The page title (a single top-level heading that opens the document) is not compared. Fewer than four headings at one depth, or where both ways are common (the smaller side above a quarter), is not reported. A heading ending with a question mark or an exclamation mark counts as bare. A heading ending with a full stop that is part of the words ("…", "etc.", "Inc.") is left out of the comparison; the abbreviations are in each language's lexicon.
|
|
131
|
+
ja: 文書の題(最初の一つだけの一番上の見出し)は比べません。同じ深さの見出しが四つ未満の所、記号で終わる見出しと終わらない見出しが同じくらいある文書(少ないほうが四分の一を超える)は指しません。疑問符・感嘆符で終わる見出しは、記号なしと数えます。「…」や「etc.」「Inc.」のように言葉の一部の点で終わる見出しは比べません(点で終わる略語は言語ごとの語彙表にあります)。英語の文書で大文字だけで書いた見出し(「AGENCY:」のような告示の見出し語)は、普通の書き方の見出しとは別に、大文字の見出しどうしで比べます。
|
|
132
|
+
en: The page title (a single top-level heading that opens the document) is not compared. Fewer than four headings at one depth, or where both ways are common (the smaller side above a quarter), is not reported. A heading ending with a question mark or an exclamation mark counts as bare. A heading ending with a full stop that is part of the words ("…", "etc.", "Inc.") is left out of the comparison; the abbreviations are in each language's lexicon. Headings set in capitals (a notice's captions, "AGENCY:") are compared with each other, apart from headings in ordinary case.
|
|
133
133
|
rewrite:
|
|
134
134
|
depth: light
|
|
135
135
|
ja:
|
|
@@ -111,8 +111,8 @@ example:
|
|
|
111
111
|
The summary.
|
|
112
112
|
|
|
113
113
|
not_flagged:
|
|
114
|
-
ja: 兄弟が三つ未満の所、少ないほうと多いほうが同じ数の所、深さや親の違う見出しどうし(「1.」の下の「1.1
|
|
115
|
-
en: Fewer than three siblings, a tie between the two sides, and headings at different depths or under different parents ("1." and "1.1") are not compared. Front and back matter (Contents, References, Appendix)
|
|
114
|
+
ja: 兄弟が三つ未満の所、少ないほうと多いほうが同じ数の所、深さや親の違う見出しどうし(「1.」の下の「1.1」)は比べません。前後の見出し(目次、参考文献、付録、末尾の「担当」「お問い合わせ先」)と、1 から始まる番号の前に置いた番号の無い見出し(文書の題、「はじめに」)は兄弟に数えません。見出しの頭の数でも、区切りの記号の無い数(「2026年の計画」「3つの理由」)は番号と読みません。期間や催しを名指す番号(「第1週」「1日目」「第3回」「Week 1」)も番号と読みません。
|
|
115
|
+
en: Fewer than three siblings, a tie between the two sides, and headings at different depths or under different parents ("1." and "1.1") are not compared. Front and back matter (Contents, References, Appendix, a closing Contact), and unnumbered headings placed before a numbering that starts at 1 (the page title, "Applies to England"), are not counted among the siblings. A number at the head of a heading without a separator ("2026 roadmap", "3 reasons") is not read as a heading number. Nor is a number that names a period or an event ("Week 1", "Day 2", "Phase 3", "第3回").
|
|
116
116
|
rewrite:
|
|
117
117
|
depth: light
|
|
118
118
|
ja:
|
package/rules/latin-spacing.yaml
CHANGED
|
@@ -31,8 +31,8 @@ name:
|
|
|
31
31
|
en: Spacing around Latin text is inconsistent
|
|
32
32
|
|
|
33
33
|
why:
|
|
34
|
-
ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号や、「1.0.0」のような版番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「令和8年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目も、前の境目(「は 9月」「午後3時」)も数えません。コロンで書いた時刻(「13:30」「後の17:15から」)も同じです。メールアドレスや URL(「privacy@example.com で」)の前後の空白は、アドレスの終わりを示す区切りなので数えません。予約番号や型番のような番号(「予約番号 MN-48215 を」「型番 SB-210 と」)の前後の空白も、番号を文から区切るものなので数えません。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号、番号が増えていく箇条書きの頭の番号、「問3」「図2」のように語のすぐ後ろに書いた番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。建物の名前の後ろに空白で区切って書いた階や部屋の番号(「本社 5階 第2会議室」「研究所 3階 セミナー室」)の前の空白も、所在の組の区切りなので数えません。名前だけを空白で並べた行(「株式会社あおば電子 経営企画部 IR担当」「東京本社 PR室」)で、空白の両側が部署・拠点・役目や会社の名前のときの空白も、名前と名前の区切りなので数えません。「第1節 AI の…」の「第1節」の後ろの空白も同じです。桁の区切りの無い 6 桁以上の番号(「口座番号 3056172 を」)、ナンバープレート(「ひばり野 330 ね 48-15」)の前後と中の空白、「所属:経済学部 経済学科 1年」「振込先:みなと銀行 普通 1234567
|
|
35
|
-
en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number, a date or a version (073-489-5909, 2026-06-02, 1.0.0) is not a quantity and is not counted. Nor is a date or a time written with units (9月, 2026年, 令和8年, 10月1日, 3時, 10時5分), which is packed by convention; neither its inside nor the space before it (は 9月, 午後3時) counts. The same goes for a clock time written with a colon (13:30). Nor is the space beside an e-mail address or a URL (privacy@example.com で), which marks where the address ends, or beside a booking or model number (予約番号 MN-48215 を, 型番 SB-210 と), which sets the number off from the sentence. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence, numbers opening the items of a list that go up, a number written right after a word such as 問 or 図), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. Nor is the space before a floor or room number written after the name of a building (本社 5階 第2会議室), which separates the parts of a location. Nor is the space between names on a line of names alone (株式会社あおば電子 経営企画部 IR担当, 東京本社 PR室), when both sides are names of a department, an office, a role or a company, since it separates one name from the next. The same goes for the space after a division such as 第1節. Nor is the space beside a code of six digits or more written without separators (口座番号 3056172 を), around and inside a number plate (ひばり野 330 ね 48-15), or between the parts of a value after a label and a colon (所属:経済学部 経済学科 1年, 振込先:みなと銀行 普通 1234567), which separates the parts of the value. Nor is the spacing inside a title or a quotation in 「」 or 『』, or inside the text of a link, which is the source's, not the writer's. When both ways are used equally often there is no minority, so no place is singled out, and a one-to-one tie is not reported.
|
|
34
|
+
ja: 日本語と英字・数字のあいだを空けるか詰めるかは、どちらでも読めます。困るのは一つの文書の中で混ざることで、読み手には違いに意味があるように見えます。chaff はどちらが正しいかを決めず、文書の中で少ないほうを指摘します。英字と、数字の前、数字の後ろは別々に数えます。「を 3回」のように、数字の前は空けて助数詞とは詰める書き方がふつうにあるからです。「3GBの」のように数字に続く単位は、英字ではなく数字の側として数えます。逆に「H30 等」「EC2 で」「Phase 1 は」のように英字で始まって数字で終わる名前は、英字の側として数えます。「073-489-5909」「2026-06-02」のような番号や、「1.0.0」のような版番号は数量ではないので数えません。日付・時刻(「9月」「2026年」「令和8年」「10月1日」「3時」「10時5分」)も、数と単位を詰めて書く決まりなので、その中の境目も、前の境目(「は 9月」「午後3時」)も数えません。コロンで書いた時刻(「13:30」「後の17:15から」)も同じです。メールアドレスや URL(「privacy@example.com で」)の前後の空白は、アドレスの終わりを示す区切りなので数えません。予約番号や型番のような番号(「予約番号 MN-48215 を」「型番 SB-210 と」)の前後の空白も、番号を文から区切るものなので数えません。長さ(「3ヶ月」「3 時間」「5日で」「3年」)は数量として数えます。題や注の番号として書かれた数(「3.1 リサーチの原則」の節番号、※1 の注番号、行の頭に続き番号で並べた注の番号、番号が増えていく箇条書きの頭の番号、「問3」「図2」のように語のすぐ後ろに書いた番号)、0 で始まる組を含む番号(102-0094)、〒の後ろの郵便番号(〒100-8916)、市・区・町まで下りた地名のすぐ後ろの番地(千代田区紀尾井町1-3)も、後ろの空白が番号と題・項目の区切りなので数えません。建物の名前の後ろに空白で区切って書いた階や部屋の番号(「本社 5階 第2会議室」「研究所 3階 セミナー室」)の前の空白も、所在の組の区切りなので数えません。名前だけを空白で並べた行(「株式会社あおば電子 経営企画部 IR担当」「東京本社 PR室」)で、空白の両側が部署・拠点・役目や会社の名前のときの空白も、名前と名前の区切りなので数えません。「第1節 AI の…」の「第1節」の後ろの空白も同じです。桁の区切りの無い 6 桁以上の番号(「口座番号 3056172 を」)、ナンバープレート(「ひばり野 330 ね 48-15」)の前後と中の空白、「所属:経済学部 経済学科 1年」「振込先:みなと銀行 普通 1234567」のように項目名とコロンの後ろに値の組を並べた行で、組と組のあいだの空白も、値の区切りなので数えません。「最高速度 40km/h」「(内線 3839)」「- 定員 30名」のように、短い項目名と値を空白一つで並べただけの組の、名と値のあいだの空白も同じです(「定員 30名で行います」のように文の中にあれば数えます)。鉤括弧(「」『』)で引いた題名や発言の中も、リンクの文字の中も、空け方は引いた元のものなので数えません。空けた所と詰めた所が同じ数なら、少ないほうが無いので 1 箇所ずつは指さず、1 対 1 なら何も言いません。
|
|
35
|
+
en: Whether to put a space between Japanese and Latin letters or digits is a choice either way. What reads badly is mixing both in one document, which suggests the difference means something. chaff does not decide which is right; it points at whichever the document uses less. Letters, the space before a digit and the space after one are counted separately, since spacing before a number but not before its counter is common. A unit after a number (3GB) counts with the number; a name that starts with a letter and ends in a digit (H30, EC2, Phase 1) counts with the letters. A code such as a phone number, a date or a version (073-489-5909, 2026-06-02, 1.0.0) is not a quantity and is not counted. Nor is a date or a time written with units (9月, 2026年, 令和8年, 10月1日, 3時, 10時5分), which is packed by convention; neither its inside nor the space before it (は 9月, 午後3時) counts. The same goes for a clock time written with a colon (13:30). Nor is the space beside an e-mail address or a URL (privacy@example.com で), which marks where the address ends, or beside a booking or model number (予約番号 MN-48215 を, 型番 SB-210 と), which sets the number off from the sentence. A length of time (3ヶ月, 3 時間, 5日で, 3年) is a quantity and counts. Neither is a number written as the label of a title or a note (a section number such as 3.1 before its title, a note number after ※, the numbers of notes listed one per line in sequence, numbers opening the items of a list that go up, a number written right after a word such as 問 or 図), a code with a part starting with 0 (102-0094), a postal code after 〒 (〒100-8916), or a hyphenated address number right after a city, ward or town (千代田区紀尾井町1-3), since the space after it separates the label from its title or the next item. Nor is the space before a floor or room number written after the name of a building (本社 5階 第2会議室), which separates the parts of a location. Nor is the space between names on a line of names alone (株式会社あおば電子 経営企画部 IR担当, 東京本社 PR室), when both sides are names of a department, an office, a role or a company, since it separates one name from the next. The same goes for the space after a division such as 第1節. Nor is the space beside a code of six digits or more written without separators (口座番号 3056172 を), around and inside a number plate (ひばり野 330 ね 48-15), or between the parts of a value after a label and a colon (所属:経済学部 経済学科 1年, 振込先:みなと銀行 普通 1234567), which separates the parts of the value. The same goes for the space between a short label and its value written as a pair on their own (最高速度 40km/h, (内線 3839), - 定員 30名); in a sentence (定員 30名で行います) it counts. Nor is the spacing inside a title or a quotation in 「」 or 『』, or inside the text of a link, which is the source's, not the writer's. When both ways are used equally often there is no minority, so no place is singled out, and a one-to-one tie is not reported.
|
|
36
36
|
|
|
37
37
|
message:
|
|
38
38
|
ja: "日本語と{kind}のあいだを{style}(この文書はふつう{usual}。{of} 箇所のうち {count} 箇所が違う)"
|
|
@@ -6,7 +6,9 @@ how_to_find: kanji-run
|
|
|
6
6
|
uses: [pos]
|
|
7
7
|
# chaff.yaml の names に並べた名前は連なりを切る。鉤括弧の中身がまるごと 1 つの連なりなら数えない(書き手が 1 つの名前と示している)。
|
|
8
8
|
# 住所の先頭にしか来ない単位(都道府県)。地名の後ろに付けば、割られた町名ではなく地名の並び。
|
|
9
|
-
|
|
9
|
+
# 組織の名前(organisation-form で始まるか地名・固有名詞で始まり organisation-unit で閉じる、または organisation-unit で閉じる区切りが続く)は数えない。
|
|
10
|
+
# 題の名前(title-ending で閉じ、括弧を閉じるか補いの括弧が続くか一行だけか見出しにあるもの: 〜実施要綱、〜選考試験)は数えない。
|
|
11
|
+
extra_word_lists: [prefecture-unit, organisation-form, organisation-unit, title-ending]
|
|
10
12
|
languages: [ja]
|
|
11
13
|
severity: info
|
|
12
14
|
|
|
@@ -49,8 +51,8 @@ example:
|
|
|
49
51
|
after: 来週、新しい顧客を増やす施策を話し合う会議を開きます。
|
|
50
52
|
|
|
51
53
|
not_flagged:
|
|
52
|
-
ja: chaff.yaml の names に書いた組織名や製品名、法令の条番号(第二十二条第二項)は数えません。
|
|
53
|
-
en:
|
|
54
|
+
ja: 組織の正式名称(国立研究開発法人産業技術総合研究所、経済産業省製造産業局自動車課)、題の名前(要綱・試験・事業・法令などで終わり、一行だけで書くか括弧でくくるか見出しにあるもの。大阪市鶴見区役所公募型比較見積実施要綱など)、chaff.yaml の names に書いた組織名や製品名、法令の条番号(第二十二条第二項)は数えません。
|
|
55
|
+
en: Official organisation names (a legal form or a place name followed by a name that ends in a unit such as 研究所 or 協会, or a chain of units such as 省・局・課), titles of named things (a run ending in 要綱, 試験, 事業, 法 and the like that stands on a line of its own, closes a bracket, is followed by a bracketed note, or appears in a heading), names listed under names in chaff.yaml, and provision numbers in statutes (第二十二条第二項) are not counted.
|
|
54
56
|
level_meaning:
|
|
55
57
|
ja: 漢字の連続 {limit} 字まで
|
|
56
58
|
en: up to {limit} kanji in a row
|
|
@@ -2,6 +2,7 @@ id: max-sentence-length
|
|
|
2
2
|
layer: L1
|
|
3
3
|
status: stable
|
|
4
4
|
how_to_find: sentence-length
|
|
5
|
+
word_list: page-marker
|
|
5
6
|
severity: info
|
|
6
7
|
|
|
7
8
|
name:
|
|
@@ -100,8 +101,8 @@ example:
|
|
|
100
101
|
The new pricing will be trialled from next month. We have not yet decided how to explain it to existing customers, or when to change the billing system. We will agree on a plan this week.
|
|
101
102
|
|
|
102
103
|
not_flagged:
|
|
103
|
-
ja:
|
|
104
|
-
en: Headings, table cells and code are not counted. Genres where long sentences are normal (statutes, papers) raise the limit.
|
|
104
|
+
ja: 見出し、表のセル、コードは数えません。印刷版を文字にした文書が文の途中に残すページの印(「( printed page 52044)」「- 12 -」)も数えません。法令や論文のように長い一文が普通の種類では、ジャンルが上限を長くします。
|
|
105
|
+
en: Headings, table cells and code are not counted, nor are the page markers a converted print edition leaves inside a sentence ("( printed page 52044)", "[[Page 52044]]"). Genres where long sentences are normal (statutes, papers) raise the limit.
|
|
105
106
|
level_meaning:
|
|
106
107
|
ja: 一文 {limit} 字まで
|
|
107
108
|
en: up to {limit} words in a sentence
|
package/rules/name-variant.yaml
CHANGED
|
@@ -100,8 +100,8 @@ example:
|
|
|
100
100
|
The code lives on GitHub. Reviews happen on GitHub, and releases are tagged on GitHub.
|
|
101
101
|
|
|
102
102
|
not_flagged:
|
|
103
|
-
ja: 品詞解析が固有名詞と読んだ語だけを見ます。大文字だけの名前(ACME INC、NASA
|
|
104
|
-
en: Only words the tagger reads as proper nouns are checked. Names in capitals only (ACME INC, NASA) are left out. Names one letter apart are reported only when six letters or longer, with the usual form used at least twice and the other once (Iran and Iraq are different names). Two Japanese person names are compared only when written with another form of the same character (斎藤 and 斉藤), or read the same with one character different, the usual form used at least twice and the other once (松本 and 松元); 伊藤 and 伊東 can be two people. A name character the tagger has no reading for (汰 in 健汰) is read with its reading from the lexicon name-char-reading (健太 and 健汰), in table cells as well. A person's name is one the tagger reads as such, or one followed by 様, さん or 氏 (when a name holds a character form the tagger cannot read, the two to four kanji before the honorific are taken as the name). The honorific may follow the name after a space. A word the tagger does not read as a given name is taken as one when it follows a surname after a space and carries an honorific (森下 千尋 様). A given name written in kana after a surname and a space is joined with the surname when an honorific or a title follows it, or when it ends a line in a field that names a person (松本 あかり 様). A name without an honorific is compared too when it is two to four kanji standing alone, one form has a lead such as 担当の or 私、 or an honorific, and the other stands before a word such as です, が or までご連絡 (担当の斎藤です and 斉藤までご連絡ください). Places have such pairs as well (鹿島 and 鹿嶋), so two forms with neither a lead nor an honorific are not compared. A company name is one next to a company form from the lexicon (Inc., Ltd., Co., Ltd., LLC), whatever the tagger reads it as. The same name with forms of two kinds (Inc. and Ltd.), and the same name written with other punctuation or width, are reported. The short and long spelling of one form (Inc and Incorporated) and a name written without its form (Aoba Systems, the "Company") are not. Two names one letter apart are reported only when seven letters or longer, with the same form, and the letter is not a kanji. A name holding kanji is compared when shorter too, for one kana apart inside a kana word of four or more (コモレビ電機 and コモレピ電機), with the usual form used at least twice and the other once. One kanji of a name written in its kana reading (みどり野生命 and みどりの生命) is reported the same way; the reading is the tagger's, taken only from a word of kana and one kanji. A kanji that does not start the name is also matched with its reading voiced at the start (こむぎ畑 and こむぎばたけ). A place name is one ending in a place word from the lexicon (Street, St., Avenue, Station, Center), whatever the tagger reads it as. The same place written with other punctuation (King's Cross and Kings Cross) or with the place word short and long (11th Street and 11th St.) is reported; a place whose name is one letter away (Union Station and Unoin Station) only when the usual form is used at least twice and the other once. Other numbers and other names (1st Street and 2nd Street, North Hall and South Hall) are different places. Table cells are tagged cell by cell, and a cell holding only a name (two to four capitalised words, or two or three kanji or katakana words with a space) is compared with the names read in the prose. Reported are the same name with other punctuation or case, or one word different with the other words the same, either a letter away (Sofia Mendes in the text, Sofia Mendez in the table) or, for a Japanese name, read the same as the prose name (佐々木 美穂 and 佐々木 美保); these only when the prose form is used at least twice and the cell form once. Place names inside table cells are compared too. A word next to a name that the tagger did not read as a name (to Rachel Whitford, with Rachel read as a verb) is read with it when the two together are read as a name elsewhere. Two names with the same given name and a surname of seven letters or more, whose first four letters match and which differ in at most two letters between the shared start and end (three in the longer one), are reported when the usual form is used at least twice and the other once (Rachel Whitford and Rachel Whitfield). A different given name (Daniel Whitfield) or a surname alone is not compared this way. A name with its words in another order (Foundations of Statistics and Statistical Foundations) is reported only when both hold the same words (by stem) and neither contains the other, and one of them is written as a name, in quotation marks, after a label such as "Prerequisite" and a colon, or as a whole table cell. Two Title Case runs alone are not compared (Florida Supreme Court and Supreme Court of Florida), nor are two names joined by "and". In Japanese, a product name is four or more katakana right before a product-form word from the lexicon (錠, カプセル, クリーム), whatever the tagger reads it as, counted in headings and table cells as well. Two such names with the same form word, differing by one replaced kana or one long-vowel mark (ミナモール錠 and ミナモル錠), are reported when the usual form is used at least twice and the other once. The same name with another form word (ミナモール錠 and ミナモール顆粒) is not, as a product line often has both. In a Japanese name, a character for the same sound (桜ヶ丘 and 桜ケ丘, 霞ヶ関 and 霞が関) is the same only between two kanji, in a name the tagger reads as one word (not 桜が丘, read as 桜, が, 丘). A name without it (桜丘) or with other kanji (桜ヶ岡) is another name. This difference alone is also looked for in the names inside table cells. A model number (four or more capitals and digits, as one word) is read as the document's model only when it is in the title or after a model label from the lexicon (Model, Model No., Part No.); when it appears twice or more, a form that changes only hyphens, spaces, case or width (KM-SP300 and KM-SP-300, KMSP300, km-sp300) is reported. Codes with other letters or digits (KM-SP300 and KM-SP310, a sibling model in a comparison table, the part numbers of a parts list) are different models and are not compared. A word with small letters (iOS17), a version (v1.2 and v1.20), and a code inside a longer code, a URL, a path or a file name (KM-SP300-B, km-sp300.pdf) are not read as model numbers. A standard number written with spaces (JIS C 8714) is not one word, so it is not read as a model even in the title or after a label. Two forms written once each are compared when exactly one of them is in a field that names a person (a label from the lexicon person-label and a colon, with the name ending the line, as in "Contractor:" followed by Priya Raman); the field's form is taken as the usual one and the other is held to the same rules (Priya Raman and Priya Rahman). Two forms both in such fields, or neither, are not compared. Read differently, two full names (surname and given name) are still reported when they differ by one character and the two characters are a lookalike pair from the lexicon name-lookalike-char (太 and 大, 未 and 末), with the usual form used at least twice and the other once (山本 健太 and 山本 健大); a given name alone is not compared this way, as siblings can have such names. In a Latin-script name of two or more words with the other words the same, one word with its last letter dropped or added (Rachel Whitmore and Rachel Whitmor) is reported when the usual form is used at least twice, or is in a field that names the person, and the other once. When that word is the last one (the surname), only if no word before it is written in lower case, or read as a common noun, anywhere in the document (Hurricane Hanna and Hurricane Hannah are two storms); a surname of four letters is then also compared for one letter apart (Daniel Reyes and Daniel Reys; Reyes and Reyna are different surnames). Another word is compared only when eight letters or longer and the name ends in an ordinary word (Hollybrook Residences and Hollybrooke Residences; the given names Christian and Christiane belong to different people). An added s (a plural) or an n after a vowel (Korea and Korean), and a pair where either word is an ordinary word (Green and Greene), are not reported. Two company names with the same form on the same side, differing in one word only, by at most its last two letters in a word of eight or more (Brightmoor and Brightmore) or as the singular and plural of the last word (Water Utility and Water Utilities), are reported when the usual form is used at least twice and the other once.
|
|
103
|
+
ja: 品詞解析が固有名詞と読んだ語だけを見ます。大文字だけの名前(ACME INC、NASA)と、大文字で書いた一節の中の名前(eGAIN AND ITS SUPPLIERS … の eGAIN)は見ません。リンクの角括弧は名前に入れません。一字違いの英字の名前は、6 字以上で、多いほうが二度以上、少ないほうが一度だけのときに限ります(Iran と Iraq は別の名前)。名の違う二人の一字違いの姓(Jeffrey D. Walker と Christopher J. Waller)は別の人です。終わりの重なった字の一つの有る無し(License と Licensee)は、どちらかを文書が小文字で書くなら別の語です。人の名前どうしは、字体の違う同じ字(斎藤 と 斉藤、渡辺 と 渡邊)か、読みが同じで一字だけ違い、多いほうが二度以上、少ないほうが一度だけのとき(松本 と 松元)に限ります(伊藤 と 伊東 は別の人のことがある)。解析器が読みを持たない名前の字(健汰 の 汰)は、語彙表 name-char-reading の読みで読みます(健太 と 健汰。表の升の名前も同じ)。人の名前とは、品詞解析が人名と読んだ語か、「様」「さん」「氏」の付いた名前です(解析器が名前と読めない字体の字を含む名前は、敬称の前の 2〜4 字の漢字を名前と読みます)。敬称は名前とのあいだの空白を越えて見ます。品詞解析が名と読まない語も、姓のあとに空白を挟んで書き、敬称が付けば名と読みます(森下 千尋 様)。姓の後ろに空白を挟んでかなで書いた名も、敬称か肩書きが付くか、人を書く欄の行の終わりにあれば、姓とつないで一つの名前と読みます(松本 あかり 様)。敬称の無い名前も、前後に漢字が続かない 2〜4 字の漢字で、片方の書き方に「担当の」「私、」などの前置きか敬称が付き、もう片方が「です」「が」「までご連絡」などの前にあれば比べます(担当の斎藤です と 斉藤までご連絡ください)。地名にも同じ組がある(鹿島 と 鹿嶋)ので、どちらにも前置きも敬称も無いときは比べません。会社の名前は、語彙表の会社の種類の語(株式会社、(株)、有限会社)の隣にあるものを、品詞と関係なく比べます。名前が同じで種類の語が違うもの(株式会社 と 有限会社)、種類の語を名前の反対側に置いたもの(株式会社アオバ と アオバ株式会社)、記号・幅だけが違うものを指します。三つ以上の種類の語で書いた名前(Aoba Inc、Aoba Ltd、Aoba GmbH)は会社のグループで、種類の違いは比べません。同じ種類の語の略した形(株式会社 と (株))、種類の語を省いた呼び名(アオバシステム、以下「アオバ」)は指しません。名前の一字違いは、7 字以上の名前で、違う字が漢字でないときに限ります(日本電気 と 日本電機 は別の会社のことがある)。漢字を含む名前は、7 字に満たなくても、4 字以上のかなの語の中のかな一字違いを、多いほうが二度以上、少ないほうが一度だけのときに指します(コモレビ電機 と コモレピ電機)。名前の漢字一字を、品詞解析が言うその読みのかなで書いた所(みどり野生命 と みどりの生命)も、多いほうが二度以上、かなのほうが一度だけのときに指します。読みは、かなと漢字一字の語からだけ取ります。名前の頭でない字は、頭の音を濁らせた読みで書いたもの(こむぎ畑 と こむぎばたけ)も同じに指します。漢字だけの名前は、品詞解析が固有名詞と読んだときだけ会社の名前と見ます(清算株式会社、当該株式会社)。場所の名前は、語彙表の場所の語(口、駅、センター、ホール)で終わる名前を、品詞と関係なく比べます。記号・幅だけが違うもの(コンベンションセンター と コンベンション・センター)を指し、名前の読みが同じかかなで書いた読みのもの(筑紫口 と ちくし口)と、固有名詞の字の一字違い(八重洲中央口 と 八重州中央口)は、多いほうが二度以上、少ないほうが一度だけのときに限ります。方角や数字の違い(北口 と 南口、第1会議室 と 第2会議室)は別の所なので指しません。表の升は升ごとに品詞解析し、名前の形をした升(空白を挟んだ二つか三つの漢字・カタカナの語)を本文の名前と比べます。記号・幅だけの違い(佐々木 美穂 と 佐々木 美穂)と、本文と同じく読みが同じで一語だけ違うもの(佐々木 美穂 と 佐々木 美保)を指し、後者は本文の形が二度以上、升の形が一度だけのときに限ります。読みの違う一字違い(佐藤 太郎 と 佐藤 次郎)は別の人のことが多いので指しません(英字の名前は一字違いも指します)。場所の名前は表の升の中のものも比べます。英字の人の名前は、名が同じで、7 字以上の姓の頭 4 字以上がそろい、あいだの 2 字(長いほうは 3 字)までだけ違うもの(Rachel Whitford と Rachel Whitfield)も、多いほうが二度以上、少ないほうが一度だけのときに指します。語の順を入れ替えた名前(統計学基礎 と 基礎統計学)は、同じ語(形態素)を違う順に並べ、どちらも他方を含まず、どちらかが括弧の中か「前提科目:」のような欄の後ろか表の升まるごとに書いた名前のときだけ指します(統計学基礎 と 統計学応用 は別の名前)。同じ文に並べて書いた二つ(画面の二つの項目、定義する語とその中身)と、文書が定義した語は比べません。冠詞だけを挟んだ二つの語(this Agreement the Stockholders)は一つの名前にしません。製品の名前は、語彙表の製品の形の語(錠、カプセル、クリーム)のすぐ前の 4 字以上のカタカナを、品詞と関係なく比べます(見出しと表の升の中のものも数えます)。形の語が同じで、名前が一字の置き換えか長音の記号一つの有る無しだけ違い(ミナモール錠 と ミナモル錠)、多いほうが二度以上、少ないほうが一度だけのときに指します。名前が同じで形の語だけが違うもの(ミナモール錠 と ミナモール顆粒)は、同じ製品の別の形のことが多いので指しません。一語の名前の中で同じ音を書く字(桜ヶ丘・桜ケ丘、霞ヶ関・霞が関)は、漢字に挟まれたときだけ同じ字と見ます。品詞解析が一語と読まない書き方(桜・が・丘)は見ません。字を抜いた形(桜丘)や、違う漢字の名前(桜ヶ岡)は別の名前です。この違いだけは、表の升の中の名前とも比べます。型番(英大文字と数字を合わせた 4 字以上の語)は、文書の題か、語彙表の型番の欄の語(型番、品番、型式)の後ろに書いたものだけを文書の型番と読み、文書の中に二度以上出てくるとき、ハイフン・空白・字の大小・幅だけを変えた形(KM-SP300 と KM-SP-300、KMSP300、km-sp300)を指します。字や数の違う型番(KM-SP300 と KM-SP310、比べる表の兄弟機種、部品表の品番)は別の型番なので指しません。英小文字を含む語(iOS17)、版(v1.2 と v1.20)、より長い型番・URL・パス・ファイル名の一部(KM-SP300-B、km-sp300.pdf)は型番と読みません。空白で区切って書く規格の番号(JIS C 8714)は一つの語でないので、題や欄に書いても型番と読みません。一度ずつ書いた二つの形は、片方だけが人を書く欄(語彙表 person-label の語と「:」の後ろで、名前で行が終わるもの。氏名:山下 美咲)にあれば、欄の形を正しい形と見て、もう片方を同じ決まりで比べます(山下 美咲 と 山下 未咲)。どちらも欄にあるか、どちらも欄に無ければ比べません。欄に書いた名と同じ名を空白の後ろに書いたもの(受託者:西村 亮 の文書の 西邑 亮が)は、敬称が無くても人の名前と読みます。読みの違う一字違いでも、姓と名のそろった名前で、違う二字が語彙表 name-lookalike-char の形の似た字の組(太 と 大、未 と 末)なら、多いほうが二度以上、少ないほうが一度だけのときに指します(山本 健太 と 山本 健大。名だけの名前は兄弟のことがあるので比べません)。英字の名前で、ほかの語が同じ二語以上の名前の一語が、終わりの一字の抜けか足しだけ違うもの(Rachel Whitmore と Rachel Whitmor)も、多いほうが二度以上か人を書く欄にあり、少ないほうが一度だけのときに指します。違うのが最後の語(姓)なら、前の語がどれも、文書の中で小文字でも普通名詞としても書かない語のときに限り(Hurricane Hanna と Hurricane Hannah は別の嵐)、4 字の姓の一字違いも指します(Daniel Reyes と Daniel Reys。Reyes と Reyna は別の姓)。最後でない語は、8 字以上で、名前の最後の語がふつうの語のときに限ります(Hollybrook Residences と Hollybrooke Residences。人の名の Christian と Christiane は別の人)。足した字が s(複数)か母音の後ろの n(Korea と Korean)のもの、違う語のどちらかがふつうの語のもの(Green と Greene)は指しません。会社の名前は、形の語も側も同じで、一語だけが、8 字以上の語の終わりの 2 字まで違うもの(Brightmoor と Brightmore)か、最後の語の単数と複数(Water Utility と Water Utilities)も、多いほうが二度以上、少ないほうが一度だけのときに指します。
|
|
104
|
+
en: Only words the tagger reads as proper nouns are checked. Names in capitals only (ACME INC, NASA) are left out, and so is a name inside a passage written in capitals (eGAIN in "eGAIN AND ITS SUPPLIERS MAKE NO WARRANTY"). A link's brackets are not part of a name. Names one letter apart are reported only when six letters or longer, with the usual form used at least twice and the other once (Iran and Iraq are different names). Two surnames one letter apart under different given names (Jeffrey D. Walker and Christopher J. Waller) belong to two people, and a doubled last letter dropped (License and Licensee) makes another word when the document writes either in lower case. Two Japanese person names are compared only when written with another form of the same character (斎藤 and 斉藤), or read the same with one character different, the usual form used at least twice and the other once (松本 and 松元); 伊藤 and 伊東 can be two people. A name character the tagger has no reading for (汰 in 健汰) is read with its reading from the lexicon name-char-reading (健太 and 健汰), in table cells as well. A person's name is one the tagger reads as such, or one followed by 様, さん or 氏 (when a name holds a character form the tagger cannot read, the two to four kanji before the honorific are taken as the name). The honorific may follow the name after a space. A word the tagger does not read as a given name is taken as one when it follows a surname after a space and carries an honorific (森下 千尋 様). A given name written in kana after a surname and a space is joined with the surname when an honorific or a title follows it, or when it ends a line in a field that names a person (松本 あかり 様). A name without an honorific is compared too when it is two to four kanji standing alone, one form has a lead such as 担当の or 私、 or an honorific, and the other stands before a word such as です, が or までご連絡 (担当の斎藤です and 斉藤までご連絡ください). Places have such pairs as well (鹿島 and 鹿嶋), so two forms with neither a lead nor an honorific are not compared. A company name is one next to a company form from the lexicon (Inc., Ltd., Co., Ltd., LLC), whatever the tagger reads it as. The same name with forms of two kinds (Inc. and Ltd.), and the same name written with other punctuation or width, are reported. A name written with three forms or more (Aoba Inc, Aoba Ltd, Aoba GmbH) is a group of companies, and its forms are not compared. The short and long spelling of one form (Inc and Incorporated) and a name written without its form (Aoba Systems, the "Company") are not. Two names one letter apart are reported only when seven letters or longer, with the same form, and the letter is not a kanji. A name holding kanji is compared when shorter too, for one kana apart inside a kana word of four or more (コモレビ電機 and コモレピ電機), with the usual form used at least twice and the other once. One kanji of a name written in its kana reading (みどり野生命 and みどりの生命) is reported the same way; the reading is the tagger's, taken only from a word of kana and one kanji. A kanji that does not start the name is also matched with its reading voiced at the start (こむぎ畑 and こむぎばたけ). A place name is one ending in a place word from the lexicon (Street, St., Avenue, Station, Center), whatever the tagger reads it as. The same place written with other punctuation (King's Cross and Kings Cross) or with the place word short and long (11th Street and 11th St.) is reported; a place whose name is one letter away (Union Station and Unoin Station) only when the usual form is used at least twice and the other once. Other numbers and other names (1st Street and 2nd Street, North Hall and South Hall) are different places. Table cells are tagged cell by cell, and a cell holding only a name (two to four capitalised words, or two or three kanji or katakana words with a space) is compared with the names read in the prose. Reported are the same name with other punctuation or case, or one word different with the other words the same, either a letter away (Sofia Mendes in the text, Sofia Mendez in the table) or, for a Japanese name, read the same as the prose name (佐々木 美穂 and 佐々木 美保); these only when the prose form is used at least twice and the cell form once. Place names inside table cells are compared too. A word next to a name that the tagger did not read as a name (to Rachel Whitford, with Rachel read as a verb) is read with it when the two together are read as a name elsewhere. Two names with the same given name and a surname of seven letters or more, whose first four letters match and which differ in at most two letters between the shared start and end (three in the longer one), are reported when the usual form is used at least twice and the other once (Rachel Whitford and Rachel Whitfield). A different given name (Daniel Whitfield) or a surname alone is not compared this way. A name with its words in another order (Foundations of Statistics and Statistical Foundations) is reported only when both hold the same words (by stem) and neither contains the other, and one of them is written as a name, in quotation marks, after a label such as "Prerequisite" and a colon, or as a whole table cell. Two Title Case runs alone are not compared (Florida Supreme Court and Supreme Court of Florida), nor are two names joined by "and", two forms written in one sentence (two menu labels side by side, a term and its definition), or a term the document defines. An article alone does not join two words into a name ("this Agreement the Stockholders"). In Japanese, a product name is four or more katakana right before a product-form word from the lexicon (錠, カプセル, クリーム), whatever the tagger reads it as, counted in headings and table cells as well. Two such names with the same form word, differing by one replaced kana or one long-vowel mark (ミナモール錠 and ミナモル錠), are reported when the usual form is used at least twice and the other once. The same name with another form word (ミナモール錠 and ミナモール顆粒) is not, as a product line often has both. In a Japanese name, a character for the same sound (桜ヶ丘 and 桜ケ丘, 霞ヶ関 and 霞が関) is the same only between two kanji, in a name the tagger reads as one word (not 桜が丘, read as 桜, が, 丘). A name without it (桜丘) or with other kanji (桜ヶ岡) is another name. This difference alone is also looked for in the names inside table cells. A model number (four or more capitals and digits, as one word) is read as the document's model only when it is in the title or after a model label from the lexicon (Model, Model No., Part No.); when it appears twice or more, a form that changes only hyphens, spaces, case or width (KM-SP300 and KM-SP-300, KMSP300, km-sp300) is reported. Codes with other letters or digits (KM-SP300 and KM-SP310, a sibling model in a comparison table, the part numbers of a parts list) are different models and are not compared. A word with small letters (iOS17), a version (v1.2 and v1.20), and a code inside a longer code, a URL, a path or a file name (KM-SP300-B, km-sp300.pdf) are not read as model numbers. A standard number written with spaces (JIS C 8714) is not one word, so it is not read as a model even in the title or after a label. Two forms written once each are compared when exactly one of them is in a field that names a person (a label from the lexicon person-label and a colon, with the name ending the line, as in "Contractor:" followed by Priya Raman); the field's form is taken as the usual one and the other is held to the same rules (Priya Raman and Priya Rahman). Two forms both in such fields, or neither, are not compared. Read differently, two full names (surname and given name) are still reported when they differ by one character and the two characters are a lookalike pair from the lexicon name-lookalike-char (太 and 大, 未 and 末), with the usual form used at least twice and the other once (山本 健太 and 山本 健大); a given name alone is not compared this way, as siblings can have such names. In a Latin-script name of two or more words with the other words the same, one word with its last letter dropped or added (Rachel Whitmore and Rachel Whitmor) is reported when the usual form is used at least twice, or is in a field that names the person, and the other once. When that word is the last one (the surname), only if no word before it is written in lower case, or read as a common noun, anywhere in the document (Hurricane Hanna and Hurricane Hannah are two storms); a surname of four letters is then also compared for one letter apart (Daniel Reyes and Daniel Reys; Reyes and Reyna are different surnames). Another word is compared only when eight letters or longer and the name ends in an ordinary word (Hollybrook Residences and Hollybrooke Residences; the given names Christian and Christiane belong to different people). An added s (a plural) or an n after a vowel (Korea and Korean), and a pair where either word is an ordinary word (Green and Greene), are not reported. Two company names with the same form on the same side, differing in one word only, by at most its last two letters in a word of eight or more (Brightmoor and Brightmore) or as the singular and plural of the last word (Water Utility and Water Utilities), are reported when the usual form is used at least twice and the other once.
|
|
105
105
|
rewrite:
|
|
106
106
|
depth: light
|
|
107
107
|
ja:
|
|
@@ -52,8 +52,8 @@ example:
|
|
|
52
52
|
We listen to our customers. Regulars try every prototype, and store staff ask shoppers what they thought.
|
|
53
53
|
|
|
54
54
|
not_flagged:
|
|
55
|
-
ja:
|
|
56
|
-
en: Tags, link text and symbols that a listing repeats on every entry, and the words around a repeated name, are not counted. Short documents are not measured.
|
|
55
|
+
ja: 一覧の飾り(各項目に付くタグやリンクの文字)と、名前にかかる語句は数えません。よくある質問の答えは、問いの見出しごとに別々に数えます。短い文書は測りません。
|
|
56
|
+
en: Tags, link text and symbols that a listing repeats on every entry, and the words around a repeated name, are not counted. The answers in a FAQ are counted one question at a time. Short documents are not measured.
|
|
57
57
|
level_meaning:
|
|
58
58
|
ja: 同じ言い回し {limit} 回まで
|
|
59
59
|
en: up to {limit} uses of the same phrase
|
package/rules/numbering-gap.yaml
CHANGED
|
@@ -74,5 +74,5 @@ example:
|
|
|
74
74
|
Working hours are from nine to six.
|
|
75
75
|
|
|
76
76
|
not_flagged:
|
|
77
|
-
ja:
|
|
78
|
-
en: Only numbers side by side under the same parent are compared. A list that writes the same number on every item ("1." on each) and a list inside a quotation are not checked. A schedule's numbers (Week N, Session N) are compared when they lead table rows, list items or lines; a run shorter than three, one whose heading or header row says it shows only some ("Selected weeks", "Highlights"), and one where most numbers skip (a table of chosen weeks) are not compared.
|
|
77
|
+
ja: 同じ親の下で隣り合う番号だけを比べます。別の章の番号どうしは比べません。括弧で囲んだ番号((1))と囲まない番号(2)は、別の並びとして比べます。どの項目にも同じ番号(「1.」)を書いた箇条書きと、引用の中の箇条書きは見ません。箇条書きの番号は、同じ字下げの番号どうしで比べます(字下げの深いものは入れ子の並び)。Markdown の HTML ブロック(`<br/>` だけの行から次の空行まで)の中の文字は読めないので、そこを挟んだ抜けは言いません。日程の番号(第N週、Week N)は、表の最初の欄、箇条書きの頭、行の頭に並べば比べます。三つに満たない並び、見出しか表の見出し行が「抜粋」「主な」のように一部だけと言うもの、番号の多くが飛ぶもの(選んだ週だけの表)を比べません。
|
|
78
|
+
en: Only numbers side by side under the same parent are compared. Bracketed numbers ("(1)") and bare ones ("2") are compared as separate runs. A list that writes the same number on every item ("1." on each) and a list inside a quotation are not checked. A list's numbers are compared with those at the same indentation (deeper ones are a nested run). Text inside a Markdown HTML block (from a line holding only `<br/>` to the next blank line) is not read, so a gap across one is not reported. A schedule's numbers (Week N, Session N) are compared when they lead table rows, list items or lines; a run shorter than three, one whose heading or header row says it shows only some ("Selected weeks", "Highlights"), and one where most numbers skip (a table of chosen weeks) are not compared.
|
|
@@ -56,8 +56,8 @@ example:
|
|
|
56
56
|
Send the form by email. We answer every email within a day. Attach the receipt to the email.
|
|
57
57
|
|
|
58
58
|
not_flagged:
|
|
59
|
-
ja: 読みが同じでも漢字の違う語(書く・描く)、補助動詞・形式名詞と本来の使い方の書き分け(見て下さい・資料を下さい)、書き分けが意味の違いになる語(成る・なる、言う・いう。法務のジャンルでは、法令の書き方で書き分ける
|
|
60
|
-
en: The case of a word's first letter (Email, email; Long-Term, long-term) is not a spelling, nor is a word in capitals only (emphasis or an acronym), nor a name in capitals with an ending (SENDs, OPENed), nor the letters of an acronym picked out beside it (CLImatology next to CLIPER). A name spelled with capitals (HBase) is still compared. In Japanese, words whose kanji and kana forms mean different things (成る and なる) are not compared, and in the legal genres neither are 時 and
|
|
59
|
+
ja: 読みが同じでも漢字の違う語(書く・描く)、補助動詞・形式名詞と本来の使い方の書き分け(見て下さい・資料を下さい)、書き分けが意味の違いになる語(成る・なる、言う・いう。法務のジャンルでは、法令の書き方で書き分ける 時・とき、物・もの、在る・ある も)、名詞と動詞(払込み・払い込む、申出・申し出る。辞書が名詞を動詞と読んでも)、語末の「ー」だけの違い(katakana-long-vowel が見ます)、鉤括弧や引用符の中、語の直後のふりがなの括弧の中(HTTP(えいちてぃーてぃーぴー))、chaff.yaml の names に書いた名前は見ません。名詞に続けて書いたかなの名詞(全員ぶん)と慣用句の動詞(気をつける)は、同じ読みの語(文、名札を付ける)と別に比べます。英字は、頭の字の大文字小文字(Email と email)と、大文字だけの語(強調や略語)、大文字の名前に語尾が付いた語(関数名の SENDs)、同じ文の略語の字を示した語(CLIPER と並ぶ CLImatology)、大文字で書いた一節の中の語(免責の段落の eGAIN)、大文字で始まる語でないかけらをハイフンでつないだ名前(medical と並ぶ Medi-Cal)を書き方の違いにしません(HBase のような名前の大文字は比べます)。少ないほうが三分の一を超えるときも言いません。文学のジャンルでは既定で止めています(その時代の書き方のため)。
|
|
60
|
+
en: The case of a word's first letter (Email, email; Long-Term, long-term) is not a spelling, nor is a word in capitals only (emphasis or an acronym), nor a name in capitals with an ending (SENDs, OPENed), nor the letters of an acronym picked out beside it (CLImatology next to CLIPER), nor a word inside a passage written in capitals (eGAIN in a disclaimer), nor a name coined from capitalised pieces that are not words (Medi-Cal beside medical). A name spelled with capitals (HBase) is still compared. In Japanese, words whose kanji and kana forms mean different things (成る and なる) are not compared, and in the legal genres neither are 時 and とき, 物 and もの or 在る and ある, which legal drafting writes apart. A noun and a verb (払込み and 払い込む) are different words, even where the analyser reads the noun as the verb. Hyphenated words that are another word (re-sign, resign), part of an address (github.com), anything in quotation marks, a Japanese reading in brackets right after a word (HTTP(えいちてぃーてぃーぴー)) and the team's names are not compared. Nothing is reported when the minority is more than a third. The literature preset turns it off, since old spelling belongs to its time.
|
|
61
61
|
level_meaning:
|
|
62
62
|
ja: 少ないほうが語の {limit}% 以下のとき指摘
|
|
63
63
|
en: reported when the minority spelling is {limit}% of the word's uses or less
|
|
@@ -74,8 +74,8 @@ example:
|
|
|
74
74
|
The fee is monthly.
|
|
75
75
|
|
|
76
76
|
not_flagged:
|
|
77
|
-
ja: 参照先が見出しを持たないとき、参照先が一つに決まらないとき、他の文書の条(民法第709
|
|
78
|
-
en: References whose target has no heading or cannot be told apart, references to another document,
|
|
77
|
+
ja: 参照先が見出しを持たないとき、参照先が一つに決まらないとき、他の文書の条(民法第709条)、括弧の中が数字を含むか「前述」「参照」のような語のとき、句点で終わる断り(「第七項を除く。」)のときは見ません。
|
|
78
|
+
en: References whose target has no heading or cannot be told apart, references to another document, brackets holding a number or a word like "above" or "see", and brackets closed by a Japanese full stop (a note on the scope, 「第七項を除く。」) are left alone.
|
|
79
79
|
rewrite:
|
|
80
80
|
depth: light
|
|
81
81
|
ja:
|
|
@@ -2,6 +2,7 @@ id: repeated-sentence-ending
|
|
|
2
2
|
layer: L3
|
|
3
3
|
status: stable
|
|
4
4
|
how_to_find: ending-run
|
|
5
|
+
word_list: parallel-definition
|
|
5
6
|
requires: [pos]
|
|
6
7
|
languages: [ja]
|
|
7
8
|
severity: info
|
|
@@ -40,8 +41,8 @@ example:
|
|
|
40
41
|
この機能は必要で、設定も簡単です。費用はかかりません。
|
|
41
42
|
|
|
42
43
|
not_flagged:
|
|
43
|
-
ja:
|
|
44
|
-
en: Sentences in different paragraphs are not a run. A sentence that does not end with an auxiliary (a noun, a bare verb) is not compared and breaks the run. Different verbs (読みました, 書きました) are different endings.
|
|
44
|
+
ja: 段落をまたいだ文は続きと見ません。助動詞で終わらない文(体言止め、言い切りの動詞)は比べず、そこで続きが切れます。動詞が違えば(読みました、書きました)同じ文末とは見ません。違う語を同じ型で定義する文の並び(台風は〜を指します。ハリケーンは〜を指します。)は、型をそろえたものなので指しません。
|
|
45
|
+
en: Sentences in different paragraphs are not a run. A sentence that does not end with an auxiliary (a noun, a bare verb) is not compared and breaks the run. Different verbs (読みました, 書きました) are different endings. Sentences that each define a different term in the same frame (台風は〜を指します。ハリケーンは〜を指します。) share their ending on purpose and are not reported.
|
|
45
46
|
level_meaning:
|
|
46
47
|
ja: 同じ文末の文が {limit} 文続くまで
|
|
47
48
|
en: up to {limit} sentences in a row with the same ending
|
|
@@ -60,8 +60,8 @@ example:
|
|
|
60
60
|
I have no other questions.
|
|
61
61
|
|
|
62
62
|
not_flagged:
|
|
63
|
-
ja:
|
|
64
|
-
en: Only requests for an action whose completion can be checked (review, reply, send) are read. Courtesy requests, conditional offers ("If you have questions, let me know")
|
|
63
|
+
ja: 確認・返信・提出のように、済んだかどうかが後で分かる動作を頼む文だけを見ます。「ご了承ください」のような心構えの依頼、「ご不明な点があれば、ご連絡ください」のような条件付きの申し出、「ご質問はメールでお送りください」のような質問を受け付ける申し出、「ご相談ください」「お越しください」のような誘い、連絡先の行(「電話:」)と同じ文の依頼は見ません。期限か担当が、その文か次の文にあれば指しません。「ご提出いただく前に」「送信後、」のように、いつするかを依頼の文が言っていれば期限と読みます。見出しが期限を言っていれば(「見積提出期限:…」「【随時受付】」)、その下の依頼はその期限を受け継ぎます。ビジネスの文書でだけ動きます。
|
|
64
|
+
en: Only requests for an action whose completion can be checked (review, reply, send) are read. Courtesy requests, conditional offers ("If you have questions, let me know"), open offers ("Please send any questions to me"), invitations ("Please come and register") and a request on a contact line (a "Fax" or "Phone" label and its number) are not. A deadline or owner in the same or the next sentence is enough; so is a timing in the request itself ("after you pay"), or a heading above it that names the deadline. Business documents only.
|
|
65
65
|
rewrite:
|
|
66
66
|
depth: light
|
|
67
67
|
ja:
|
|
@@ -74,5 +74,5 @@ example:
|
|
|
74
74
|
config: { genre: technical/spec }
|
|
75
75
|
|
|
76
76
|
not_flagged:
|
|
77
|
-
ja:
|
|
78
|
-
en: Sentences that state no requirement (background, explanation), statutes, and blogs and business documents are not checked. Phrases not on chaff's lists are not reported. An open-ended word inside a name the document defines (a quoted term, or one defined in the brackets after it) is not reported.
|
|
77
|
+
ja: 要求の文でない文(説明や背景)、法令、ブログやビジネス文書は見ません。語彙表にない言い方は指しません。文書が定めた名前の「等」(以下「委託先等」という、銀行等(…をいう。)、定義の号の頭の語)と、監査等委員会のように後ろへ語が続く「等」は、列挙を閉じているので指しません。英語の as soon as possible は、同じ文に日数の期限(no later than two days after)があれば、期限が決まっているので指しません。
|
|
78
|
+
en: Sentences that state no requirement (background, explanation), statutes, and blogs and business documents are not checked. Phrases not on chaff's lists are not reported. An open-ended word inside a name the document defines (a quoted term, or one defined in the brackets after it) is not reported. "As soon as possible" followed in the same sentence by a limit in numbers ("but in any event no later than two days after") is bounded, and not reported.
|
|
@@ -55,8 +55,8 @@ example:
|
|
|
55
55
|
Today we look at the new tool. Open the settings. The gear icon at the top right opens a list of everything you can change, so pick the option you want there and switch it on. Then save. That is the first part done. Next, invite the rest of the team from the page on the left.
|
|
56
56
|
|
|
57
57
|
not_flagged:
|
|
58
|
-
ja:
|
|
59
|
-
en:
|
|
58
|
+
ja: 箇条書きの項目は数えません(揃えて書くのが正しい形です)。地の文が 8 文より少ない文書は、ばらつきが当てにならないので測りません。
|
|
59
|
+
en: List items are not counted, since a list is written alike on purpose. Prose of fewer than 8 sentences is not measured, because the spread means little.
|
|
60
60
|
level_meaning:
|
|
61
61
|
ja: 文の長さのばらつきが {limit}% 未満なら指摘
|
|
62
62
|
en: reported when sentence length varies by less than {limit}%
|
|
@@ -10,8 +10,8 @@ name:
|
|
|
10
10
|
en: Heading capitalisation is inconsistent
|
|
11
11
|
|
|
12
12
|
why:
|
|
13
|
-
ja: Title Case と sentence case のどちらが正しいかは決めません。1 つの文書で混ざっていると、見出しの階層が変わったように見えます。文書の題名(先頭にある深さ 1 の見出しが 1 つだけのとき)は名前なので比べません。節の見出しが同数に割れたときだけ、題名の流儀に合わせます。頭の番号の札(Section 3. / Day 1
|
|
14
|
-
en: Neither Title Case nor sentence case is wrong. Mixed within one document, the headings look like they change level. The document's title (a single top-level heading that opens it) is a name and is not compared; when the section headings split evenly, the title's style decides. A leading label (Section 3., Day 1:)
|
|
13
|
+
ja: Title Case と sentence case のどちらが正しいかは決めません。1 つの文書で混ざっていると、見出しの階層が変わったように見えます。文書の題名(先頭にある深さ 1 の見出しが 1 つだけのとき)は名前なので比べません。節の見出しが同数に割れたときだけ、題名の流儀に合わせます。頭の番号の札(Section 3. / Day 1:)と、曜日・月の名と、本文が文の途中で大文字で書く名前(どれもどちらの流儀でも大文字)は、どちらの流儀の証拠にも数えません。
|
|
14
|
+
en: Neither Title Case nor sentence case is wrong. Mixed within one document, the headings look like they change level. The document's title (a single top-level heading that opens it) is a name and is not compared; when the section headings split evenly, the title's style decides. A leading label (Section 3., Day 1:), the names of weekdays and months, and the names the body itself capitalises mid-sentence, all capitalised in either style, count as evidence for neither.
|
|
15
15
|
|
|
16
16
|
message:
|
|
17
17
|
ja: この見出しだけ他と大文字化の流儀が違います(文書の中で {count} 個)
|
|
@@ -52,5 +52,5 @@ example:
|
|
|
52
52
|
The plan (see below) is ready.
|
|
53
53
|
|
|
54
54
|
not_flagged:
|
|
55
|
-
ja: 行の頭や空白の後ろの「1)」「a)」「事例)」のような三文字までの番号の印、数の後ろの「)」、行の頭でも使う番号の印を括弧の中に書いたもの(「以下、事例5)まで同じ。」)、コードと URL
|
|
56
|
-
en: Labels of up to three characters such as "1)" or "a)" at the start of a line or after a space, a ")" right after a number, a numbered label also used at the start of a line, written inside an aside ("(see the notes; A3) and more)"), code and URLs are not counted. A bracket closed in a later paragraph, and a quotation carried into a paragraph that opens with the same mark, are not reported.
|
|
55
|
+
ja: 行の頭や空白の後ろの「1)」「a)」「事例)」のような三文字までの番号の印、数の後ろの「)」、行の頭でも使う番号の印を括弧の中に書いたもの(「以下、事例5)まで同じ。」)、コードと URL は数えません。段落をまたいで閉じる括弧と、次の段落を同じ引用符で始める台詞も指しません。小数と単位の間の引用符はインチの印(.015 “Hg)として数えません。
|
|
56
|
+
en: Labels of up to three characters such as "1)" or "a)" at the start of a line or after a space, a ")" right after a number, a numbered label also used at the start of a line, written inside an aside ("(see the notes; A3) and more)"), code and URLs are not counted. A bracket closed in a later paragraph, and a quotation carried into a paragraph that opens with the same mark, are not reported. A curly quote between a decimal number and a unit is an inch mark (".015 “Hg") and is not counted.
|
|
@@ -7,6 +7,7 @@ extra_word_lists:
|
|
|
7
7
|
[
|
|
8
8
|
definition-marker,
|
|
9
9
|
definition-verb,
|
|
10
|
+
definition-statement,
|
|
10
11
|
meridiem,
|
|
11
12
|
time-zone,
|
|
12
13
|
currency-code,
|
|
@@ -19,6 +20,14 @@ extra_word_lists:
|
|
|
19
20
|
date-time-unit,
|
|
20
21
|
http-method,
|
|
21
22
|
reference-list-heading,
|
|
23
|
+
legal-form,
|
|
24
|
+
citation-series,
|
|
25
|
+
carrier-name,
|
|
26
|
+
name-prefix,
|
|
27
|
+
street-suffix,
|
|
28
|
+
tax-code,
|
|
29
|
+
capital-phrase,
|
|
30
|
+
name-determiner,
|
|
22
31
|
]
|
|
23
32
|
uses: [pos]
|
|
24
33
|
severity: info
|
|
@@ -70,5 +79,5 @@ not_flagged:
|
|
|
70
79
|
ja: 誰でも知っている略語(URL、PDF など)と、前後の括弧で説明した略語は指しません。
|
|
71
80
|
en: Common acronyms (URL, PDF) and acronyms spelled out in brackets next to them are not reported.
|
|
72
81
|
level_meaning:
|
|
73
|
-
ja: 説明のない略語が {limit}
|
|
74
|
-
en: reported once {limit} different acronyms go unexplained
|
|
82
|
+
ja: 説明のない略語が {limit} 種類あれば指摘。文書が自分で略語を {limit} 個展開していれば、1 つの抜けから指摘
|
|
83
|
+
en: reported once {limit} different acronyms go unexplained, or from the first one when the document itself spells out {limit} others
|
|
@@ -69,8 +69,8 @@ example:
|
|
|
69
69
|
1. The Supplier shall provide the hosting services (the "Services") to the Customer.
|
|
70
70
|
|
|
71
71
|
not_flagged:
|
|
72
|
-
ja: 文書が「本」を付けた語を一つも定義していなければ見ません。定義した語とその言い換え(本件業務、defined-term-form が見ます)、定義した語で始まる語(本サービス上)、この文書やその一部を指す語(本条、本項、本書、本契約、本利用規約、本サイト)、どこかでかぎ括弧に入れた語(定義の書き方を chaff が読めなかったもの)、一語の言葉(本人、本日、本社)は見ません。同じ語は最初の一か所だけ指します。英語は、大文字は法令・組織・方針の名前(the Federal Trade Commission Act、Acceptable Use Policies)にも使うので、狭く読みます。"X" means や (the "X") の形の定義が二つ未満の文書は見ません。文の頭や記号の後ろの語、小文字の名詞の前に付けた語(the Premium plan)、名前の一覧(proper-name-word、地名、曜日と月、会社の形、当事者の役割)の語を含むもの、条の参照(Section 4、Schedule A)、見出し・リンク・太字・HTML
|
|
73
|
-
en: "A document that defines no term with the prefix is not read. Defined terms and their other-prefix forms (本件業務, which defined-term-form reads), terms that start with a defined term (本サービス上), the document's names for itself and its parts (本条, 本項, 本書, 本契約, 本利用規約, 本サイト), terms set in quotes anywhere (a definition chaff could not read), and single words (本人, 本日, 本社) are not reported. Each term is reported once, at its first use. English is read narrowly, since capitals also name laws, organisations and policies (the Federal Trade Commission Act, Acceptable Use Policies): a document with fewer than two definitions written with a defining word (“X” means, (the “X”)) is not read; and a word at the start of a sentence or after a mark, a modifier of a lower-case noun (the Premium plan), a run holding a word of the name lists (proper-name-word, places, weekdays and months, company forms, party roles), a reference to a part (Section 4, Schedule A), anything inside a heading, a link, bold, an HTML element, a table
|
|
72
|
+
ja: 文書が「本」を付けた語を一つも定義していなければ見ません。定義した語とその言い換え(本件業務、defined-term-form が見ます)、定義した語で始まる語(本サービス上)、この文書やその一部を指す語(本条、本項、本書、本契約、本利用規約、本サイト)、どこかでかぎ括弧に入れた語(定義の書き方を chaff が読めなかったもの)、一語の言葉(本人、本日、本社)は見ません。同じ語は最初の一か所だけ指します。英語は、大文字は法令・組織・方針の名前(the Federal Trade Commission Act、Acceptable Use Policies)にも使うので、狭く読みます。"X" means や (the "X") の形の定義が二つ未満の文書は見ません。文の頭や記号の後ろの語、小文字の名詞の前に付けた語(the Premium plan)、名前の一覧(proper-name-word、地名、曜日と月、会社の形、当事者の役割)の語を含むもの、条の参照(Section 4、Schedule A)、前後の語から名前と分かるもの(後ろに番号が付く Proposition 65、長い名前の頭 Post Holdings, Inc. や Canton, Ohio や the Federal Food, Drug, and Cosmetic Act、直後の括弧で定義するもの Certificate of Analysis (“COA”) や the Closing (as defined in the Merger Agreement)、文書が定義した略語の頭文字になるもの “IRS” means the Internal Revenue Service、当事者の立場 Citibank, N.A., as Administrative Agent)、見出し・リンク・太字・HTML の要素・表・箇条書きの見出し・条の頭の見出し(5.8 No Representation or Warranty.)の中、どこかで引用符か太字に入れた語、定義した語を含むもの(大文字小文字を問いません)、文書のどこかで小文字でも書いた語(your Account と your account。普通の語か画面の名前)は見ません。法令・判決・特許は見ません。契約書・規約のジャンルで見ます。
|
|
73
|
+
en: "A document that defines no term with the prefix is not read. Defined terms and their other-prefix forms (本件業務, which defined-term-form reads), terms that start with a defined term (本サービス上), the document's names for itself and its parts (本条, 本項, 本書, 本契約, 本利用規約, 本サイト), terms set in quotes anywhere (a definition chaff could not read), and single words (本人, 本日, 本社) are not reported. Each term is reported once, at its first use. English is read narrowly, since capitals also name laws, organisations and policies (the Federal Trade Commission Act, Acceptable Use Policies): a document with fewer than two definitions written with a defining word (“X” means, (the “X”)) is not read; and a word at the start of a sentence or after a mark, a modifier of a lower-case noun (the Premium plan), a run holding a word of the name lists (proper-name-word, places, weekdays and months, company forms, party roles), a reference to a part (Section 4, Schedule A), a name shown by the words around it (a number after it: Proposition 65; a longer name it starts: Post Holdings, Inc., Canton, Ohio, the Federal Food, Drug, and Cosmetic Act; brackets right after it that define it: Certificate of Analysis (“COA”), the Closing (as defined in the Merger Agreement); initials that spell a term the document defines: “IRS” means the Internal Revenue Service; a party's capacity: Citibank, N.A., as Administrative Agent), anything inside a heading, a link, bold, an HTML element, a table, a list item's label or a clause's run-in caption (5.8 No Representation or Warranty.), a word set in quotes or bold anywhere, a run holding a defined term in any case, and a word the document also writes in lower case (your Account and your account: an ordinary word or a screen's name) are not reported. Statutes, court decisions and patents are not read; the contract genre runs this rule."
|
|
74
74
|
rewrite:
|
|
75
75
|
depth: light
|
|
76
76
|
ja:
|
|
@@ -43,5 +43,5 @@ example:
|
|
|
43
43
|
We can meet on Friday 9 October to go through the quote.
|
|
44
44
|
|
|
45
45
|
not_flagged:
|
|
46
|
-
ja: "例として置いた「○○」、Markdown のリンク、脚注の番号、チェック欄とチェックリストの項目(- [ ] TODO: …)、値が続く見出しの札(【氏名】山田)、コードとコードのコメント(// TODO
|
|
47
|
-
en: 'Markdown links and reference definitions, footnote numbers, checkboxes and checklist items ("- [ ] TODO: …"), a label its value follows ("[Date]: 2024-04-01"), code and code comments ("// TODO"),
|
|
46
|
+
ja: "例として置いた「○○」、Markdown のリンク、脚注の番号、チェック欄とチェックリストの項目(- [ ] TODO: …)、値が続く見出しの札(【氏名】山田)、コードとコードのコメント(// TODO)、文の中の「未定」(日程は未定です)、見出しが雛形と言う節(「## 雛形」「# 記入例」)の中の空欄は指しません。"
|
|
47
|
+
en: 'Markdown links and reference definitions, footnote numbers, checkboxes and checklist items ("- [ ] TODO: …"), a label its value follows ("[Date]: 2024-04-01"), code and code comments ("// TODO"), "TBD" inside a sentence ("the date is TBD"), and blanks under a heading that names a template ("## Template", "# Sample letter") are not reported.'
|
|
@@ -53,8 +53,8 @@ example:
|
|
|
53
53
|
Report an incident within 30 minutes and notify the affected teams. Record it in the incident log and fix the cause by the next working day.
|
|
54
54
|
|
|
55
55
|
not_flagged:
|
|
56
|
-
ja:
|
|
57
|
-
en: A few vague words for the document's length are not reported, and very short documents are not measured. Inside a requirement, requirement-smell also reads "where possible" and "as needed".
|
|
56
|
+
ja: 文書の長さに対して少ないものは指しません。短すぎる文書も測りません。指すのは語のある文ごとに一度で、長い言い方の中の語(in a timely manner の timely)は一つと数えます。英語の法務の文書では、法律や慣行が意味を決めている言い方(reasonable、best efforts、from time to time)の中の語は数えません。要求の文の中の「可能な限り」「必要に応じて」は、要求の書き方として requirement-smell も見ます。
|
|
57
|
+
en: 'A few vague words for the document''s length are not reported, and very short documents are not measured. Each sentence is reported once, and a word inside a longer phrase ("timely" in "in a timely manner") counts once. In legal documents, a word inside a term that law and practice define ("reasonable", "best efforts", "from time to time") is not counted. Inside a requirement, requirement-smell also reads "where possible" and "as needed".'
|
|
58
58
|
level_meaning:
|
|
59
59
|
ja: 1000 字あたりあいまいな語 {limit} 個まで
|
|
60
60
|
en: up to {limit} vague words per 1000 words
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// A word set in capitals because the passage around it is (a disclaimer, a heading or a running header in capitals): eGAIN in
|
|
2
|
+
// "eGAIN AND ITS SUPPLIERS MAKE NO WARRANTY" is the passage's capitals, not another spelling of eGain.
|
|
3
|
+
|
|
4
|
+
/** Words read on each side of the span, in its sentence and on its line. */
|
|
5
|
+
const NEIGHBOURS = 3;
|
|
6
|
+
/** Words, the span's own included, that make a passage rather than one word in capitals. */
|
|
7
|
+
const MIN_PASSAGE_WORDS = 3;
|
|
8
|
+
/** How far to look on each side (UTF-16 units): three words, however long, fit. */
|
|
9
|
+
const WINDOW = 200;
|
|
10
|
+
const WORD = /\p{Script=Latin}[\p{Script=Latin}\p{N}'’]*/gu;
|
|
11
|
+
const LOWER = /\p{Ll}/u;
|
|
12
|
+
/** The end of a sentence or a line: the passage does not run across it ("7. Warranty. THE SYSTEMS ARE …"). */
|
|
13
|
+
const STOP = /[.!?;:]\s|\n/gu;
|
|
14
|
+
|
|
15
|
+
/** A word in capitals after its first letter (WARRANTY, eGAIN, eGAIN'S). */
|
|
16
|
+
const isCapitalsWord = (word: string): boolean => !LOWER.test([...word].slice(1).join(""));
|
|
17
|
+
|
|
18
|
+
/** The Latin words of two letters or more: a one-letter word (a, I) says nothing about the passage. */
|
|
19
|
+
const wordsIn = (text: string): string[] => [...text.matchAll(WORD)].map((match) => match[0]).filter((word) => [...word].length >= 2);
|
|
20
|
+
|
|
21
|
+
const afterLastStop = (text: string): string => text.slice(Math.max(0, ...[...text.matchAll(STOP)].map((match) => match.index + match[0].length)));
|
|
22
|
+
|
|
23
|
+
const beforeFirstStop = (text: string): string => text.slice(0, [...text.matchAll(STOP)][0]?.index ?? text.length);
|
|
24
|
+
|
|
25
|
+
/** Whether the words of text[start, end) and up to three words on each side of it, in its sentence, are all in capitals, three or more of them. */
|
|
26
|
+
export const isInCapitalsPassage = (text: string, start: number, end: number): boolean => {
|
|
27
|
+
const before = wordsIn(afterLastStop(text.slice(Math.max(0, start - WINDOW), start))).slice(-NEIGHBOURS);
|
|
28
|
+
const after = wordsIn(beforeFirstStop(text.slice(end, end + WINDOW))).slice(0, NEIGHBOURS);
|
|
29
|
+
const words = [...before, ...wordsIn(text.slice(start, end)), ...after];
|
|
30
|
+
return words.length >= MIN_PASSAGE_WORDS && words.every(isCapitalsWord);
|
|
31
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// A name coined from pieces joined by hyphens (Medi-Cal, the name of a programme): the pieces after the first are capitalised
|
|
2
|
+
// and one of them is not a word. Closed up, its letters spell an ordinary word (medical), which is another word and not another
|
|
3
|
+
// spelling of the name.
|
|
4
|
+
|
|
5
|
+
const CAPITALISED = /^\p{Lu}\p{Ll}+$/u;
|
|
6
|
+
|
|
7
|
+
/** Whether a hyphenated word is a coined name. isWord says whether a lower-case word is in the language's dictionary. */
|
|
8
|
+
export const isCoinedName = (word: string, isWord: (word: string) => boolean): boolean => {
|
|
9
|
+
const later = word.split("-").slice(1);
|
|
10
|
+
return later.length > 0 && later.every((part) => CAPITALISED.test(part)) && later.some((part) => !isWord(part.toLowerCase()));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const UPPER = /\p{Lu}/u;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The words without the coined names whose key the document otherwise writes only in small letters (Medi-Cal beside medical).
|
|
17
|
+
* Beside a spelling with capitals of its own (Wi-Fi beside WiFi) the coined name is still a spelling of that name. spelling is the
|
|
18
|
+
* word with the first letter of each part in small letters.
|
|
19
|
+
*/
|
|
20
|
+
export const withoutCoinedNames = <Word extends { readonly key: string; readonly spelling: string; readonly shown?: string }>(
|
|
21
|
+
words: readonly Word[],
|
|
22
|
+
isWord: (word: string) => boolean,
|
|
23
|
+
): Word[] => {
|
|
24
|
+
const isCoined = (word: Word): boolean => isCoinedName(word.shown ?? word.spelling, isWord);
|
|
25
|
+
const capitalKeys = new Set(words.filter((word) => !isCoined(word) && UPPER.test(word.spelling)).map((word) => word.key));
|
|
26
|
+
return words.filter((word) => !isCoined(word) || capitalKeys.has(word.key));
|
|
27
|
+
};
|
package/src/company-names.ts
CHANGED
|
@@ -359,12 +359,33 @@ const relationBetween = (tally: Tally, other: Tally): CompanyRelation | undefine
|
|
|
359
359
|
return isNameEndingSlip(left.base, right.base) ? "ending" : undefined;
|
|
360
360
|
};
|
|
361
361
|
|
|
362
|
-
/**
|
|
362
|
+
/** 会社のグループと見る、同じ名前の部分に付く形の組の数。 */
|
|
363
|
+
const MIN_GROUP_FORMS = 3;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* 三つ以上の形の組で書いた名前の部分(GitLab Inc、GitLab Ltd、GitLab GmbH)。国ごとの会社を並べたグループで、形の違いは別の会社を
|
|
367
|
+
* 言い分けている。比べる形(nameKey)で。
|
|
368
|
+
*/
|
|
369
|
+
export const companyGroupBases = (mentions: readonly CompanyMention[]): Set<string> => {
|
|
370
|
+
const forms = new Map<string, Set<string>>();
|
|
371
|
+
mentions.forEach((mention) => {
|
|
372
|
+
const base = nameKey(mention.base);
|
|
373
|
+
forms.set(base, (forms.get(base) ?? new Set()).add(mention.form));
|
|
374
|
+
});
|
|
375
|
+
return new Set([...forms].flatMap(([base, groups]) => (groups.size >= MIN_GROUP_FORMS ? [base] : [])));
|
|
376
|
+
};
|
|
377
|
+
|
|
378
|
+
/** 同じ会社の、少ないほうの書き方。同じ会社と言える相手のうち一番多いものと比べる。会社のグループの形の違いは比べない。書き方ごとに最初の現れを一つ。 */
|
|
363
379
|
export const companyVariants = (mentions: readonly CompanyMention[]): CompanyVariant[] => {
|
|
364
380
|
const tallies = talliesOf(mentions);
|
|
381
|
+
const groups = companyGroupBases(mentions);
|
|
382
|
+
const relationOf = (tally: Tally, other: Tally): CompanyRelation | undefined => {
|
|
383
|
+
const relation = relationBetween(tally, other);
|
|
384
|
+
return relation === "form" && groups.has(nameKey(tally.first.base)) ? undefined : relation;
|
|
385
|
+
};
|
|
365
386
|
return tallies.flatMap((tally) => {
|
|
366
|
-
const [usual] = tallies.filter((other) => other === tally ||
|
|
367
|
-
const kind = usual === undefined || usual === tally ? undefined :
|
|
387
|
+
const [usual] = tallies.filter((other) => other === tally || relationOf(tally, other) !== undefined).toSorted(byUsage);
|
|
388
|
+
const kind = usual === undefined || usual === tally ? undefined : relationOf(tally, usual);
|
|
368
389
|
return usual === undefined || kind === undefined ? [] : [{ mention: tally.first, usual: usual.first.surface, kind }];
|
|
369
390
|
});
|
|
370
391
|
};
|