chaffjs 0.14.0 → 0.15.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.
Files changed (273) hide show
  1. package/dist/address-chain.d.ts +4 -1
  2. package/dist/address-chain.d.ts.map +1 -1
  3. package/dist/address-chain.js +5 -2
  4. package/dist/address-chain.js.map +1 -1
  5. package/dist/cli-text.d.ts +4 -1
  6. package/dist/cli-text.d.ts.map +1 -1
  7. package/dist/cli-text.js +14 -2
  8. package/dist/cli-text.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +21 -21
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/eval.d.ts +4 -0
  13. package/dist/commands/eval.d.ts.map +1 -1
  14. package/dist/commands/eval.js +20 -6
  15. package/dist/commands/eval.js.map +1 -1
  16. package/dist/commands/feedback.d.ts.map +1 -1
  17. package/dist/commands/feedback.js +2 -1
  18. package/dist/commands/feedback.js.map +1 -1
  19. package/dist/commands/test.d.ts.map +1 -1
  20. package/dist/commands/test.js +3 -2
  21. package/dist/commands/test.js.map +1 -1
  22. package/dist/commands/tree.d.ts.map +1 -1
  23. package/dist/commands/tree.js +2 -1
  24. package/dist/commands/tree.js.map +1 -1
  25. package/dist/detectors/acronym-compound.d.ts +8 -0
  26. package/dist/detectors/acronym-compound.d.ts.map +1 -0
  27. package/dist/detectors/acronym-compound.js +8 -0
  28. package/dist/detectors/acronym-compound.js.map +1 -0
  29. package/dist/detectors/acronym-context.d.ts +4 -0
  30. package/dist/detectors/acronym-context.d.ts.map +1 -1
  31. package/dist/detectors/acronym-context.js +17 -1
  32. package/dist/detectors/acronym-context.js.map +1 -1
  33. package/dist/detectors/acronym-expansion.d.ts +10 -0
  34. package/dist/detectors/acronym-expansion.d.ts.map +1 -1
  35. package/dist/detectors/acronym-expansion.js +63 -5
  36. package/dist/detectors/acronym-expansion.js.map +1 -1
  37. package/dist/detectors/char-shape.d.ts.map +1 -1
  38. package/dist/detectors/char-shape.js +36 -14
  39. package/dist/detectors/char-shape.js.map +1 -1
  40. package/dist/detectors/citation-key.d.ts +13 -0
  41. package/dist/detectors/citation-key.d.ts.map +1 -0
  42. package/dist/detectors/citation-key.js +9 -0
  43. package/dist/detectors/citation-key.js.map +1 -0
  44. package/dist/detectors/cited-name.d.ts +11 -0
  45. package/dist/detectors/cited-name.d.ts.map +1 -0
  46. package/dist/detectors/cited-name.js +15 -0
  47. package/dist/detectors/cited-name.js.map +1 -0
  48. package/dist/detectors/concrete-evidence.d.ts +7 -0
  49. package/dist/detectors/concrete-evidence.d.ts.map +1 -0
  50. package/dist/detectors/concrete-evidence.js +21 -0
  51. package/dist/detectors/concrete-evidence.js.map +1 -0
  52. package/dist/detectors/counter-edge.d.ts +8 -0
  53. package/dist/detectors/counter-edge.d.ts.map +1 -0
  54. package/dist/detectors/counter-edge.js +27 -0
  55. package/dist/detectors/counter-edge.js.map +1 -0
  56. package/dist/detectors/dotted-name.d.ts +13 -0
  57. package/dist/detectors/dotted-name.d.ts.map +1 -0
  58. package/dist/detectors/dotted-name.js +10 -0
  59. package/dist/detectors/dotted-name.js.map +1 -0
  60. package/dist/detectors/doubled-word.d.ts +6 -1
  61. package/dist/detectors/doubled-word.d.ts.map +1 -1
  62. package/dist/detectors/doubled-word.js +22 -2
  63. package/dist/detectors/doubled-word.js.map +1 -1
  64. package/dist/detectors/en-shape.d.ts +1 -1
  65. package/dist/detectors/en-shape.d.ts.map +1 -1
  66. package/dist/detectors/en-shape.js +11 -22
  67. package/dist/detectors/en-shape.js.map +1 -1
  68. package/dist/detectors/gram-place.d.ts +0 -4
  69. package/dist/detectors/gram-place.d.ts.map +1 -1
  70. package/dist/detectors/gram-place.js +6 -1
  71. package/dist/detectors/gram-place.js.map +1 -1
  72. package/dist/detectors/gram-predicate.d.ts +7 -0
  73. package/dist/detectors/gram-predicate.d.ts.map +1 -0
  74. package/dist/detectors/gram-predicate.js +44 -0
  75. package/dist/detectors/gram-predicate.js.map +1 -0
  76. package/dist/detectors/heading-case.d.ts +21 -0
  77. package/dist/detectors/heading-case.d.ts.map +1 -0
  78. package/dist/detectors/heading-case.js +38 -0
  79. package/dist/detectors/heading-case.js.map +1 -0
  80. package/dist/detectors/heading-echo.d.ts.map +1 -1
  81. package/dist/detectors/heading-echo.js +4 -1
  82. package/dist/detectors/heading-echo.js.map +1 -1
  83. package/dist/detectors/lexicon.d.ts.map +1 -1
  84. package/dist/detectors/lexicon.js +7 -4
  85. package/dist/detectors/lexicon.js.map +1 -1
  86. package/dist/detectors/name-numeral.d.ts +16 -0
  87. package/dist/detectors/name-numeral.d.ts.map +1 -0
  88. package/dist/detectors/name-numeral.js +30 -0
  89. package/dist/detectors/name-numeral.js.map +1 -0
  90. package/dist/detectors/name-part.d.ts +8 -0
  91. package/dist/detectors/name-part.d.ts.map +1 -0
  92. package/dist/detectors/name-part.js +20 -0
  93. package/dist/detectors/name-part.js.map +1 -0
  94. package/dist/detectors/name-run.d.ts +8 -0
  95. package/dist/detectors/name-run.d.ts.map +1 -0
  96. package/dist/detectors/name-run.js +13 -0
  97. package/dist/detectors/name-run.js.map +1 -0
  98. package/dist/detectors/orthography.d.ts.map +1 -1
  99. package/dist/detectors/orthography.js +15 -5
  100. package/dist/detectors/orthography.js.map +1 -1
  101. package/dist/detectors/placeholder.d.ts +14 -0
  102. package/dist/detectors/placeholder.d.ts.map +1 -0
  103. package/dist/detectors/placeholder.js +24 -0
  104. package/dist/detectors/placeholder.js.map +1 -0
  105. package/dist/detectors/quoted-variant.d.ts +7 -0
  106. package/dist/detectors/quoted-variant.d.ts.map +1 -0
  107. package/dist/detectors/quoted-variant.js +18 -0
  108. package/dist/detectors/quoted-variant.js.map +1 -0
  109. package/dist/detectors/series-label.d.ts +13 -0
  110. package/dist/detectors/series-label.d.ts.map +1 -0
  111. package/dist/detectors/series-label.js +26 -0
  112. package/dist/detectors/series-label.js.map +1 -0
  113. package/dist/detectors/signals.d.ts.map +1 -1
  114. package/dist/detectors/signals.js +29 -24
  115. package/dist/detectors/signals.js.map +1 -1
  116. package/dist/detectors/structure-tree.js +1 -1
  117. package/dist/detectors/structure-tree.js.map +1 -1
  118. package/dist/detectors/superlative-name.d.ts +9 -0
  119. package/dist/detectors/superlative-name.d.ts.map +1 -0
  120. package/dist/detectors/superlative-name.js +24 -0
  121. package/dist/detectors/superlative-name.js.map +1 -0
  122. package/dist/detectors/token-shape.d.ts.map +1 -1
  123. package/dist/detectors/token-shape.js +10 -2
  124. package/dist/detectors/token-shape.js.map +1 -1
  125. package/dist/document.d.ts.map +1 -1
  126. package/dist/document.js +10 -4
  127. package/dist/document.js.map +1 -1
  128. package/dist/genre-check.d.ts +34 -0
  129. package/dist/genre-check.d.ts.map +1 -0
  130. package/dist/genre-check.js +21 -0
  131. package/dist/genre-check.js.map +1 -0
  132. package/dist/genre.d.ts +8 -1
  133. package/dist/genre.d.ts.map +1 -1
  134. package/dist/genre.js +29 -5
  135. package/dist/genre.js.map +1 -1
  136. package/dist/init.d.ts +0 -1
  137. package/dist/init.d.ts.map +1 -1
  138. package/dist/init.js +0 -12
  139. package/dist/init.js.map +1 -1
  140. package/dist/joined-view.d.ts +25 -0
  141. package/dist/joined-view.d.ts.map +1 -0
  142. package/dist/joined-view.js +76 -0
  143. package/dist/joined-view.js.map +1 -0
  144. package/dist/line-continues.d.ts +6 -0
  145. package/dist/line-continues.d.ts.map +1 -0
  146. package/dist/line-continues.js +33 -0
  147. package/dist/line-continues.js.map +1 -0
  148. package/dist/measure.d.ts +1 -0
  149. package/dist/measure.d.ts.map +1 -1
  150. package/dist/measure.js +5 -1
  151. package/dist/measure.js.map +1 -1
  152. package/dist/number-name.d.ts +6 -3
  153. package/dist/number-name.d.ts.map +1 -1
  154. package/dist/number-name.js +31 -14
  155. package/dist/number-name.js.map +1 -1
  156. package/dist/orthography.d.ts +4 -0
  157. package/dist/orthography.d.ts.map +1 -1
  158. package/dist/orthography.js +11 -9
  159. package/dist/orthography.js.map +1 -1
  160. package/dist/plain-source.d.ts +6 -0
  161. package/dist/plain-source.d.ts.map +1 -0
  162. package/dist/plain-source.js +6 -0
  163. package/dist/plain-source.js.map +1 -0
  164. package/dist/plugin.d.ts +16 -1
  165. package/dist/plugin.d.ts.map +1 -1
  166. package/dist/quoted-span.d.ts +10 -0
  167. package/dist/quoted-span.d.ts.map +1 -0
  168. package/dist/quoted-span.js +20 -0
  169. package/dist/quoted-span.js.map +1 -0
  170. package/dist/render/eval.d.ts +2 -1
  171. package/dist/render/eval.d.ts.map +1 -1
  172. package/dist/render/eval.js +84 -43
  173. package/dist/render/eval.js.map +1 -1
  174. package/dist/resolve-genre.d.ts +11 -0
  175. package/dist/resolve-genre.d.ts.map +1 -0
  176. package/dist/resolve-genre.js +18 -0
  177. package/dist/resolve-genre.js.map +1 -0
  178. package/dist/soft-break.d.ts +19 -0
  179. package/dist/soft-break.d.ts.map +1 -0
  180. package/dist/soft-break.js +78 -0
  181. package/dist/soft-break.js.map +1 -0
  182. package/dist/structure/build.d.ts.map +1 -1
  183. package/dist/structure/build.js +19 -9
  184. package/dist/structure/build.js.map +1 -1
  185. package/dist/structure/date-order.d.ts +3 -0
  186. package/dist/structure/date-order.d.ts.map +1 -1
  187. package/dist/structure/date-order.js +9 -1
  188. package/dist/structure/date-order.js.map +1 -1
  189. package/dist/structure/issues.d.ts +1 -1
  190. package/dist/structure/issues.d.ts.map +1 -1
  191. package/dist/structure/issues.js +14 -3
  192. package/dist/structure/issues.js.map +1 -1
  193. package/dist/structure/listed-tags.d.ts +3 -0
  194. package/dist/structure/listed-tags.d.ts.map +1 -0
  195. package/dist/structure/listed-tags.js +6 -0
  196. package/dist/structure/listed-tags.js.map +1 -0
  197. package/dist/structure/number-in-sentence.d.ts +15 -0
  198. package/dist/structure/number-in-sentence.d.ts.map +1 -0
  199. package/dist/structure/number-in-sentence.js +13 -0
  200. package/dist/structure/number-in-sentence.js.map +1 -0
  201. package/dist/structure/unit-word.d.ts +8 -0
  202. package/dist/structure/unit-word.d.ts.map +1 -0
  203. package/dist/structure/unit-word.js +10 -0
  204. package/dist/structure/unit-word.js.map +1 -0
  205. package/dist/structure/wrapped-tail.d.ts +18 -0
  206. package/dist/structure/wrapped-tail.d.ts.map +1 -0
  207. package/dist/structure/wrapped-tail.js +11 -0
  208. package/dist/structure/wrapped-tail.js.map +1 -0
  209. package/package.json +3 -3
  210. package/rules/dangling-reference.yaml +2 -2
  211. package/rules/date-order.yaml +2 -2
  212. package/rules/latin-spacing.yaml +4 -2
  213. package/rules/max-kanji-continuous.yaml +1 -1
  214. package/rules/no-doubled-joshi.yaml +2 -2
  215. package/rules/title-case-consistency.yaml +2 -2
  216. package/rules/undefined-acronym.yaml +14 -1
  217. package/rules/unqualified-superlative.yaml +1 -1
  218. package/src/address-chain.ts +5 -2
  219. package/src/cli-text.ts +19 -3
  220. package/src/cli.ts +22 -19
  221. package/src/commands/eval.ts +26 -5
  222. package/src/commands/feedback.ts +2 -1
  223. package/src/commands/test.ts +3 -2
  224. package/src/commands/tree.ts +2 -1
  225. package/src/detectors/acronym-compound.ts +9 -0
  226. package/src/detectors/acronym-context.ts +22 -1
  227. package/src/detectors/acronym-expansion.ts +72 -5
  228. package/src/detectors/char-shape.ts +42 -14
  229. package/src/detectors/citation-key.ts +13 -0
  230. package/src/detectors/cited-name.ts +23 -0
  231. package/src/detectors/concrete-evidence.ts +31 -0
  232. package/src/detectors/counter-edge.ts +29 -0
  233. package/src/detectors/dotted-name.ts +14 -0
  234. package/src/detectors/doubled-word.ts +25 -2
  235. package/src/detectors/en-shape.ts +17 -30
  236. package/src/detectors/gram-place.ts +8 -1
  237. package/src/detectors/gram-predicate.ts +55 -0
  238. package/src/detectors/heading-case.ts +41 -0
  239. package/src/detectors/heading-echo.ts +5 -1
  240. package/src/detectors/lexicon.ts +8 -5
  241. package/src/detectors/name-numeral.ts +37 -0
  242. package/src/detectors/name-part.ts +24 -0
  243. package/src/detectors/name-run.ts +16 -0
  244. package/src/detectors/orthography.ts +17 -8
  245. package/src/detectors/placeholder.ts +38 -0
  246. package/src/detectors/quoted-variant.ts +20 -0
  247. package/src/detectors/series-label.ts +33 -0
  248. package/src/detectors/signals.ts +35 -30
  249. package/src/detectors/structure-tree.ts +2 -2
  250. package/src/detectors/superlative-name.ts +30 -0
  251. package/src/detectors/token-shape.ts +12 -3
  252. package/src/document.ts +12 -5
  253. package/src/genre-check.ts +46 -0
  254. package/src/genre.ts +34 -5
  255. package/src/init.ts +0 -13
  256. package/src/joined-view.ts +96 -0
  257. package/src/line-continues.ts +43 -0
  258. package/src/measure.ts +9 -1
  259. package/src/number-name.ts +35 -13
  260. package/src/orthography.ts +15 -9
  261. package/src/plain-source.ts +5 -0
  262. package/src/plugin.ts +21 -2
  263. package/src/quoted-span.ts +25 -0
  264. package/src/render/eval.ts +101 -38
  265. package/src/resolve-genre.ts +20 -0
  266. package/src/soft-break.ts +94 -0
  267. package/src/structure/build.ts +19 -10
  268. package/src/structure/date-order.ts +16 -1
  269. package/src/structure/issues.ts +18 -3
  270. package/src/structure/listed-tags.ts +7 -0
  271. package/src/structure/number-in-sentence.ts +20 -0
  272. package/src/structure/unit-word.ts +11 -0
  273. package/src/structure/wrapped-tail.ts +22 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/commands/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../src/commands/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** - で繋いだ略語(RT-PCR)の部品。繋いでいなければ、その語だけ。 */
2
+ export declare const partsOf: (acronym: string) => string[];
3
+ /**
4
+ * 略語が説明済みか。- で繋いだ語は、繋いだ形のまま説明されているか、部品がどれも説明済みなら説明済み。
5
+ * US-EU は US も EU も通じるので指摘しない。RT-PCR は RT がどこにも説明されていないので、繋いだ形で指摘する。
6
+ */
7
+ export declare const isExplained: (acronym: string, explainedAlone: (word: string) => boolean) => boolean;
8
+ //# sourceMappingURL=acronym-compound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acronym-compound.d.ts","sourceRoot":"","sources":["../../src/detectors/acronym-compound.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,eAAO,MAAM,OAAO,GAAI,SAAS,MAAM,KAAG,MAAM,EAAwB,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,gBAAgB,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KAAG,OACtB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** - で繋いだ略語(RT-PCR)の部品。繋いでいなければ、その語だけ。 */
2
+ export const partsOf = (acronym) => acronym.split("-");
3
+ /**
4
+ * 略語が説明済みか。- で繋いだ語は、繋いだ形のまま説明されているか、部品がどれも説明済みなら説明済み。
5
+ * US-EU は US も EU も通じるので指摘しない。RT-PCR は RT がどこにも説明されていないので、繋いだ形で指摘する。
6
+ */
7
+ export const isExplained = (acronym, explainedAlone) => explainedAlone(acronym) || partsOf(acronym).every(explainedAlone);
8
+ //# sourceMappingURL=acronym-compound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acronym-compound.js","sourceRoot":"","sources":["../../src/detectors/acronym-compound.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAe,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,cAAyC,EAAW,EAAE,CACjG,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC"}
@@ -16,6 +16,10 @@ export type NotationWords = {
16
16
  readonly emphasis: readonly string[];
17
17
  /** 番号を後ろに書く、文書の区切りの名前(Part、Section、Title)。 */
18
18
  readonly divisions: readonly string[];
19
+ /** 速記録が大文字で書く発言者の姓の前に置く敬称(Mr.、Mrs.、Madam)。 */
20
+ readonly honorifics: readonly string[];
21
+ /** 日付・時刻の数字の後ろに書く単位(年、月、日、時、分)。その前の同じ大文字の繰り返し(YY年)は書式の置き場所。 */
22
+ readonly dateTimeUnits: readonly string[];
19
23
  };
20
24
  export type NotAcronymSpans = (text: string) => Span[];
21
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"acronym-context.d.ts","sourceRoot":"","sources":["../../src/detectors/acronym-context.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,CAAC;AA8BF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,aAAa,KAAG,eAGxD,CAAC"}
1
+ {"version":3,"file":"acronym-context.d.ts","sourceRoot":"","sources":["../../src/detectors/acronym-context.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,+DAA+D;AAC/D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C,CAAC;AAkCF,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;AAEvD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,aAAa,KAAG,eAWxD,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { escapeRegExp } from "../orthography.js";
2
2
  import { ROMAN_NUMERAL } from "./roman-numeral.js";
3
+ import { citationKeySpans } from "./citation-key.js";
4
+ import { dottedNameSpans } from "./dotted-name.js";
5
+ import { loneNumeralSpans, nameNumeralSpans } from "./name-numeral.js";
6
+ import { placeholderSpans } from "./placeholder.js";
7
+ import { seriesLabelSpans } from "./series-label.js";
3
8
  // 空の語彙表は「その書き方が無い」。空の選択肢 (?:) は至る所で空文字に当たるので、何にも当たらない形にする。
4
9
  const oneOf = (words) => (words.length === 0 ? "(?!)" : `(?:${words.map(escapeRegExp).join("|")})`);
5
10
  const MINUTES = String.raw `:[0-5]\d`;
@@ -14,6 +19,8 @@ const AMOUNT = String.raw `(?:\d{1,3}(?:,\d{3})+|\d+)(?:\.\d+)?`;
14
19
  * CD や CI のようにローマ数字としても読める略語は、この位置でなければ略語のまま数える。
15
20
  */
16
21
  const divisionOf = (words) => oneOf(words.flatMap((word) => [word, word.toUpperCase()]));
22
+ /** 敬称のすぐ後ろの大文字の姓(Mr. HAWLEY、Dr. O'NEIL)。速記録は発言者をこう書き、略語ではない。 */
23
+ const SURNAME_IN_CAPITALS = String.raw `[A-Z]+(?:['’-][A-Z]+)*(?![\p{L}\p{N}_])`;
17
24
  // 強調の記号は空白に置き換えてある(**3:30** PM)ので、部品の間の空白は数を問わない。
18
25
  const patternsOf = (words) => [
19
26
  new RegExp(String.raw `${CLOCK_12}\s*${oneOf(words.meridiem)}`, "gu"),
@@ -23,6 +30,7 @@ const patternsOf = (words) => [
23
30
  new RegExp(String.raw `,\s+${oneOf(words.usStates)}\s+\d{5}(?:-\d{4})?(?!\d)`, "gu"),
24
31
  new RegExp(oneOf(words.emphasis), "gu"),
25
32
  new RegExp(String.raw `(?<![\p{L}\p{N}_])${divisionOf(words.divisions)}\s+${ROMAN_NUMERAL}(?![\p{L}\p{N}_&])`, "gu"),
33
+ new RegExp(String.raw `(?<![\p{L}\p{N}_])${oneOf(words.honorifics)}\s+${SURNAME_IN_CAPITALS}`, "gu"),
26
34
  ];
27
35
  /**
28
36
  * 文の中で、略語として数えない大文字を含む範囲。語彙表から一度だけ組み立てて、文ごとに呼ぶ。
@@ -30,6 +38,14 @@ const patternsOf = (words) => [
30
38
  */
31
39
  export const notAcronymSpansOf = (words) => {
32
40
  const patterns = patternsOf(words);
33
- return (text) => patterns.flatMap((pattern) => [...text.matchAll(pattern)].map((match) => ({ start: match.index, end: match.index + match[0].length })));
41
+ return (text) => [
42
+ ...patterns.flatMap((pattern) => [...text.matchAll(pattern)].map((match) => ({ start: match.index, end: match.index + match[0].length }))),
43
+ ...citationKeySpans(text),
44
+ ...dottedNameSpans(text),
45
+ ...nameNumeralSpans(text),
46
+ ...loneNumeralSpans(text),
47
+ ...seriesLabelSpans(text),
48
+ ...placeholderSpans(text, words.dateTimeUnits),
49
+ ];
34
50
  };
35
51
  //# sourceMappingURL=acronym-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acronym-context.js","sourceRoot":"","sources":["../../src/detectors/acronym-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAqBnD,2DAA2D;AAC3D,MAAM,KAAK,GAAG,CAAC,KAAwB,EAAU,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE/H,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA,UAAU,CAAC;AACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA,mCAAmC,OAAO,IAAI,CAAC;AAC1E,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA,gCAAgC,OAAO,EAAE,CAAC;AACrE,6CAA6C;AAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA,kBAAkB,CAAC;AAClD,2DAA2D;AAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,sCAAsC,CAAC;AAEhE;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AAEpH,kDAAkD;AAClD,MAAM,UAAU,GAAG,CAAC,KAAoB,EAAqB,EAAE,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,GAAG,QAAQ,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IACpE,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,MAAM,QAAQ,IAAI,QAAQ,MAAM,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC;IACvG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,MAAM,EAAE,EAAE,IAAI,CAAC;IAC3E,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,cAAc,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC;IAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,IAAI,CAAC;IACnF,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACvC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,qBAAqB,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,aAAa,oBAAoB,EAAE,IAAI,CAAC;CACpH,CAAC;AAIF;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAoB,EAAmB,EAAE;IACzE,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3J,CAAC,CAAC"}
1
+ {"version":3,"file":"acronym-context.js","sourceRoot":"","sources":["../../src/detectors/acronym-context.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,18 @@
1
+ /**
2
+ * 括弧の中で略語と組になる名前の頭文字が、略語とちょうど揃うか。大文字で始まる語だけの頭文字(Data Retention and Reuse Act)か、
3
+ * すべての語の頭文字(single nucleotide polymorphism)で比べる。後者は大文字小文字を問わない。
4
+ */
5
+ export declare const namesAcronym: (name: string, acronym: string) => boolean;
1
6
  /** 言語パッケージの語彙表から読む、括弧の中で略語の前に書く語(以下、hereinafter)と後ろに書く語(という)。 */
2
7
  export type DefinitionWords = {
3
8
  readonly markers: readonly string[];
4
9
  readonly verbs: readonly string[];
5
10
  };
11
+ /**
12
+ * 略語の文字が、名前のどれかの語の頭から始まって、名前の文字の中に順に拾えるか。1 つの略語を空白で分けて書くときは、
13
+ * 語の頭文字ではなく語の途中の文字も使う(overnight reverse repurchase agreement → ON RRP)。見る語は略語の文字数の 2 倍まで。
14
+ */
15
+ export declare const abbreviates: (name: string, acronym: string) => boolean;
6
16
  export type ExpandedAt = (body: string, acronym: string, at: number) => boolean;
7
17
  /** body の at にある略語が、その場で展開・定義されているか。語彙表から一度だけ組み立てて、略語ごとに呼ぶ。 */
8
18
  export declare const expansionAt: (words: DefinitionWords) => ExpandedAt;
@@ -1 +1 @@
1
- {"version":3,"file":"acronym-expansion.d.ts","sourceRoot":"","sources":["../../src/detectors/acronym-expansion.ts"],"names":[],"mappings":"AAuEA,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AA8BzG,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAEhF,+DAA+D;AAC/D,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe,KAAG,UAGpD,CAAC"}
1
+ {"version":3,"file":"acronym-expansion.d.ts","sourceRoot":"","sources":["../../src/detectors/acronym-expansion.ts"],"names":[],"mappings":"AA4DA;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,OAK5D,CAAC;AAwBF,iEAAiE;AACjE,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC;AAgCzG;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,OAI3D,CAAC;AAmCF,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAEhF,+DAA+D;AAC/D,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe,KAAG,UAGpD,CAAC"}
@@ -8,7 +8,9 @@ import { escapeRegExp } from "../orthography.js";
8
8
  * Continuous Integration (CI) 括弧の中が略語
9
9
  * Tax Cuts and Jobs Act [TCJA] 角括弧の中が略語で、直前の語の頭文字と揃う
10
10
  * Relief Act (RA; P.L. 112-240) 括弧の最初の項目が略語で、直前の語か区切りの後の語の頭文字と揃う
11
+ * (single nucleotide polymorphism:SNP) 括弧の最後の項目が略語で、コロンの前の語の頭文字と揃う
11
12
  * 人事部(以下「HR」という。) 括弧の中が定義の語と略語だけ
13
+ * overnight reverse repurchase agreement (ON RRP) 括弧の中が空白で繋いだ略語だけで、前の名前から文字が順に拾える
12
14
  * 括弧と略語の間には、引用符((“MNDA”)、(「MNDA」))と空白だけを許す。
13
15
  */
14
16
  const WRAP = String.raw `[\s"“”'‘’「」『』]*`;
@@ -19,7 +21,9 @@ const SQUARE_CLOSES = new RegExp(String.raw `^${WRAP}\]`, "u");
19
21
  const SQUARE_OPENED = new RegExp(String.raw `\[${WRAP}$`, "u");
20
22
  const ANY_OPENED = new RegExp(String.raw `[(([]${WRAP}$`, "u");
21
23
  /** 括弧の最初の項目のあとの区切りと、括弧が閉じるまでの残り((ARRA; P.L. 111-5)、(OP、Originator Profile))。 */
22
- const SEPARATED = new RegExp(String.raw `^${WRAP}[;;,,、](?<rest>[^()()]*)`, "u");
24
+ const SEPARATED = new RegExp(String.raw `^${WRAP}[;;,,、::](?<rest>[^()()]*)`, "u");
25
+ /** 括弧の中の名前とコロンのあと、略語の直前まで((single nucleotide polymorphism:SNP))。名前に区切りがあれば列挙なので外す。 */
26
+ const NAMED_BEFORE = new RegExp(String.raw `[((](?<name>[^()();;,,、::]*)[::]${WRAP}$`, "u");
23
27
  const QUOTES = /["“”'‘’「」『』]/gu;
24
28
  /** 括弧と略語の間の幅。空白は 1 つに畳んであるので、(“ MNDA ”) まで収まる。 */
25
29
  const NEAR = 3;
@@ -31,7 +35,7 @@ const MARKER_GAP = String.raw `(?![A-Za-z])[\s、,]*`;
31
35
  * 角括弧は引用の印にも使う([IANA]、[1])。直前の語のうち大文字で始まる語の頭文字が
32
36
  * 略語と揃うときだけ展開と見なす。見る語は略語の文字数の 2 倍まで(and や of を挟むため)。
33
37
  */
34
- const lettersOf = (acronym) => acronym.replaceAll("&", "");
38
+ const lettersOf = (acronym) => acronym.replaceAll(/[&-]/gu, "");
35
39
  const initialsOf = (words) => words
36
40
  .filter((word) => /^[A-Z]/u.test(word))
37
41
  .map((word) => word.charAt(0))
@@ -45,6 +49,16 @@ const spellsOut = (before, acronym) => {
45
49
  .slice(-letters.length * 2);
46
50
  return initialsOf(words).endsWith(letters);
47
51
  };
52
+ /**
53
+ * 括弧の中で略語と組になる名前の頭文字が、略語とちょうど揃うか。大文字で始まる語だけの頭文字(Data Retention and Reuse Act)か、
54
+ * すべての語の頭文字(single nucleotide polymorphism)で比べる。後者は大文字小文字を問わない。
55
+ */
56
+ export const namesAcronym = (name, acronym) => {
57
+ const words = name.replace(QUOTES, " ").trim().split(/\s+/u);
58
+ const letters = lettersOf(acronym);
59
+ const allInitials = words.map((word) => word.charAt(0)).join("");
60
+ return initialsOf(words) === letters || allInitials.toUpperCase() === letters.toUpperCase();
61
+ };
48
62
  /**
49
63
  * 括弧の最初の項目が略語で、区切りのあとに注記が続く形((ARRA; P.L. 111-5)、(OP、Originator Profile))。
50
64
  * 同じ形で列挙も書く((MR, handbook, etc.)、(EPA, FDIC, GSA))ので、直前の語か、区切りから括弧が閉じるまでの語の
@@ -59,7 +73,14 @@ const isSeparatedAt = (body, acronym, at) => {
59
73
  const rest = separated.groups?.["rest"] ?? "";
60
74
  const end = at + acronym.length + separated[0].length;
61
75
  const closed = CLOSES.test(body.slice(end, end + NEAR));
62
- return spellsOut(body.slice(0, at), acronym) || (closed && initialsOf(rest.replace(QUOTES, " ").trim().split(/\s+/u)) === lettersOf(acronym));
76
+ return spellsOut(body.slice(0, at), acronym) || (closed && namesAcronym(rest, acronym));
77
+ };
78
+ /** 括弧の最後の項目が略語で、コロンの前に名前を書く形((Information-technology Promotion Agency:IPA))。 */
79
+ const isNamedBeforeAt = (body, acronym, at) => {
80
+ const named = NAMED_BEFORE.exec(body.slice(Math.max(0, at - DEFINITION_REACH), at));
81
+ if (named === null || !CLOSES.test(body.slice(at + acronym.length, at + acronym.length + NEAR)))
82
+ return false;
83
+ return namesAcronym(named.groups?.["name"] ?? "", acronym);
63
84
  };
64
85
  const oneOf = (words) => (words.length === 0 ? "(?!)" : words.map(escapeRegExp).join("|"));
65
86
  const definitionPatterns = (words) => ({
@@ -77,6 +98,36 @@ const isDefinedAt = (patterns, body, acronym, at) => {
77
98
  return false;
78
99
  return (opened.groups?.["markers"] ?? "") !== "" || (closes.groups?.["verb"] ?? "") !== "";
79
100
  };
101
+ /** 空白 1 つで繋いだ略語の並びのうち、at の略語の前と後ろに続く分((ON RRP) の ON の後ろの " RRP")。 */
102
+ const CAPITALS = "[A-Z][A-Z&-]*[A-Z]";
103
+ const JOINT_BEFORE = new RegExp(String.raw `(?:(?<![A-Za-z0-9_&-])${CAPITALS} )+$`, "u");
104
+ const JOINT_AFTER = new RegExp(String.raw `^(?: ${CAPITALS}(?![A-Za-z0-9_&-]))+`, "u");
105
+ const LOWER_WORDS = /[a-z]+/gu;
106
+ const isSubsequence = (letters, text) => [...text].reduce((matched, char) => (char === letters.charAt(matched) ? matched + 1 : matched), 0) === letters.length;
107
+ /**
108
+ * 略語の文字が、名前のどれかの語の頭から始まって、名前の文字の中に順に拾えるか。1 つの略語を空白で分けて書くときは、
109
+ * 語の頭文字ではなく語の途中の文字も使う(overnight reverse repurchase agreement → ON RRP)。見る語は略語の文字数の 2 倍まで。
110
+ */
111
+ export const abbreviates = (name, acronym) => {
112
+ const letters = acronym.toLowerCase().replaceAll(/[^a-z]/gu, "");
113
+ const words = (name.toLowerCase().match(LOWER_WORDS) ?? []).slice(-letters.length * 2);
114
+ return letters !== "" && words.some((word, index) => word.startsWith(letters.charAt(0)) && isSubsequence(letters, words.slice(index).join("")));
115
+ };
116
+ /**
117
+ * 括弧の中身が、空白で繋いだ略語の並びだけの形((ON RRP))。1 つの略語を 2 語以上で書いたもの。並びの文字が括弧の前の名前から
118
+ * 順に拾えるときだけ展開と見なす。拾えなければ、空白で並べた略語の列挙((SEC FINRA))。
119
+ * 括弧の外の並び(AWS KMS (Key Management Service))は、括弧の直前の語だけが展開されるので、ここでは見ない。
120
+ */
121
+ const isJointBracketedAt = (body, acronym, at) => {
122
+ const end = at + acronym.length;
123
+ const before = JOINT_BEFORE.exec(body.slice(Math.max(0, at - DEFINITION_REACH), at))?.[0] ?? "";
124
+ const after = JOINT_AFTER.exec(body.slice(end, end + DEFINITION_REACH))?.[0] ?? "";
125
+ const start = at - before.length;
126
+ const close = end + after.length;
127
+ if (!OPENED.test(body.slice(Math.max(0, start - NEAR), start)) || !CLOSES.test(body.slice(close, close + NEAR)))
128
+ return false;
129
+ return abbreviates(body.slice(0, start), body.slice(start, close));
130
+ };
80
131
  const isBracketedAt = (body, acronym, at) => {
81
132
  const after = body.slice(at + acronym.length, at + acronym.length + NEAR);
82
133
  const before = body.slice(Math.max(0, at - NEAR), at);
@@ -84,11 +135,18 @@ const isBracketedAt = (body, acronym, at) => {
84
135
  return true;
85
136
  if (SQUARE_OPENED.test(before) && SQUARE_CLOSES.test(after) && spellsOut(body.slice(0, at), acronym))
86
137
  return true;
87
- return isSeparatedAt(body, acronym, at);
138
+ return isSeparatedAt(body, acronym, at) || isNamedBeforeAt(body, acronym, at) || isJointBracketedAt(body, acronym, at);
88
139
  };
140
+ /**
141
+ * 記号を = で定義する書き方(where N = number of cases, EH = total hours worked)。定義は記号の後ろの語。
142
+ * 値(EH = 2,000)、比べる・矢印(==、=>)、別の略語だけ(EH = SRE)は定義ではない。定義の語は小文字か、大小の無い文字を含む。
143
+ * 語の値(SRE = enabled)は 1 語の定義と見分けられないので、定義と読む。値を入れる大文字の名前は設定の名前で、展開するものが無い。
144
+ */
145
+ const EQUALS_DEFINITION = /^\s*[==]\s*(?=\p{L})\S*?[\p{Ll}\p{Lo}]/u;
146
+ const isEqualsDefinedAt = (body, acronym, at) => EQUALS_DEFINITION.test(body.slice(at + acronym.length, at + acronym.length + DEFINITION_REACH));
89
147
  /** body の at にある略語が、その場で展開・定義されているか。語彙表から一度だけ組み立てて、略語ごとに呼ぶ。 */
90
148
  export const expansionAt = (words) => {
91
149
  const patterns = definitionPatterns(words);
92
- return (body, acronym, at) => isBracketedAt(body, acronym, at) || isDefinedAt(patterns, body, acronym, at);
150
+ return (body, acronym, at) => isBracketedAt(body, acronym, at) || isDefinedAt(patterns, body, acronym, at) || isEqualsDefinedAt(body, acronym, at);
93
151
  };
94
152
  //# sourceMappingURL=acronym-expansion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"acronym-expansion.js","sourceRoot":"","sources":["../../src/detectors/acronym-expansion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acronym-expansion.js","sourceRoot":"","sources":["../../src/detectors/acronym-expansion.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"char-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/char-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsC,MAAM,cAAc,CAAC;AA6BjF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,QAatB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,QAWjB,CAAC"}
1
+ {"version":3,"file":"char-shape.d.ts","sourceRoot":"","sources":["../../src/detectors/char-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAmD,MAAM,cAAc,CAAC;AAyD9F;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,QAatB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,QAWjB,CAAC"}
@@ -1,26 +1,48 @@
1
- import { compacted, placeOf } from "./gram-place.js";
1
+ import { compacted } from "./gram-place.js";
2
+ import { leadingCounter } from "./counter-edge.js";
2
3
  import { maskAddresses } from "../address-chain.js";
3
4
  import { isAddressRun } from "./place-run.js";
5
+ import { isOneName } from "./name-run.js";
4
6
  import { proseText } from "../measure.js";
5
7
  import { parallelDotCount } from "./middle-dot.js";
6
8
  /**
7
- * 文字の並びを見る検出。漢字の連なりが住所かどうかだけは、形態素解析の地名と数で決める。
9
+ * 文字の並びを見る検出。漢字の連なりが住所か名前かだけは、形態素解析の固有名詞と数で決める。
8
10
  * 覆った箇所は空白になっているので、proseText で潰してから数える。
9
11
  */
10
12
  const KANJI_RUN = /[一-鿿]+/gu;
11
- /** 漢字の連なりが住所か(東京都港区新橋二丁目)。形態素解析の地名と数で決める。品詞が無ければ判定しない。 */
12
- const isPlaceName = (sentence, run, topUnits) => {
13
- const tokens = sentence.tokens;
14
- const place = tokens === undefined ? undefined : placeOf(compacted(sentence.text, "word"), run);
15
- if (tokens === undefined || place === undefined)
16
- return false;
17
- const [start, end] = [sentence.span.start + place.start, sentence.span.start + place.end];
18
- const covering = tokens.flatMap((token, index) => (token.span.start < end && start < token.span.end ? [index] : []));
19
- return isAddressRun(tokens, covering, topUnits);
13
+ const SPACE = /\s/gu;
14
+ /**
15
+ * 同じ連なりが文に二度出ても、それぞれの位置で読む。proseText は空白を詰めたり除いたりするだけなので、
16
+ * 空白でない k 文字目は元の文でも空白でない k 文字目。番地の覆いは長さを保つので、proseText の位置がそのまま使える。
17
+ */
18
+ const runsOf = (sentence, profile) => {
19
+ const prose = proseText(sentence);
20
+ const printed = compacted(sentence.text, "char").offsets;
21
+ return [...maskAddresses(prose, profile).matchAll(KANJI_RUN)].map((match) => {
22
+ const before = prose.slice(0, match.index).replace(SPACE, "").length;
23
+ const [start, last] = [printed[before], printed[before + match[0].length - 1]];
24
+ const span = start === undefined || last === undefined ? undefined : { start: sentence.span.start + start, end: sentence.span.start + last + 1 };
25
+ return { text: match[0], span };
26
+ });
27
+ };
28
+ /** 漢字の連なりが住所(東京都港区新橋二丁目)か 1 つの名前(日本銀行)か。形態素解析の地名・人名・組織名と数で決める。 */
29
+ const isPlaceName = (tokens, span, topUnits) => {
30
+ const covering = tokens.flatMap((token, index) => (token.span.start < span.end && span.start < token.span.end ? [index] : []));
31
+ return isAddressRun(tokens, covering, topUnits) || isOneName(tokens, covering);
32
+ };
33
+ /**
34
+ * 数えない連なりは空。頭の、数に付いた助数詞(2日日本弁護士連合会の「日」)は数えない。
35
+ * 住所か名前かは、助数詞を外した残りで決める(1日日本銀行の「日本銀行」)。品詞が無ければ判定しない。
36
+ */
37
+ const measuredRun = (tokens, run, topUnits) => {
38
+ if (tokens === undefined || run.span === undefined)
39
+ return run.text;
40
+ const counter = leadingCounter(tokens, run.span.start, run.text);
41
+ const rest = counter === undefined ? run.span : { start: counter.span.end, end: run.span.end };
42
+ return isPlaceName(tokens, rest, topUnits) ? "" : run.text.slice(counter?.surface.length ?? 0);
20
43
  };
21
- const longestKanji = (sentence, profile, topUnits) => [...maskAddresses(proseText(sentence), profile).matchAll(KANJI_RUN)]
22
- .map((match) => match[0])
23
- .filter((run) => !isPlaceName(sentence, run, topUnits))
44
+ const longestKanji = (sentence, profile, topUnits) => runsOf(sentence, profile)
45
+ .map((run) => measuredRun(sentence.tokens, run, topUnits))
24
46
  .reduce((longest, run) => (run.length > longest.length ? run : longest), "");
25
47
  /**
26
48
  * 漢字が続くと、どこで語が切れるのか読み手が探すことになる。
@@ -1 +1 @@
1
- {"version":3,"file":"char-shape.js","sourceRoot":"","sources":["../../src/detectors/char-shape.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"char-shape.js","sourceRoot":"","sources":["../../src/detectors/char-shape.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * 仕様書が参考文献を指す角括弧の見出し語([RFC9110]、[HPACK]、[SECURING-WEB])。中身は文献一覧の見出しで、読み手はそこへ
3
+ * 飛ぶので、略語として展開を求めない。空白を含まない 1 語だけを見る。Markdown のリンク([DRI](/url)、[DRI][ref])と
4
+ * 参照の定義([DRI]: /url)は括弧の後ろの記号で外し、その中の語は略語のまま数える。
5
+ */
6
+ type Span = {
7
+ readonly start: number;
8
+ readonly end: number;
9
+ };
10
+ /** 文の中の、参考文献の見出し語の範囲(括弧を含む)。 */
11
+ export declare const citationKeySpans: (text: string) => Span[];
12
+ export {};
13
+ //# sourceMappingURL=citation-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-key.d.ts","sourceRoot":"","sources":["../../src/detectors/citation-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAI7D,gCAAgC;AAChC,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAI,EAC2D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 仕様書が参考文献を指す角括弧の見出し語([RFC9110]、[HPACK]、[SECURING-WEB])。中身は文献一覧の見出しで、読み手はそこへ
3
+ * 飛ぶので、略語として展開を求めない。空白を含まない 1 語だけを見る。Markdown のリンク([DRI](/url)、[DRI][ref])と
4
+ * 参照の定義([DRI]: /url)は括弧の後ろの記号で外し、その中の語は略語のまま数える。
5
+ */
6
+ const CITATION_KEY = /(?<![\p{L}\p{N}_!\]])\[[A-Za-z][A-Za-z0-9.-]*[A-Za-z0-9]\](?![([:])/gu;
7
+ /** 文の中の、参考文献の見出し語の範囲(括弧を含む)。 */
8
+ export const citationKeySpans = (text) => [...text.matchAll(CITATION_KEY)].map((match) => ({ start: match.index, end: match.index + match[0].length }));
9
+ //# sourceMappingURL=citation-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citation-key.js","sourceRoot":"","sources":["../../src/detectors/citation-key.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,YAAY,GAAG,uEAAuE,CAAC;AAE7F,gCAAgC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAU,EAAE,CACvD,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { StructureNode, Token } from "../plugin.ts";
2
+ /** 他の文書を指す参照(民法第709条の第709条)の始まりの位置から、その文書の名前(民法)へ。 */
3
+ export type CitedNames = ReadonlyMap<number, string>;
4
+ export declare const citedNamesOf: (structure: StructureNode | undefined) => CitedNames;
5
+ /**
6
+ * 重なった二語が、番地のすぐ前に書いた文書の名前の全部で、頭の一字と種類の一字か。通達の「法法第64条」は法人税法の略で、
7
+ * 略した頭(法)と種類の語(法)がたまたま同じ字になる。名前の一部だけの重なり(就業規則規則第3条)や、種類の語でない語の
8
+ * 重なり(民法民法第709条)は書き損じのまま。
9
+ */
10
+ export declare const endsCitedName: (first: Token, second: Token, cited: CitedNames, kinds: ReadonlySet<string>) => boolean;
11
+ //# sourceMappingURL=cited-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cited-name.d.ts","sourceRoot":"","sources":["../../src/detectors/cited-name.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAEzD,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAQrD,eAAO,MAAM,YAAY,GAAI,WAAW,aAAa,GAAG,SAAS,KAAG,UAAgF,CAAC;AAKrJ;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,QAAQ,KAAK,EAAE,OAAO,UAAU,EAAE,OAAO,WAAW,CAAC,MAAM,CAAC,KAAG,OACgD,CAAC"}
@@ -0,0 +1,15 @@
1
+ const namedReferences = (node) => {
2
+ const document = node.attrs["document"];
3
+ const own = node.kind === "reference" && typeof document === "string" ? [[node.span.start, document]] : [];
4
+ return [...own, ...node.children.flatMap(namedReferences)];
5
+ };
6
+ export const citedNamesOf = (structure) => new Map(structure === undefined ? [] : namedReferences(structure));
7
+ /** 略した名前は、頭の一字と種類の一字(所法・法法・措令)。二字の種類の語の重なり(規則規則)は略さない書き方。 */
8
+ const ABBREVIATED_KIND_LENGTH = 1;
9
+ /**
10
+ * 重なった二語が、番地のすぐ前に書いた文書の名前の全部で、頭の一字と種類の一字か。通達の「法法第64条」は法人税法の略で、
11
+ * 略した頭(法)と種類の語(法)がたまたま同じ字になる。名前の一部だけの重なり(就業規則規則第3条)や、種類の語でない語の
12
+ * 重なり(民法民法第709条)は書き損じのまま。
13
+ */
14
+ export const endsCitedName = (first, second, cited, kinds) => kinds.has(second.surface) && [...second.surface].length === ABBREVIATED_KIND_LENGTH && cited.get(second.span.end) === `${first.surface}${second.surface}`;
15
+ //# sourceMappingURL=cited-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cited-name.js","sourceRoot":"","sources":["../../src/detectors/cited-name.ts"],"names":[],"mappings":"AAKA,MAAM,eAAe,GAAG,CAAC,IAAmB,EAAiC,EAAE;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,GAAG,GAAkC,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1I,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoC,EAAc,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;AAErJ,6DAA6D;AAC7D,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,MAAa,EAAE,KAAiB,EAAE,KAA0B,EAAW,EAAE,CACnH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,uBAAuB,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Span, StructureNode, Token } from "../plugin.ts";
2
+ /** 品詞が無ければ何も言わない。数字そのものは呼ぶ側が文字で見る。 */
3
+ export declare const hasNumeral: (tokens: readonly Token[]) => boolean;
4
+ /** 節の中で始まるものがある。節は見出しの直後から次の見出しの前まで。 */
5
+ export declare const startsWithin: (section: Span, spans: readonly Span[]) => boolean;
6
+ export declare const evidenceSpans: (node: StructureNode | undefined) => Span[];
7
+ //# sourceMappingURL=concrete-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concrete-evidence.d.ts","sourceRoot":"","sources":["../../src/detectors/concrete-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAiB,aAAa,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAoB9E,sCAAsC;AACtC,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,KAAK,EAAE,KAAG,OAA0F,CAAC;AAEjJ,wCAAwC;AACxC,eAAO,MAAM,YAAY,GAAI,SAAS,IAAI,EAAE,OAAO,SAAS,IAAI,EAAE,KAAG,OAAwF,CAAC;AAK9J,eAAO,MAAM,aAAa,GAAI,MAAM,aAAa,GAAG,SAAS,KAAG,IAAI,EACoE,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * 形態素解析が数と読んだ語(UD の NumType=Card)。漢数字の「二割」「十五分」も、算用数字と同じ具体的な数。
3
+ * 言い回しの「二人三脚」「一人ひとり」は、辞書が一語として持つので数にならない。
4
+ */
5
+ const isCardinal = (token) => token.features?.["NumType"] === "Card";
6
+ const HYPHEN = /^[-‐‑]$/u;
7
+ /** ハイフンで前の語に続く数(one-on-one の後ろの one)は、合成語の部品。 */
8
+ const isCompoundPart = (token, previous) => previous !== undefined && previous.span.end === token.span.start && HYPHEN.test(previous.surface);
9
+ /** 数の語(UPOS の NUM)が、すぐ後ろの複数形の名詞を数えている(five minutes)。one of や two-way は量ではない。 */
10
+ const countsPlural = (tokens, index) => {
11
+ const token = tokens[index];
12
+ return token?.pos === "NUM" && tokens[index + 1]?.features?.["Number"] === "Plur" && !isCompoundPart(token, tokens[index - 1]);
13
+ };
14
+ /** 品詞が無ければ何も言わない。数字そのものは呼ぶ側が文字で見る。 */
15
+ export const hasNumeral = (tokens) => tokens.some((token, index) => isCardinal(token) || countsPlural(tokens, index));
16
+ /** 節の中で始まるものがある。節は見出しの直後から次の見出しの前まで。 */
17
+ export const startsWithin = (section, spans) => spans.some((span) => span.start >= section.start && span.start < section.end);
18
+ /** 構造の木が読んだ参照(第3条・Section VI)・数量・日付。どれも読み手が確かめに行ける具体物。 */
19
+ const EVIDENCE = new Set(["reference", "quantity", "date"]);
20
+ export const evidenceSpans = (node) => node === undefined ? [] : [...(EVIDENCE.has(node.kind) ? [node.span] : []), ...node.children.flatMap((child) => evidenceSpans(child))];
21
+ //# sourceMappingURL=concrete-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concrete-evidence.js","sourceRoot":"","sources":["../../src/detectors/concrete-evidence.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC,KAAY,EAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;AAErF,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,iDAAiD;AACjD,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,QAA2B,EAAW,EAAE,CAC5E,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAEpG,gFAAgF;AAChF,MAAM,YAAY,GAAG,CAAC,MAAwB,EAAE,KAAa,EAAW,EAAE;IACxE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,KAAK,EAAE,GAAG,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACjI,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAEjJ,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAa,EAAE,KAAsB,EAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9J,0DAA0D;AAC1D,MAAM,QAAQ,GAA+B,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAExF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAA+B,EAAU,EAAE,CACvE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Token } from "../plugin.ts";
2
+ /**
3
+ * 漢字の連なり run(文書全体の座標で start から始まる)の頭が、直前の数に付いた助数詞(2日、第76回、24時間)なら、その助数詞の語。
4
+ * 数字が区切りを見せるので、助数詞は数と読まれ、後ろの複合語の一部ではない。そうでなければ undefined。
5
+ * 折り返しをまたぐ語(年\n度)は span が surface より長いので、連なりの残りは span の終わりから始まる。
6
+ */
7
+ export declare const leadingCounter: (tokens: readonly Token[], start: number, run: string) => Token | undefined;
8
+ //# sourceMappingURL=counter-edge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counter-edge.d.ts","sourceRoot":"","sources":["../../src/detectors/counter-edge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAkB1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,KAAK,EAAE,EAAE,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,KAAK,GAAG,SAK7F,CAAC"}
@@ -0,0 +1,27 @@
1
+ const BLANK = /^\s+$/u;
2
+ const isNumber = (token) => token?.features?.["NumType"] === "Card";
3
+ const isCounter = (token) => token?.features?.["NounType"] === "Class";
4
+ const touches = (left, right) => left.span.end === right.span.start;
5
+ /** at の語のすぐ前の語。空白一つを挟んでもよい(「2 日」)。 */
6
+ const wordBefore = (tokens, at) => {
7
+ const [previous, token] = [tokens[at - 1], tokens[at]];
8
+ if (previous === undefined || token === undefined || !touches(previous, token))
9
+ return undefined;
10
+ if (!BLANK.test(previous.surface))
11
+ return previous;
12
+ const beyond = tokens[at - 2];
13
+ return beyond !== undefined && touches(beyond, previous) ? beyond : undefined;
14
+ };
15
+ /**
16
+ * 漢字の連なり run(文書全体の座標で start から始まる)の頭が、直前の数に付いた助数詞(2日、第76回、24時間)なら、その助数詞の語。
17
+ * 数字が区切りを見せるので、助数詞は数と読まれ、後ろの複合語の一部ではない。そうでなければ undefined。
18
+ * 折り返しをまたぐ語(年\n度)は span が surface より長いので、連なりの残りは span の終わりから始まる。
19
+ */
20
+ export const leadingCounter = (tokens, start, run) => {
21
+ const at = tokens.findIndex((token) => token.span.start === start);
22
+ const counter = tokens[at];
23
+ if (counter === undefined || !isCounter(counter) || !isNumber(wordBefore(tokens, at)))
24
+ return undefined;
25
+ return run.startsWith(counter.surface) ? counter : undefined;
26
+ };
27
+ //# sourceMappingURL=counter-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counter-edge.js","sourceRoot":"","sources":["../../src/detectors/counter-edge.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,QAAQ,CAAC;AAEvB,MAAM,QAAQ,GAAG,CAAC,KAAwB,EAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC;AAChG,MAAM,SAAS,GAAG,CAAC,KAAwB,EAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC;AAEnG,MAAM,OAAO,GAAG,CAAC,IAAW,EAAE,KAAY,EAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3F,sCAAsC;AACtC,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAE,EAAU,EAAqB,EAAE;IAC7E,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAwB,EAAE,KAAa,EAAE,GAAW,EAAqB,EAAE;IACxG,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACxG,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * . で空白を挟まずに繋いだ語(GOV.UK、SAM.gov、README.md、ASP.NET)。ドメイン名やファイル名で、中の大文字は略語ではない。
3
+ * 文の終わりの . は後ろに空白か行末が来る(…by the IRS. Then)ので、ここには当たらない。空白を落とした文の境目
4
+ * (the IRS.Then、Mr.HAWLEY)は頭だけ大文字の部品で分かるので、部品は全部大文字か全部小文字(と数字)に限る。
5
+ */
6
+ type Span = {
7
+ readonly start: number;
8
+ readonly end: number;
9
+ };
10
+ /** 文の中の、. で繋いだ名前の範囲。 */
11
+ export declare const dottedNameSpans: (text: string) => Span[];
12
+ export {};
13
+ //# sourceMappingURL=dotted-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotted-name.d.ts","sourceRoot":"","sources":["../../src/detectors/dotted-name.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,KAAK,IAAI,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAK7D,wBAAwB;AACxB,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,IAAI,EAC2D,CAAC"}