@echogarden/text-segmentation 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -25
- package/dist/EastAsianCharacterPatterns.d.ts +0 -6
- package/dist/EastAsianCharacterPatterns.js +6 -6
- package/dist/EastAsianCharacterPatterns.js.map +1 -1
- package/dist/Patterns.d.ts +4 -29
- package/dist/Patterns.js +137 -61
- package/dist/Patterns.js.map +1 -1
- package/dist/Suppressions.d.ts +1 -0
- package/dist/Suppressions.js +19 -9
- package/dist/Suppressions.js.map +1 -1
- package/dist/Test.js +48 -5
- package/dist/Test.js.map +1 -1
- package/dist/TextSegmentation.d.ts +3 -4
- package/dist/TextSegmentation.js +68 -39
- package/dist/TextSegmentation.js.map +1 -1
- package/dist/WordSequence.d.ts +5 -3
- package/dist/WordSequence.js +13 -6
- package/dist/WordSequence.js.map +1 -1
- package/dist/utilities/Utilities.d.ts +1 -0
- package/dist/utilities/Utilities.js +7 -0
- package/dist/utilities/Utilities.js.map +1 -1
- package/package.json +4 -4
- package/src/EastAsianCharacterPatterns.ts +6 -6
- package/src/Patterns.ts +180 -87
- package/src/Suppressions.ts +20 -9
- package/src/Test.ts +55 -5
- package/src/TextSegmentation.ts +91 -51
- package/src/WordSequence.ts +17 -7
- package/src/utilities/Utilities.ts +10 -0
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ npm install @echogarden/icu-segmentation-wasm
|
|
|
30
30
|
import { splitToWords } from '@echogarden/text-segmentation'
|
|
31
31
|
|
|
32
32
|
const wordSequence: WordSequence =
|
|
33
|
-
|
|
33
|
+
await splitToWords('Hello, world! How are you doing today?', { language: 'en' })
|
|
34
34
|
|
|
35
35
|
console.log(wordSequence.words)
|
|
36
36
|
```
|
|
@@ -64,22 +64,22 @@ prints a list of objects, including metadata on each word:
|
|
|
64
64
|
|
|
65
65
|
```ts
|
|
66
66
|
[
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
67
|
+
{ text: 'Hello', startOffset: 0, endOffset: 5, isPunctuation: false },
|
|
68
|
+
{ text: ',', startOffset: 5, endOffset: 6, isPunctuation: true },
|
|
69
|
+
{ text: ' ', startOffset: 6, endOffset: 7, isPunctuation: true },
|
|
70
|
+
{ text: 'world', startOffset: 7, endOffset: 12, isPunctuation: false },
|
|
71
|
+
{ text: '!', startOffset: 12, endOffset: 13, isPunctuation: true },
|
|
72
|
+
{ text: ' ', startOffset: 13, endOffset: 14, isPunctuation: true },
|
|
73
|
+
{ text: 'How', startOffset: 14, endOffset: 17, isPunctuation: false },
|
|
74
|
+
{ text: ' ', startOffset: 17, endOffset: 18, isPunctuation: true },
|
|
75
|
+
{ text: 'are', startOffset: 18, endOffset: 21, isPunctuation: false },
|
|
76
|
+
{ text: ' ', startOffset: 21, endOffset: 22, isPunctuation: true },
|
|
77
|
+
{ text: 'you', startOffset: 22, endOffset: 25, isPunctuation: false },
|
|
78
|
+
{ text: ' ', startOffset: 25, endOffset: 26, isPunctuation: true },
|
|
79
|
+
{ text: 'doing', startOffset: 26, endOffset: 31, isPunctuation: false },
|
|
80
|
+
{ text: ' ', startOffset: 31, endOffset: 32, isPunctuation: true },
|
|
81
|
+
{ text: 'today', startOffset: 32, endOffset: 37, isPunctuation: false },
|
|
82
|
+
{ text: '?', startOffset: 37, endOffset: 38, isPunctuation: true }
|
|
83
83
|
]
|
|
84
84
|
```
|
|
85
85
|
|
|
@@ -87,13 +87,13 @@ prints a list of objects, including metadata on each word:
|
|
|
87
87
|
|
|
88
88
|
```ts
|
|
89
89
|
const result: SegmentationResult =
|
|
90
|
-
|
|
90
|
+
await segmentText(`Hello, world! How are you doing today?`)
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
`result` is a nested object containing a breakdown of sentences, phrases and words in the given text. It is described by these TypeScript types:
|
|
94
94
|
```ts
|
|
95
95
|
interface SegmentationResult {
|
|
96
|
-
|
|
96
|
+
words: WordSequence
|
|
97
97
|
sentences: Sentence[]
|
|
98
98
|
}
|
|
99
99
|
|
|
@@ -101,7 +101,7 @@ interface Sentence {
|
|
|
101
101
|
text: string
|
|
102
102
|
charRange: Range
|
|
103
103
|
wordRange: Range
|
|
104
|
-
|
|
104
|
+
words: WordSequence
|
|
105
105
|
|
|
106
106
|
phrases: Phrase[]
|
|
107
107
|
}
|
|
@@ -110,7 +110,7 @@ interface Phrase {
|
|
|
110
110
|
text: string
|
|
111
111
|
charRange: Range
|
|
112
112
|
wordRange: Range
|
|
113
|
-
|
|
113
|
+
words: WordSequence
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
interface Range {
|
|
@@ -140,12 +140,18 @@ There are several types of accepted patterns, evaluated in this order:
|
|
|
140
140
|
* Language-specific suppressions. For example, in English it would include abbreviations like `Mr.`, `Mrs.`, `e.g.`, `i.e`, `etc.`, or contractions like and `'cause`, `'bout` in English, `'n` in Afrikaans
|
|
141
141
|
* Noun suppressions, shared in all languages, like names of brands, misc. abbreviations and programming languages. Examples: `C#`, `F#`, `C++`, `Yahoo!`, `Toys"R"Us`, `Dunkin'`, `Ke$ha`, `Sky+`, `I/O`, `A/C`, `A/V`
|
|
142
142
|
* Top-level domains, like `.com`, `.org`, `.net` (also doubling as the noun `.NET` as in the ".NET framework")
|
|
143
|
-
* Number patterns, consisting of a sequences of digits separated by various separator characters, like decimal separators `3.14`, `3,14`, and thousands separators like `233,421` (`,`), `233.421` (`.`) or `233 421` (` `). optional `-` or `+` signs like `-34,534.123`, `+43 345,344`
|
|
144
|
-
*
|
|
145
|
-
*
|
|
143
|
+
* Number patterns, consisting of a sequences of digits separated by various separator characters, like decimal separators `3.14`, `3,14`, and thousands separators like `233,421` (`,`), `233.421` (`.`) or `233 421` (` `). optional `-` or `+` signs like `-34,534.123`, `+43 345,344`, or scientific notation like `1.554e-34`
|
|
144
|
+
* Time patterns like `15:12` and `06:34:23`
|
|
145
|
+
* Date patterns like `10/15/2021` (currently disabled)
|
|
146
|
+
* Dimension patterns like `53x545x76`
|
|
147
|
+
* Percentage patterns, which are number patterns preceded or followed by `%`, like `53.243%` or `%34.12`
|
|
146
148
|
* Currency patterns like `$101.25`, `€50`, `20£`, `-53.23¥`, which, like percentage patterns, are number patterns preceded or followed by a currency symbol
|
|
149
|
+
* Emojis like 😄, 🎉, 👨👩👧👦
|
|
147
150
|
* Abbreviation patterns like `Y.M.C.A`: these patterns will be automatically matched (no special suppressions needed) if there is a sequence of single `.` alternating between single letters (like `x.y.z`), optionally, there may be a space between the characters, like `x. y. z.`
|
|
148
|
-
*
|
|
151
|
+
* Dot connected word sequences like `abc.def.g12`
|
|
152
|
+
* Underscore connected word sequence `abc_def_g12`
|
|
153
|
+
* Interpunct connected word sequence `abc·def·g12`
|
|
154
|
+
* **And finally**: word character sequences consisting of letter characters (Unicode category `Letter`), mark characters (Unicode category `Mark`) or digit characters (Unicode category `Decimal_Number`), which may include inner apostrophes like `'` and `’` and inner separators like `-`, `_` `·`
|
|
149
155
|
|
|
150
156
|
**Current limitations**:
|
|
151
157
|
* No current general identification of preceding or trailing apostrophes, like in English possessive plurals "The brothers' friend" or "The diplomats' contracts". **Reason**: this requires a large lexicon or more sophisticated language understanding, since the apostrophe is generally ambiguous with a single quote.
|
|
@@ -1,7 +1 @@
|
|
|
1
|
-
export declare const chineseCharacterRanges: import("regexp-composer").AnyOf;
|
|
2
|
-
export declare const japaneseHiraganaCharacterRanges: import("regexp-composer").AnyOf;
|
|
3
|
-
export declare const japaneseKatakanaCharacterRanges: import("regexp-composer").AnyOf;
|
|
4
|
-
export declare const thaiLetterRanges: import("regexp-composer").AnyOf;
|
|
5
|
-
export declare const khmerLetterRanges: import("regexp-composer").AnyOf;
|
|
6
|
-
export declare const eastAsianCharRanges: import("regexp-composer").AnyOf;
|
|
7
1
|
export declare const eastAsianCharRangesRegExp: RegExp;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { anyOf, buildRegExp, codepointRange } from 'regexp-composer';
|
|
2
|
-
|
|
2
|
+
const chineseCharacterRanges = anyOf(codepointRange('4E00', '9FFF'), // Main
|
|
3
3
|
codepointRange('3400', '4DBF'), // CJK Unified Ideographs Extension A
|
|
4
4
|
codepointRange('20000', '2A6DF') // CJK Unified Ideographs Extension B
|
|
5
5
|
);
|
|
6
|
-
|
|
6
|
+
const japaneseHiraganaCharacterRanges = anyOf(codepointRange('3040', '309F'), // Hiragana
|
|
7
7
|
codepointRange('1AFF0', '1AFFF'), // Kana Extended-B
|
|
8
8
|
codepointRange('1B000', '1B0FF'), // Kana Supplement
|
|
9
9
|
codepointRange('1B100', '1B12F'), // Kana Extended-A
|
|
10
10
|
codepointRange('1B130', '1B16F'));
|
|
11
|
-
|
|
11
|
+
const japaneseKatakanaCharacterRanges = anyOf(codepointRange('30A0', '30FF'), // Katakana
|
|
12
12
|
codepointRange('31F0', '31FF'), // Katakana Phonetic Extensions
|
|
13
13
|
codepointRange('3200', '32FF'), // Enclosed CJK Letters and Months
|
|
14
14
|
codepointRange('FF00', 'FFEF'), // Halfwidth and Fullwidth Forms
|
|
@@ -16,9 +16,9 @@ codepointRange('1AFF0', '1AFFF'), // Kana Extended-B
|
|
|
16
16
|
codepointRange('1B000', '1B0FF'), // Kana Supplement
|
|
17
17
|
codepointRange('1B100', '1B12F'), // Kana Extended-A
|
|
18
18
|
codepointRange('1B130', '1B16F'));
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const thaiLetterRanges = anyOf(codepointRange('0E00', '0E7F'));
|
|
20
|
+
const khmerLetterRanges = anyOf(codepointRange('1780', '17FF'), // Letters
|
|
21
21
|
codepointRange('19E0', '19FF'));
|
|
22
|
-
|
|
22
|
+
const eastAsianCharRanges = anyOf(chineseCharacterRanges, japaneseHiraganaCharacterRanges, japaneseKatakanaCharacterRanges, thaiLetterRanges, khmerLetterRanges);
|
|
23
23
|
export const eastAsianCharRangesRegExp = buildRegExp(eastAsianCharRanges);
|
|
24
24
|
//# sourceMappingURL=EastAsianCharacterPatterns.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EastAsianCharacterPatterns.js","sourceRoot":"","sources":["../src/EastAsianCharacterPatterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,
|
|
1
|
+
{"version":3,"file":"EastAsianCharacterPatterns.js","sourceRoot":"","sources":["../src/EastAsianCharacterPatterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEpE,MAAM,sBAAsB,GAAG,KAAK,CACnC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;AACvC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,qCAAqC;AACrE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,qCAAqC;CACtE,CAAA;AAED,MAAM,+BAA+B,GAAG,KAAK,CAC5C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;AAC3C,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAA;AAED,MAAM,+BAA+B,GAAG,KAAK,CAC5C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;AAC3C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,+BAA+B;AAC/D,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,kCAAkC;AAClE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,gCAAgC;AAChE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB;AACpD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAChC,CAAA;AAED,MAAM,gBAAgB,GAAG,KAAK,CAC7B,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9B,CAAA;AAED,MAAM,iBAAiB,GAAG,KAAK,CAC9B,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU;AAC1C,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAC9B,CAAA;AAED,MAAM,mBAAmB,GAAG,KAAK,CAChC,sBAAsB,EACtB,+BAA+B,EAC/B,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,CACjB,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAA"}
|
package/dist/Patterns.d.ts
CHANGED
|
@@ -1,34 +1,9 @@
|
|
|
1
1
|
export declare function buildWordOrNumberPattern(suppressions: string[]): import("regexp-composer").AnyOf;
|
|
2
2
|
export declare function buildSuppressionPattern(suppressions: string[]): import("regexp-composer").Pattern;
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const numericSeparatorPattern: import("regexp-composer").Pattern;
|
|
7
|
-
export declare const dateTimeSeparatorPattern: import("regexp-composer").Pattern;
|
|
8
|
-
export declare const dateTimePattern: import("regexp-composer").OneOrMore;
|
|
9
|
-
export declare const spacedThousandsSeparatorPattern: import("regexp-composer").Pattern;
|
|
10
|
-
export declare const numericSignPattern: import("regexp-composer").Pattern;
|
|
11
|
-
export declare const numberPattern: import("regexp-composer").OneOrMore[];
|
|
12
|
-
export declare const prefixPercentageOrCurrencyPattern: import("regexp-composer").Pattern;
|
|
13
|
-
export declare const suffixPercentagePattern: import("regexp-composer").Pattern;
|
|
14
|
-
export declare const percentagePattern: import("regexp-composer").AnyOf;
|
|
15
|
-
export declare const letterPattern: import("regexp-composer").SpecialToken;
|
|
16
|
-
export declare const markPattern: import("regexp-composer").SpecialToken;
|
|
17
|
-
export declare const apostrophPattern: import("regexp-composer").AnyOf;
|
|
18
|
-
export declare const letterOrMarkPattern: import("regexp-composer").AnyOf;
|
|
19
|
-
export declare const dottedAbbreviationSequencePattern: import("regexp-composer").Pattern;
|
|
20
|
-
export declare const wordCharacterPattern: import("regexp-composer").AnyOf;
|
|
21
|
-
export declare const wordSeparatorPattern: import("regexp-composer").Pattern;
|
|
22
|
-
export declare const wordInnerApostrophPattern: import("regexp-composer").Pattern;
|
|
23
|
-
export declare const wordStartApostrophPattern: import("regexp-composer").Pattern;
|
|
24
|
-
export declare const basicWordPattern: import("regexp-composer").OneOrMore;
|
|
25
|
-
export declare const wordSegmentPattern: import("regexp-composer").AnyOf;
|
|
26
|
-
export declare const phraseSeparators: string[];
|
|
3
|
+
export declare const wordCharacterRegExp: RegExp;
|
|
4
|
+
export declare const whitespacePatternRegExp: RegExp;
|
|
5
|
+
export declare const letterPatternGlobalRegExp: RegExp;
|
|
27
6
|
export declare const phraseSeparatorRegExp: RegExp;
|
|
28
|
-
export declare const
|
|
7
|
+
export declare const phraseSeparatorTrailingPunctuationRegExp: RegExp;
|
|
29
8
|
export declare const sentenceSeparatorRegExp: RegExp;
|
|
30
9
|
export declare const sentenceSeparatorTrailingPunctuationRegExp: RegExp;
|
|
31
|
-
export declare const phraseSeparatorTrailingPunctuationRegExp: RegExp;
|
|
32
|
-
export declare const oneOrMoreSpacesRegExp: RegExp;
|
|
33
|
-
export declare const wordCharacterRegExp: RegExp;
|
|
34
|
-
export declare const whitespacePatternRegExp: RegExp;
|
package/dist/Patterns.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { anyOf, buildRegExp, charRange, inputEnd, inputStart, matches, oneOrMore, possibly, repeated, tab, unicodeProperty, whitespace } from 'regexp-composer';
|
|
1
|
+
import { anyOf, buildRegExp, charRange, inputEnd, inputStart, matches, oneOrMore, possibly, repeated, tab, unicodeProperty, whitespace, zeroOrMore } from 'regexp-composer';
|
|
2
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
3
|
+
// Pattern builder methods
|
|
4
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
2
5
|
export function buildWordOrNumberPattern(suppressions) {
|
|
3
6
|
return anyOf(buildSuppressionPattern(suppressions), wordSegmentPattern);
|
|
4
7
|
}
|
|
@@ -7,57 +10,97 @@ export function buildSuppressionPattern(suppressions) {
|
|
|
7
10
|
return suppressionsPattern;
|
|
8
11
|
}
|
|
9
12
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
13
|
+
// Single character patterns
|
|
14
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
15
|
+
const letterPattern = unicodeProperty('Letter');
|
|
16
|
+
const markPattern = unicodeProperty('Mark');
|
|
17
|
+
const letterOrMarkPattern = anyOf(letterPattern, markPattern);
|
|
18
|
+
const apostrophPattern = anyOf(`'`, `’`, `‘`);
|
|
19
|
+
const punctuationPattern = unicodeProperty('Punctuation');
|
|
20
|
+
const digitPattern = unicodeProperty('Decimal_Number');
|
|
21
|
+
const arabicNumeralPattern = charRange('0', '9');
|
|
22
|
+
const emojiPattern = unicodeProperty('Emoji');
|
|
23
|
+
const percentageCharacters = ['%'];
|
|
24
|
+
const currencyCharacters = ['$', '¥', '€', '£', '₩', '₭', '₽', '₫', '฿', '¢', '₮', '؋', '₦', '₱', '₴', '₪'];
|
|
25
|
+
const percentageOrCurrencyCharacterPattern = anyOf(...percentageCharacters, ...currencyCharacters);
|
|
26
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
10
27
|
// Numeric patterns
|
|
11
28
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
12
|
-
|
|
13
|
-
export const digitPattern = unicodeProperty('Decimal_Number');
|
|
14
|
-
export const arabicNumeralPattern = charRange('0', '9');
|
|
15
|
-
export const numericSeparatorPattern = matches(anyOf('.', ',', '٬', '_'), {
|
|
29
|
+
const numericSeparatorPattern = matches(anyOf('.', ',', '٬', '_'), {
|
|
16
30
|
ifPrecededBy: arabicNumeralPattern,
|
|
17
31
|
ifFollowedBy: arabicNumeralPattern
|
|
18
32
|
});
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
33
|
+
const dimensionsPattern = matches([
|
|
34
|
+
oneOrMore(arabicNumeralPattern),
|
|
35
|
+
oneOrMore([
|
|
36
|
+
'x',
|
|
37
|
+
oneOrMore(arabicNumeralPattern),
|
|
38
|
+
]),
|
|
39
|
+
], {
|
|
40
|
+
ifPrecededBy: anyOf(whitespace, punctuationPattern, inputStart),
|
|
41
|
+
ifFollowedBy: anyOf(whitespace, punctuationPattern, inputEnd)
|
|
22
42
|
});
|
|
23
|
-
|
|
24
|
-
export const spacedThousandsSeparatorPattern = matches(' ', {
|
|
43
|
+
const spacedThousandsSeparatorPattern = matches(' ', {
|
|
25
44
|
ifPrecededBy: arabicNumeralPattern,
|
|
26
|
-
ifFollowedBy:
|
|
45
|
+
ifFollowedBy: [
|
|
46
|
+
repeated(3, arabicNumeralPattern),
|
|
47
|
+
anyOf(whitespace, punctuationPattern, inputEnd)
|
|
48
|
+
]
|
|
27
49
|
});
|
|
28
|
-
|
|
29
|
-
ifPrecededBy: anyOf(whitespace, punctuationPattern),
|
|
50
|
+
const numericSignPattern = matches(anyOf('-', '+'), {
|
|
51
|
+
ifPrecededBy: anyOf(whitespace, punctuationPattern, inputStart),
|
|
30
52
|
ifFollowedBy: arabicNumeralPattern,
|
|
31
53
|
});
|
|
32
|
-
|
|
33
|
-
|
|
54
|
+
const numberPattern = [
|
|
55
|
+
possibly(numericSignPattern),
|
|
56
|
+
digitPattern,
|
|
57
|
+
zeroOrMore(anyOf(digitPattern, numericSeparatorPattern, spacedThousandsSeparatorPattern))
|
|
58
|
+
];
|
|
59
|
+
const exponentPattern = [
|
|
60
|
+
anyOf('e', 'E'),
|
|
61
|
+
possibly(anyOf('+', '-')),
|
|
62
|
+
oneOrMore(arabicNumeralPattern),
|
|
63
|
+
];
|
|
64
|
+
const numberPossiblyFollowedByExponentOrLettersPattern = [
|
|
65
|
+
numberPattern,
|
|
66
|
+
possibly(anyOf(exponentPattern, matches(zeroOrMore(unicodeProperty('Letter')), {
|
|
67
|
+
ifNotFollowedBy: digitPattern,
|
|
68
|
+
})))
|
|
34
69
|
];
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
const percentageOrCurrencyPattern = anyOf(...percentageChars, ...currencySpecialChars);
|
|
38
|
-
export const prefixPercentageOrCurrencyPattern = matches([
|
|
39
|
-
percentageOrCurrencyPattern,
|
|
70
|
+
const precedingPercentageOrCurrencyPattern = matches([
|
|
71
|
+
percentageOrCurrencyCharacterPattern,
|
|
40
72
|
numberPattern,
|
|
41
73
|
], {
|
|
42
74
|
ifNotPrecededBy: digitPattern,
|
|
43
|
-
ifFollowedBy: anyOf(whitespace, punctuationPattern),
|
|
75
|
+
ifFollowedBy: anyOf(whitespace, punctuationPattern, inputEnd),
|
|
44
76
|
});
|
|
45
|
-
|
|
77
|
+
const followingPercentageOrCurrencyPattern = matches([
|
|
46
78
|
numberPattern,
|
|
47
|
-
|
|
79
|
+
percentageOrCurrencyCharacterPattern,
|
|
80
|
+
], {
|
|
81
|
+
ifPrecededBy: anyOf(whitespace, punctuationPattern, inputStart),
|
|
82
|
+
ifNotFollowedBy: anyOf(digitPattern),
|
|
83
|
+
});
|
|
84
|
+
const percentageOrCurrencyPattern = anyOf(precedingPercentageOrCurrencyPattern, followingPercentageOrCurrencyPattern);
|
|
85
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
86
|
+
// Time patterns
|
|
87
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
88
|
+
const timePattern = matches([
|
|
89
|
+
anyOf(arabicNumeralPattern, [charRange('0', '1'), arabicNumeralPattern], ['2', charRange('0', '3')]),
|
|
90
|
+
repeated([1, 2], [
|
|
91
|
+
':',
|
|
92
|
+
anyOf(arabicNumeralPattern, [charRange('0', '5'), arabicNumeralPattern]),
|
|
93
|
+
])
|
|
48
94
|
], {
|
|
49
|
-
ifPrecededBy: anyOf(whitespace, punctuationPattern),
|
|
50
|
-
|
|
95
|
+
ifPrecededBy: anyOf(whitespace, punctuationPattern, inputStart),
|
|
96
|
+
ifNotPrecededBy: ':',
|
|
97
|
+
ifFollowedBy: anyOf(whitespace, punctuationPattern, inputEnd),
|
|
98
|
+
ifNotFollowedBy: ':',
|
|
51
99
|
});
|
|
52
|
-
export const percentagePattern = anyOf(prefixPercentageOrCurrencyPattern, suffixPercentagePattern);
|
|
53
100
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
54
101
|
// Letter patterns
|
|
55
102
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
56
|
-
|
|
57
|
-
export const markPattern = unicodeProperty('Mark');
|
|
58
|
-
export const apostrophPattern = anyOf(`'`, `’`, `‘`);
|
|
59
|
-
export const letterOrMarkPattern = anyOf(letterPattern, markPattern);
|
|
60
|
-
export const dottedAbbreviationSequencePattern = matches(anyOf([
|
|
103
|
+
const dottedAbbreviationSequencePattern = matches(anyOf([
|
|
61
104
|
letterPattern,
|
|
62
105
|
oneOrMore([
|
|
63
106
|
'. ',
|
|
@@ -76,51 +119,84 @@ export const dottedAbbreviationSequencePattern = matches(anyOf([
|
|
|
76
119
|
ifNotPrecededBy: anyOf(letterOrMarkPattern, digitPattern),
|
|
77
120
|
ifNotFollowedBy: anyOf(letterOrMarkPattern, digitPattern)
|
|
78
121
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
ifPrecededBy: letterOrMarkPattern,
|
|
82
|
-
ifFollowedBy: letterOrMarkPattern
|
|
83
|
-
});
|
|
84
|
-
export const wordInnerApostrophPattern = matches(apostrophPattern, {
|
|
122
|
+
const wordCharacterPattern = anyOf(letterPattern, markPattern, digitPattern);
|
|
123
|
+
const wordInnerApostrophPattern = matches(apostrophPattern, {
|
|
85
124
|
ifPrecededBy: letterOrMarkPattern,
|
|
86
125
|
ifFollowedBy: letterOrMarkPattern,
|
|
87
126
|
});
|
|
88
|
-
|
|
127
|
+
const wordStartApostrophPattern = matches(apostrophPattern, {
|
|
89
128
|
ifPrecededBy: whitespace,
|
|
90
|
-
ifFollowedBy: [letterOrMarkPattern, letterOrMarkPattern, whitespace]
|
|
129
|
+
ifFollowedBy: [letterOrMarkPattern, letterOrMarkPattern, anyOf(whitespace, inputEnd)]
|
|
130
|
+
});
|
|
131
|
+
const basicWordPattern = oneOrMore(anyOf(wordCharacterPattern, wordInnerApostrophPattern));
|
|
132
|
+
const hyphenatedWordPattern = [
|
|
133
|
+
basicWordPattern,
|
|
134
|
+
oneOrMore([
|
|
135
|
+
'-',
|
|
136
|
+
basicWordPattern,
|
|
137
|
+
]),
|
|
138
|
+
];
|
|
139
|
+
const dotSeparatedWordPattern = matches([
|
|
140
|
+
basicWordPattern,
|
|
141
|
+
oneOrMore([
|
|
142
|
+
'.',
|
|
143
|
+
basicWordPattern,
|
|
144
|
+
]),
|
|
145
|
+
], {
|
|
146
|
+
//ifPrecededBy: anyOf(whitespace, inputStart),
|
|
147
|
+
//ifFollowedBy: anyOf(whitespace, inputEnd)
|
|
91
148
|
});
|
|
92
|
-
|
|
93
|
-
|
|
149
|
+
const interpunctSeparatedWordPattern = [
|
|
150
|
+
basicWordPattern,
|
|
151
|
+
oneOrMore([
|
|
152
|
+
anyOf('·', '‧'),
|
|
153
|
+
basicWordPattern,
|
|
154
|
+
]),
|
|
155
|
+
];
|
|
156
|
+
const underscoreSeparatedWordPattern = [
|
|
157
|
+
basicWordPattern,
|
|
158
|
+
oneOrMore([
|
|
159
|
+
'_',
|
|
160
|
+
basicWordPattern,
|
|
161
|
+
]),
|
|
162
|
+
];
|
|
163
|
+
const wordSegmentPattern = anyOf(timePattern, dimensionsPattern, percentageOrCurrencyPattern, numberPossiblyFollowedByExponentOrLettersPattern, emojiPattern, interpunctSeparatedWordPattern, dotSeparatedWordPattern, dottedAbbreviationSequencePattern, underscoreSeparatedWordPattern, basicWordPattern);
|
|
94
164
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
95
|
-
//
|
|
165
|
+
// Phrase separation patterns
|
|
96
166
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
97
|
-
|
|
98
|
-
|
|
167
|
+
const phraseSeparatorCharacters = [',', '、', ',', '،', ';', ';', ':', ':', '—'];
|
|
168
|
+
const phraseSeparatorPattern = [
|
|
99
169
|
inputStart,
|
|
100
|
-
anyOf(...
|
|
170
|
+
anyOf(...phraseSeparatorCharacters),
|
|
101
171
|
inputEnd
|
|
102
|
-
]
|
|
103
|
-
|
|
104
|
-
export const sentenceSeparatorRegExp = buildRegExp([
|
|
105
|
-
inputStart,
|
|
106
|
-
anyOf(...sentenceSeparators),
|
|
107
|
-
inputEnd
|
|
108
|
-
]);
|
|
109
|
-
export const sentenceSeparatorTrailingPunctuationRegExp = buildRegExp([
|
|
172
|
+
];
|
|
173
|
+
const phraseSeparatorTrailingPunctuationPattern = [
|
|
110
174
|
inputStart,
|
|
111
|
-
anyOf(
|
|
175
|
+
anyOf(...phraseSeparatorCharacters, ' ', tab),
|
|
112
176
|
inputEnd
|
|
113
|
-
]
|
|
114
|
-
|
|
177
|
+
];
|
|
178
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
179
|
+
// Sentence separation patterns
|
|
180
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
181
|
+
const sentenceSeparatorCharacters = ['.', '。', '?', '?', '!', '!', '\n'];
|
|
182
|
+
const sentenceSeparatorPattern = [
|
|
115
183
|
inputStart,
|
|
116
|
-
anyOf(...
|
|
184
|
+
anyOf(...sentenceSeparatorCharacters),
|
|
117
185
|
inputEnd
|
|
118
|
-
]
|
|
119
|
-
|
|
186
|
+
];
|
|
187
|
+
const sentenceSeparatorTrailingPunctuationPattern = [
|
|
120
188
|
inputStart,
|
|
121
|
-
|
|
189
|
+
anyOf('"', '”', '’', ')', ']', '}', '»', ...sentenceSeparatorCharacters, ...phraseSeparatorCharacters, oneOrMore(whitespace)),
|
|
122
190
|
inputEnd
|
|
123
|
-
]
|
|
191
|
+
];
|
|
192
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
193
|
+
// Prebuilt regular expressions
|
|
194
|
+
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
124
195
|
export const wordCharacterRegExp = buildRegExp(wordCharacterPattern);
|
|
125
196
|
export const whitespacePatternRegExp = buildRegExp(whitespace);
|
|
197
|
+
export const letterPatternGlobalRegExp = buildRegExp(letterPattern, { global: true });
|
|
198
|
+
export const phraseSeparatorRegExp = buildRegExp(phraseSeparatorPattern);
|
|
199
|
+
export const phraseSeparatorTrailingPunctuationRegExp = buildRegExp(phraseSeparatorTrailingPunctuationPattern);
|
|
200
|
+
export const sentenceSeparatorRegExp = buildRegExp(sentenceSeparatorPattern);
|
|
201
|
+
export const sentenceSeparatorTrailingPunctuationRegExp = buildRegExp(sentenceSeparatorTrailingPunctuationPattern);
|
|
126
202
|
//# sourceMappingURL=Patterns.js.map
|
package/dist/Patterns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Patterns.js","sourceRoot":"","sources":["../src/Patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"Patterns.js","sourceRoot":"","sources":["../src/Patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/Suppressions.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const cldrSuppressions: Record<string, string[]>;
|
|
2
|
+
export declare const additionalSuppressions: Record<string, string[]>;
|
|
2
3
|
export declare const leadingApostropheContractionSuppressions: Record<string, string[]>;
|
|
3
4
|
export declare const nounSuppressions: string[];
|
|
4
5
|
export declare const tldSuppressions: string[];
|