@echogarden/text-segmentation 0.6.0 → 0.8.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/exports/Exports.d.ts +3 -0
- package/dist/exports/Exports.d.ts.map +1 -0
- package/dist/exports/Exports.js +3 -0
- package/dist/exports/Exports.js.map +1 -0
- package/dist/patterns/EastAsianCharacterPatterns.d.ts.map +1 -0
- package/dist/patterns/EastAsianCharacterPatterns.js.map +1 -0
- package/dist/{Patterns.d.ts → patterns/Patterns.d.ts} +1 -0
- package/dist/patterns/Patterns.d.ts.map +1 -0
- package/dist/{Patterns.js → patterns/Patterns.js} +9 -8
- package/dist/patterns/Patterns.js.map +1 -0
- package/dist/patterns/Suppressions.d.ts.map +1 -0
- package/dist/patterns/Suppressions.js.map +1 -0
- package/dist/{TextSegmentation.d.ts → segmentation/TextSegmentation.d.ts} +0 -1
- package/dist/segmentation/TextSegmentation.d.ts.map +1 -0
- package/dist/segmentation/TextSegmentation.js +575 -0
- package/dist/segmentation/TextSegmentation.js.map +1 -0
- package/dist/segmentation/WordSequence.d.ts.map +1 -0
- package/dist/segmentation/WordSequence.js.map +1 -0
- package/dist/tests/Test.d.ts.map +1 -0
- package/dist/{Test.js → tests/Test.js} +7 -5
- package/dist/tests/Test.js.map +1 -0
- package/dist/utilities/Timer.d.ts +7 -3
- package/dist/utilities/Timer.d.ts.map +1 -1
- package/dist/utilities/Timer.js +41 -39
- package/dist/utilities/Timer.js.map +1 -1
- package/package.json +7 -7
- package/src/exports/Exports.ts +2 -0
- package/src/{Patterns.ts → patterns/Patterns.ts} +11 -10
- package/src/segmentation/TextSegmentation.ts +743 -0
- package/src/{Test.ts → tests/Test.ts} +7 -5
- package/src/utilities/Timer.ts +50 -48
- package/dist/EastAsianCharacterPatterns.d.ts.map +0 -1
- package/dist/EastAsianCharacterPatterns.js.map +0 -1
- package/dist/Patterns.d.ts.map +0 -1
- package/dist/Patterns.js.map +0 -1
- package/dist/Suppressions.d.ts.map +0 -1
- package/dist/Suppressions.js.map +0 -1
- package/dist/Test.d.ts.map +0 -1
- package/dist/Test.js.map +0 -1
- package/dist/TextSegmentation.d.ts.map +0 -1
- package/dist/TextSegmentation.js +0 -364
- package/dist/TextSegmentation.js.map +0 -1
- package/dist/WordSequence.d.ts.map +0 -1
- package/dist/WordSequence.js.map +0 -1
- package/src/TextSegmentation.ts +0 -520
- /package/dist/{EastAsianCharacterPatterns.d.ts → patterns/EastAsianCharacterPatterns.d.ts} +0 -0
- /package/dist/{EastAsianCharacterPatterns.js → patterns/EastAsianCharacterPatterns.js} +0 -0
- /package/dist/{Suppressions.d.ts → patterns/Suppressions.d.ts} +0 -0
- /package/dist/{Suppressions.js → patterns/Suppressions.js} +0 -0
- /package/dist/{WordSequence.d.ts → segmentation/WordSequence.d.ts} +0 -0
- /package/dist/{WordSequence.js → segmentation/WordSequence.js} +0 -0
- /package/dist/{Test.d.ts → tests/Test.d.ts} +0 -0
- /package/src/{EastAsianCharacterPatterns.ts → patterns/EastAsianCharacterPatterns.ts} +0 -0
- /package/src/{Suppressions.ts → patterns/Suppressions.ts} +0 -0
- /package/src/{WordSequence.ts → segmentation/WordSequence.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { addMissingPunctuationWordsToWordSequence, SegmentationOptions, SegmentationResult, segmentText, segmentWordSequence, splitToWords, WordSequence } from
|
|
2
|
-
import { Timer } from
|
|
1
|
+
import { addMissingPunctuationWordsToWordSequence, SegmentationOptions, SegmentationResult, segmentText, segmentWordSequence, splitToWords, WordSequence } from '../exports/Exports.js'
|
|
2
|
+
import { Timer } from '../utilities/Timer.js'
|
|
3
3
|
|
|
4
4
|
const log = console.log
|
|
5
5
|
|
|
@@ -131,21 +131,23 @@ This A.I. techonology, tells the Dr. goodbye and nothing else. Yes.
|
|
|
131
131
|
`
|
|
132
132
|
|
|
133
133
|
const text2 = `
|
|
134
|
-
Hello World. Yo!
|
|
135
134
|
|
|
136
135
|
|
|
136
|
+
Hello World. Yo!
|
|
137
|
+
\t
|
|
138
|
+
|
|
137
139
|
gooooogoo
|
|
138
140
|
|
|
139
141
|
, Hi. BOBO.
|
|
140
142
|
`
|
|
141
143
|
|
|
142
|
-
const wordSequence = await splitToWords(
|
|
144
|
+
const wordSequence = await splitToWords(text2, { language: 'en' })
|
|
143
145
|
|
|
144
146
|
const result = await segmentWordSequence(wordSequence)
|
|
145
147
|
|
|
146
148
|
const sentencesText = result.sentences.map(x => x.text)
|
|
147
149
|
|
|
148
|
-
log(sentencesText.join('
|
|
150
|
+
log(sentencesText.join(' | '))
|
|
149
151
|
}
|
|
150
152
|
|
|
151
153
|
//test1()
|
package/src/utilities/Timer.ts
CHANGED
|
@@ -1,95 +1,97 @@
|
|
|
1
|
-
|
|
1
|
+
export class Timer {
|
|
2
|
+
private readonly logger: TimerLogger
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
declare const process: any
|
|
4
|
+
private startTime = 0
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
constructor(logger?: TimerLogger) {
|
|
7
|
+
if (logger) {
|
|
8
|
+
this.logger = logger
|
|
9
|
+
} else {
|
|
10
|
+
this.logger = console.log
|
|
11
|
+
}
|
|
8
12
|
|
|
9
|
-
constructor() {
|
|
10
13
|
this.restart()
|
|
11
14
|
}
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
// Resets the timer to the current time.
|
|
17
|
+
restart(): void {
|
|
14
18
|
this.startTime = Timer.currentTime
|
|
15
19
|
}
|
|
16
20
|
|
|
21
|
+
// Elapsed time in milliseconds (monotonic where supported).
|
|
17
22
|
get elapsedTime(): number {
|
|
18
|
-
// Elapsed time (milliseconds)
|
|
19
23
|
return Timer.currentTime - this.startTime
|
|
20
24
|
}
|
|
21
25
|
|
|
26
|
+
// Elapsed time in seconds.
|
|
22
27
|
get elapsedTimeSeconds(): number {
|
|
23
|
-
// Elapsed time (seconds)
|
|
24
28
|
return this.elapsedTime / 1000
|
|
25
29
|
}
|
|
26
30
|
|
|
31
|
+
// Returns elapsed ms and restarts the timer.
|
|
27
32
|
getElapsedTimeAndRestart(): number {
|
|
28
|
-
const
|
|
33
|
+
const elapsed = this.elapsedTime
|
|
29
34
|
this.restart()
|
|
30
35
|
|
|
31
|
-
return
|
|
36
|
+
return elapsed
|
|
32
37
|
}
|
|
33
38
|
|
|
39
|
+
// Logs elapsed time (in ms) and restarts the timer.
|
|
34
40
|
logAndRestart(title: string, timePrecision = 3): number {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
const message = `${title}: ${roundToDigits(elapsedTime, timePrecision)}ms`
|
|
39
|
-
|
|
40
|
-
console.log(message)
|
|
41
|
-
//
|
|
42
|
-
|
|
41
|
+
const elapsedMs = this.elapsedTime
|
|
42
|
+
this.logger(`${title}: ${roundToDigits(elapsedMs, timePrecision)}ms`)
|
|
43
43
|
this.restart()
|
|
44
44
|
|
|
45
|
-
return
|
|
45
|
+
return elapsedMs
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
// Current high-resolution timestamp in milliseconds since Unix epoch.
|
|
48
49
|
static get currentTime(): number {
|
|
49
|
-
if (!this.timestampFunc) {
|
|
50
|
-
this.createGlobalTimestampFunction()
|
|
51
|
-
}
|
|
52
|
-
|
|
53
50
|
return this.timestampFunc()
|
|
54
51
|
}
|
|
55
52
|
|
|
53
|
+
// Current timestamp in microseconds (integer).
|
|
56
54
|
static get microsecondTimestamp(): number {
|
|
57
55
|
return Math.floor(Timer.currentTime * 1000)
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
let baseTimestamp = 0
|
|
58
|
+
// Clock setup
|
|
59
|
+
private static timestampFunc: () => number = Timer.createTimestampFunction()
|
|
63
60
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const millisecondTime = (nodeTimeStamp[0] * 1000) + (nodeTimeStamp[1] / 1000000)
|
|
61
|
+
private static createTimestampFunction(): () => number {
|
|
62
|
+
const g = globalThis as any
|
|
67
63
|
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
// 1. Modern standard: performance.now() (Browsers & Node 16+)
|
|
65
|
+
if (typeof g.performance === 'object' && typeof g.performance.now === 'function') {
|
|
66
|
+
const timeOrigin =
|
|
67
|
+
g.performance.timeOrigin ?? (Date.now() - g.performance.now())
|
|
70
68
|
|
|
71
|
-
|
|
69
|
+
return () => timeOrigin + g.performance.now()
|
|
72
70
|
}
|
|
73
|
-
else if (typeof chrome === 'object' && chrome.Interval) {
|
|
74
|
-
const baseTimestamp = Date.now()
|
|
75
71
|
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
// 2. Node.js high resolution timer (BigInt variant, Node 10.4+)
|
|
73
|
+
if (typeof g.process === 'object' && typeof g.process.hrtime === 'function') {
|
|
74
|
+
const startNs = g.process.hrtime.bigint()
|
|
78
75
|
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
-
else if (typeof performance === 'object' && performance.now) {
|
|
82
|
-
const baseTimestamp = Date.now() - performance.now()
|
|
76
|
+
const epochBaseMs = Date.now() - (Number(startNs) / 1e6)
|
|
83
77
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
else if (Date.now) {
|
|
87
|
-
this.timestampFunc = () => Date.now()
|
|
78
|
+
return () =>
|
|
79
|
+
epochBaseMs + Number(g.process.hrtime.bigint()) / 1e6
|
|
88
80
|
}
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
|
|
82
|
+
// 3. Last-resort fallback (non-monotonic)
|
|
83
|
+
if (typeof Date.now === 'function') {
|
|
84
|
+
return () => Date.now()
|
|
91
85
|
}
|
|
86
|
+
|
|
87
|
+
return () => new Date().getTime()
|
|
92
88
|
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export function roundToDigits(value: number, digits: number): number {
|
|
92
|
+
const factor = 10 ** digits
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
return Math.round(value * factor) / factor
|
|
95
95
|
}
|
|
96
|
+
|
|
97
|
+
type TimerLogger = (msg: string) => void
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EastAsianCharacterPatterns.d.ts","sourceRoot":"","sources":["../src/EastAsianCharacterPatterns.ts"],"names":[],"mappings":"AA4CA,eAAO,MAAM,yBAAyB,QAAmC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
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.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patterns.d.ts","sourceRoot":"","sources":["../src/Patterns.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,mCAK9D;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,qCAQ7D;AAuSD,eAAO,MAAM,iBAAiB,kFAAgD,CAAA;AAC9E,eAAO,MAAM,2BAA2B,0CAA2B,CAAA;AACnE,eAAO,MAAM,yBAAyB,0CAAyB,CAAA;AAK/D,eAAO,MAAM,mBAAmB,QAAoC,CAAA;AACpE,eAAO,MAAM,uBAAuB,QAAiC,CAAA;AAErE,eAAO,MAAM,yBAAyB,QAA+C,CAAA;AAErF,eAAO,MAAM,qBAAqB,QAAsC,CAAA;AACxE,eAAO,MAAM,wCAAwC,QAAyD,CAAA;AAE9G,eAAO,MAAM,gCAAgC,QAAiD,CAAA;AAC9F,eAAO,MAAM,mDAAmD,QAA2D,CAAA;AAE3H,eAAO,MAAM,0BAA0B,QAA2C,CAAA;AAClF,eAAO,MAAM,wBAAwB,QAAyC,CAAA"}
|
package/dist/Patterns.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Patterns.js","sourceRoot":"","sources":["../src/Patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Suppressions.d.ts","sourceRoot":"","sources":["../src/Suppressions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASrD,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAG3D,CAAA;AAED,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAO7E,CAAA;AAED,eAAO,MAAM,gBAAgB,UAE5B,CAAA;AAED,eAAO,MAAM,eAAe,UAE3B,CAAA"}
|
package/dist/Suppressions.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Suppressions.js","sourceRoot":"","sources":["../src/Suppressions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACzD,6pCAA6pC;IAC7pC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;IAC/1B,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IAC9+D,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,E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"}
|
package/dist/Test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Test.d.ts","sourceRoot":"","sources":["../src/Test.ts"],"names":[],"mappings":""}
|
package/dist/Test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Test.js","sourceRoot":"","sources":["../src/Test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TextSegmentation.d.ts","sourceRoot":"","sources":["../src/TextSegmentation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAOhE,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,+BAI5E;AAED,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,+BAA+B,+BA6K9G;AAID,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,yBAmF7E;AAmDD,wBAAgB,wCAAwC,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM;;;EAsDtG;AA+ED,MAAM,WAAW,kBAAkB;IAClC,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,qBAAqB,EAAE,KAAK,EAAE,CAAA;CAC9B;AAED,qBAAa,YAAY;IACxB,SAAS,EAAE,KAAK,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IAEnB,YAAY,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAGhD;IAED,IAAI,IAAI,WAEP;IAED,IAAI,SAAS,IAAI,KAAK,CAKrB;CACD;AAED,qBAAa,QAAS,SAAQ,YAAY;IACzC,OAAO,EAAE,MAAM,EAAE,CAAK;CACtB;AAED,qBAAa,MAAO,SAAQ,YAAY;CACvC;AAED,MAAM,WAAW,KAAK;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,6BAA6B,CAAC,EAAE,OAAO,CAAA;CACvC;AAED,eAAO,MAAM,0BAA0B,EAAE,mBAIxC,CAAA;AAED,MAAM,WAAW,+BAA+B;IAC/C,mCAAmC,EAAE,OAAO,CAAA;CAC5C;AAED,eAAO,MAAM,sCAAsC,EAAE,+BAEpD,CAAA"}
|
package/dist/TextSegmentation.js
DELETED
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
import { buildWordOrNumberPattern as buildWordSplitterPattern, phraseSeparatorRegExp, sentenceSeparatorTrailingPunctuationCharacterRegExp, sentenceSeparatorCharacterRegExp, whitespacePatternRegExp, letterPatternGlobalRegExp } from './Patterns.js';
|
|
2
|
-
import { cldrSuppressions, additionalSuppressions, leadingApostropheContractionSuppressions, nounSuppressions, tldSuppressions } from './Suppressions.js';
|
|
3
|
-
import { eastAsianCharRangesRegExp } from './EastAsianCharacterPatterns.js';
|
|
4
|
-
import { WordSequence } from './WordSequence.js';
|
|
5
|
-
import { getShortLanguageCode } from './utilities/Utilities.js';
|
|
6
|
-
export { WordSequence } from './WordSequence.js';
|
|
7
|
-
import { buildRegExp } from 'regexp-composer';
|
|
8
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
9
|
-
// Exported methods
|
|
10
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
11
|
-
export async function segmentText(text, options) {
|
|
12
|
-
const wordSequence = await splitToWords(text, options);
|
|
13
|
-
return segmentWordSequence(wordSequence);
|
|
14
|
-
}
|
|
15
|
-
export async function segmentWordSequence(wordSequence, options) {
|
|
16
|
-
options = { ...defaultWordSequenceSegmentationOptions, ...options };
|
|
17
|
-
const segmentWordRanges = [];
|
|
18
|
-
{
|
|
19
|
-
let segmentStartWordOffset = 0;
|
|
20
|
-
let nonWhitespaceWordSeen = false;
|
|
21
|
-
for (let wordIndex = 0; wordIndex < wordSequence.length; wordIndex++) {
|
|
22
|
-
const word = wordSequence.getWordAt(wordIndex);
|
|
23
|
-
if (word.endsWith('\n') && nonWhitespaceWordSeen) {
|
|
24
|
-
const nextWord = wordIndex < wordSequence.length - 1 ? wordSequence.getWordAt(wordIndex + 1) : '';
|
|
25
|
-
if (nextWord !== '\r' && nextWord !== '\n') {
|
|
26
|
-
segmentWordRanges.push({ start: segmentStartWordOffset, end: wordIndex + 1 });
|
|
27
|
-
segmentStartWordOffset = wordIndex + 1;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
if (nonWhitespaceWordSeen === false) {
|
|
31
|
-
nonWhitespaceWordSeen = !whitespacePatternRegExp.test(word);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (segmentStartWordOffset < wordSequence.length) {
|
|
35
|
-
segmentWordRanges.push({ start: segmentStartWordOffset, end: wordSequence.length });
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const sentenceWordRanges = [];
|
|
39
|
-
const segmentSentenceRanges = [];
|
|
40
|
-
{
|
|
41
|
-
const minimumSentenceLetterCount = 2;
|
|
42
|
-
for (let segmentIndex = 0; segmentIndex < segmentWordRanges.length; segmentIndex++) {
|
|
43
|
-
const segmentWordRange = segmentWordRanges[segmentIndex];
|
|
44
|
-
const segmentStartWordIndex = segmentWordRange.start;
|
|
45
|
-
const segmentEndWordIndex = segmentWordRange.end;
|
|
46
|
-
segmentSentenceRanges.push({ start: sentenceWordRanges.length, end: sentenceWordRanges.length });
|
|
47
|
-
let sentenceStartWordOffset = segmentStartWordIndex;
|
|
48
|
-
let currentSentenceLetterCount = 0;
|
|
49
|
-
for (let wordIndex = segmentStartWordIndex; wordIndex < segmentEndWordIndex; wordIndex++) {
|
|
50
|
-
const word = wordSequence.getWordAt(wordIndex);
|
|
51
|
-
if (currentSentenceLetterCount < minimumSentenceLetterCount) {
|
|
52
|
-
const matches = word.matchAll(letterPatternGlobalRegExp);
|
|
53
|
-
for (const _ of matches) {
|
|
54
|
-
currentSentenceLetterCount += 1;
|
|
55
|
-
if (currentSentenceLetterCount >= minimumSentenceLetterCount) {
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
if (currentSentenceLetterCount >= minimumSentenceLetterCount && sentenceSeparatorCharacterRegExp.test(word)) {
|
|
61
|
-
let trailingSequenceEndIndex = wordIndex;
|
|
62
|
-
let trailingSequenceContainedWhitespace = false;
|
|
63
|
-
while (trailingSequenceEndIndex < segmentEndWordIndex) {
|
|
64
|
-
const trailingWord = wordSequence.getWordAt(trailingSequenceEndIndex);
|
|
65
|
-
if (sentenceSeparatorTrailingPunctuationCharacterRegExp.test(trailingWord)) {
|
|
66
|
-
if (!trailingSequenceContainedWhitespace && whitespacePatternRegExp.test(trailingWord)) {
|
|
67
|
-
trailingSequenceContainedWhitespace = true;
|
|
68
|
-
}
|
|
69
|
-
trailingSequenceEndIndex++;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
sentenceWordRanges.push({
|
|
76
|
-
start: sentenceStartWordOffset,
|
|
77
|
-
end: trailingSequenceEndIndex
|
|
78
|
-
});
|
|
79
|
-
segmentSentenceRanges[segmentSentenceRanges.length - 1].end += 1;
|
|
80
|
-
sentenceStartWordOffset = trailingSequenceEndIndex;
|
|
81
|
-
currentSentenceLetterCount = 0;
|
|
82
|
-
wordIndex = trailingSequenceEndIndex - 1;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (sentenceStartWordOffset < segmentEndWordIndex) {
|
|
86
|
-
sentenceWordRanges.push({ start: sentenceStartWordOffset, end: segmentEndWordIndex });
|
|
87
|
-
segmentSentenceRanges[segmentSentenceRanges.length - 1].end += 1;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const sentences = [];
|
|
92
|
-
for (const wordRange of sentenceWordRanges) {
|
|
93
|
-
const sentenceWordSequence = wordSequence.slice(wordRange.start, wordRange.end);
|
|
94
|
-
sentences.push(new Sentence(wordRange, sentenceWordSequence));
|
|
95
|
-
}
|
|
96
|
-
for (const sentence of sentences) {
|
|
97
|
-
const phraseWordRanges = [];
|
|
98
|
-
let sentenceEndWordOffset = sentence.wordRange.end;
|
|
99
|
-
let phraseStartWordOffset = sentence.wordRange.start;
|
|
100
|
-
for (let wordIndex = phraseStartWordOffset; wordIndex < sentenceEndWordOffset; wordIndex++) {
|
|
101
|
-
const currentWord = wordSequence.getWordAt(wordIndex);
|
|
102
|
-
const isCurrentWordPhraseSeparator = phraseSeparatorRegExp.test(currentWord) &&
|
|
103
|
-
(!options.requireSpaceAfterColonsOrSemicolons ||
|
|
104
|
-
(currentWord !== ':' && currentWord !== ';') ||
|
|
105
|
-
whitespacePatternRegExp.test(wordSequence.getWordAt(wordIndex + 1)));
|
|
106
|
-
if (isCurrentWordPhraseSeparator) {
|
|
107
|
-
let whitespaceSeenOnce = false;
|
|
108
|
-
while (wordIndex < sentenceEndWordOffset - 1) {
|
|
109
|
-
const nextWord = wordSequence.getWordAt(wordIndex + 1);
|
|
110
|
-
if (!sentenceSeparatorTrailingPunctuationCharacterRegExp.test(nextWord)) {
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
if (whitespacePatternRegExp.test(nextWord)) {
|
|
114
|
-
whitespaceSeenOnce = true;
|
|
115
|
-
}
|
|
116
|
-
if (nextWord === '"' && whitespaceSeenOnce) {
|
|
117
|
-
break;
|
|
118
|
-
}
|
|
119
|
-
wordIndex += 1;
|
|
120
|
-
}
|
|
121
|
-
phraseWordRanges.push({
|
|
122
|
-
start: phraseStartWordOffset,
|
|
123
|
-
end: wordIndex + 1
|
|
124
|
-
});
|
|
125
|
-
phraseStartWordOffset = wordIndex + 1;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (phraseStartWordOffset < sentenceEndWordOffset) {
|
|
129
|
-
phraseWordRanges.push({ start: phraseStartWordOffset, end: sentenceEndWordOffset });
|
|
130
|
-
}
|
|
131
|
-
for (const wordRange of phraseWordRanges) {
|
|
132
|
-
const phraseWordSequence = wordSequence.slice(wordRange.start, wordRange.end);
|
|
133
|
-
sentence.phrases.push(new Phrase(wordRange, phraseWordSequence));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
const result = {
|
|
137
|
-
words: wordSequence,
|
|
138
|
-
sentences,
|
|
139
|
-
segmentSentenceRanges,
|
|
140
|
-
};
|
|
141
|
-
return result;
|
|
142
|
-
}
|
|
143
|
-
const cachedWordSplitterRegExps = new Map();
|
|
144
|
-
export async function splitToWords(text, options) {
|
|
145
|
-
if (!options) {
|
|
146
|
-
options = {};
|
|
147
|
-
}
|
|
148
|
-
options = { ...defaultSegmentationOptions, ...options };
|
|
149
|
-
if (options.language) {
|
|
150
|
-
options.language = getShortLanguageCode(options.language);
|
|
151
|
-
}
|
|
152
|
-
const optionsAsJson = JSON.stringify(options);
|
|
153
|
-
let wordSplitterRegExp = cachedWordSplitterRegExps.get(optionsAsJson);
|
|
154
|
-
if (!wordSplitterRegExp) {
|
|
155
|
-
wordSplitterRegExp = buildWordSplitterRegExpForOptions(options);
|
|
156
|
-
cachedWordSplitterRegExps.set(optionsAsJson, wordSplitterRegExp);
|
|
157
|
-
}
|
|
158
|
-
let wordSequence = new WordSequence();
|
|
159
|
-
function addPunctuationWordsBetween(startOffset, endOffset) {
|
|
160
|
-
const punctuationWordSubstring = text.substring(startOffset, endOffset);
|
|
161
|
-
let charOffset = startOffset;
|
|
162
|
-
let punctuationWordStartOffset = startOffset;
|
|
163
|
-
function addPunctuationWordIfNeeded() {
|
|
164
|
-
if (charOffset > punctuationWordStartOffset) {
|
|
165
|
-
const wordText = text.substring(punctuationWordStartOffset, charOffset);
|
|
166
|
-
wordSequence.addWord(wordText, punctuationWordStartOffset, true);
|
|
167
|
-
punctuationWordStartOffset = charOffset;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
for (const char of punctuationWordSubstring) {
|
|
171
|
-
if (char === ' ') {
|
|
172
|
-
charOffset += 1;
|
|
173
|
-
continue;
|
|
174
|
-
}
|
|
175
|
-
addPunctuationWordIfNeeded();
|
|
176
|
-
charOffset += char.length;
|
|
177
|
-
addPunctuationWordIfNeeded();
|
|
178
|
-
}
|
|
179
|
-
addPunctuationWordIfNeeded();
|
|
180
|
-
}
|
|
181
|
-
const wordMatches = text.matchAll(wordSplitterRegExp);
|
|
182
|
-
let lastMatchEndOffset = 0;
|
|
183
|
-
if (wordMatches) {
|
|
184
|
-
for (const match of wordMatches) {
|
|
185
|
-
const offsets = match.indices[0];
|
|
186
|
-
const matchStartOffset = offsets[0];
|
|
187
|
-
const matchEndOffset = offsets[1];
|
|
188
|
-
if (matchStartOffset > lastMatchEndOffset) {
|
|
189
|
-
addPunctuationWordsBetween(lastMatchEndOffset, matchStartOffset);
|
|
190
|
-
}
|
|
191
|
-
const wordText = text.substring(matchStartOffset, matchEndOffset);
|
|
192
|
-
wordSequence.addWord(wordText, matchStartOffset, false);
|
|
193
|
-
lastMatchEndOffset = matchEndOffset;
|
|
194
|
-
}
|
|
195
|
-
addPunctuationWordsBetween(lastMatchEndOffset, text.length);
|
|
196
|
-
}
|
|
197
|
-
if (options.enableEastAsianPostprocessing) {
|
|
198
|
-
wordSequence = await postprocessEastAsianWords(text, wordSequence);
|
|
199
|
-
}
|
|
200
|
-
return wordSequence;
|
|
201
|
-
}
|
|
202
|
-
async function postprocessEastAsianWords(containingText, wordSequence) {
|
|
203
|
-
const icuSegmentation = await getIcuSegmentation();
|
|
204
|
-
if (icuSegmentation === undefined) {
|
|
205
|
-
return wordSequence;
|
|
206
|
-
}
|
|
207
|
-
let icuInitialized = false;
|
|
208
|
-
const newWordSequence = new WordSequence();
|
|
209
|
-
for (let wordIndex = 0; wordIndex < wordSequence.length; wordIndex++) {
|
|
210
|
-
const wordEntry = wordSequence.entries[wordIndex];
|
|
211
|
-
const wordStartOffset = wordEntry.startOffset;
|
|
212
|
-
const word = wordSequence.getWordAt(wordIndex);
|
|
213
|
-
if (eastAsianCharRangesRegExp.test(word)) {
|
|
214
|
-
if (!icuInitialized) {
|
|
215
|
-
await icuSegmentation.initialize();
|
|
216
|
-
icuInitialized = true;
|
|
217
|
-
}
|
|
218
|
-
const wordBreaks = [...icuSegmentation.createWordBreakIterator(word)];
|
|
219
|
-
for (let i = 0; i < wordBreaks.length - 1; i++) {
|
|
220
|
-
const subwordStartOffset = wordStartOffset + wordBreaks[i];
|
|
221
|
-
const subwordEndOffset = wordStartOffset + wordBreaks[i + 1];
|
|
222
|
-
const subwordText = containingText.substring(subwordStartOffset, subwordEndOffset);
|
|
223
|
-
newWordSequence.addWord(subwordText, subwordStartOffset, false);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
const wordText = containingText.substring(wordEntry.startOffset, wordEntry.endOffset);
|
|
228
|
-
newWordSequence.addWord(wordText, wordEntry.startOffset, wordEntry.isPunctuation);
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return newWordSequence;
|
|
232
|
-
}
|
|
233
|
-
// Add any missing punctuation words to a word sequence
|
|
234
|
-
export function addMissingPunctuationWordsToWordSequence(wordSequence, sourceText) {
|
|
235
|
-
const originalWordsReverseMapping = new Map();
|
|
236
|
-
const wordSequenceWithPunctuation = new WordSequence();
|
|
237
|
-
function addWordEntriesForTextSlice(textSlice, initialCharOffset) {
|
|
238
|
-
let charOffset = initialCharOffset;
|
|
239
|
-
// Add entry for every codepoint (this will correctly treat characters beyond BMP)
|
|
240
|
-
for (const char of textSlice) {
|
|
241
|
-
const charEndOffset = charOffset + char.length;
|
|
242
|
-
const lastEntry = wordSequenceWithPunctuation.lastEntry;
|
|
243
|
-
if (char === ' ' && lastEntry && lastEntry.isPunctuation && lastEntry.text[0] === ' ') {
|
|
244
|
-
wordSequenceWithPunctuation.lastEntry.text += ' ';
|
|
245
|
-
wordSequenceWithPunctuation.lastEntry.endOffset = charEndOffset;
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
const wordText = sourceText.substring(charOffset, charEndOffset);
|
|
249
|
-
wordSequenceWithPunctuation.addWord(wordText, charOffset, true);
|
|
250
|
-
}
|
|
251
|
-
charOffset = charEndOffset;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
for (let wordIndex = 0; wordIndex < wordSequence.length; wordIndex++) {
|
|
255
|
-
const wordEntry = wordSequence.getEntryAt(wordIndex);
|
|
256
|
-
const wordStartOffset = wordEntry.startOffset;
|
|
257
|
-
const previousWordEndOffset = wordIndex > 0 ? wordSequence.entries[wordIndex - 1].endOffset : 0;
|
|
258
|
-
// Add entries for any punctuation characters between the current and previous word (or start)
|
|
259
|
-
if (previousWordEndOffset !== wordStartOffset) {
|
|
260
|
-
const textSlice = sourceText.substring(previousWordEndOffset, wordStartOffset);
|
|
261
|
-
addWordEntriesForTextSlice(textSlice, previousWordEndOffset);
|
|
262
|
-
}
|
|
263
|
-
wordSequenceWithPunctuation.entries.push(wordEntry);
|
|
264
|
-
originalWordsReverseMapping.set(wordSequenceWithPunctuation.length - 1, wordIndex);
|
|
265
|
-
// If last word, add entries for any trailing punctuation characters
|
|
266
|
-
if (wordIndex === wordSequence.length - 1) {
|
|
267
|
-
if (sourceText.length !== wordEntry.endOffset) {
|
|
268
|
-
const textSlice = sourceText.substring(wordEntry.endOffset, sourceText.length);
|
|
269
|
-
addWordEntriesForTextSlice(textSlice, wordEntry.endOffset);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return { wordSequenceWithPunctuation, originalWordsReverseMapping };
|
|
274
|
-
}
|
|
275
|
-
function getPunctuationRanges(wordSequence, text) {
|
|
276
|
-
const punctuationRanges = [];
|
|
277
|
-
const wordEntries = wordSequence.entries;
|
|
278
|
-
if (wordEntries[0].startOffset > 0) {
|
|
279
|
-
punctuationRanges.push({ start: 0, end: wordEntries[0].startOffset });
|
|
280
|
-
}
|
|
281
|
-
for (let i = 0; i < wordEntries.length; i++) {
|
|
282
|
-
const entry = wordEntries[i];
|
|
283
|
-
const previousEndOffset = wordEntries[i - 1]?.endOffset ?? 0;
|
|
284
|
-
if (entry.startOffset > previousEndOffset) {
|
|
285
|
-
punctuationRanges.push({ start: previousEndOffset, end: entry.startOffset });
|
|
286
|
-
}
|
|
287
|
-
if (entry.isPunctuation) {
|
|
288
|
-
punctuationRanges.push({ start: entry.startOffset, end: entry.endOffset });
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
{
|
|
292
|
-
const lastEndOffset = wordEntries[wordEntries.length - 1]?.endOffset;
|
|
293
|
-
if (lastEndOffset && lastEndOffset < text.length) {
|
|
294
|
-
punctuationRanges.push({ start: lastEndOffset, end: text.length });
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
return punctuationRanges;
|
|
298
|
-
}
|
|
299
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
300
|
-
// Helper methods
|
|
301
|
-
////////////////////////////////////////////////////////////////////////////////////////////////
|
|
302
|
-
function buildWordSplitterRegExpForOptions(options) {
|
|
303
|
-
const cldrSuppressionsForLang = cldrSuppressions[options.language ?? ''] ?? [];
|
|
304
|
-
const extendedSuppressionsForLang = additionalSuppressions[options.language ?? ''] ?? [];
|
|
305
|
-
const contractionSuppressionsForLang = leadingApostropheContractionSuppressions[options.language ?? ''] ?? [];
|
|
306
|
-
const contractionSuppressionsForLangWithSingleQuote = contractionSuppressionsForLang.map(str => str.replaceAll(`'`, `’`));
|
|
307
|
-
const customSuppressions = options.customSuppressions ?? [];
|
|
308
|
-
let suppressions = [
|
|
309
|
-
...customSuppressions,
|
|
310
|
-
...cldrSuppressionsForLang,
|
|
311
|
-
...extendedSuppressionsForLang,
|
|
312
|
-
...contractionSuppressionsForLang,
|
|
313
|
-
...contractionSuppressionsForLangWithSingleQuote,
|
|
314
|
-
...nounSuppressions,
|
|
315
|
-
...tldSuppressions,
|
|
316
|
-
];
|
|
317
|
-
const wordPattern = buildWordSplitterPattern([
|
|
318
|
-
...suppressions,
|
|
319
|
-
...suppressions.map(word => word.toLocaleLowerCase()),
|
|
320
|
-
...suppressions.map(word => word.toLocaleUpperCase()),
|
|
321
|
-
]);
|
|
322
|
-
const wordSplitterRegExp = buildRegExp(wordPattern, { global: true });
|
|
323
|
-
return wordSplitterRegExp;
|
|
324
|
-
}
|
|
325
|
-
async function getIcuSegmentation() {
|
|
326
|
-
try {
|
|
327
|
-
const icuSegmentation = await import('@echogarden/icu-segmentation-wasm');
|
|
328
|
-
return icuSegmentation;
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
return undefined;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
export class TextFragment {
|
|
335
|
-
wordRange;
|
|
336
|
-
words;
|
|
337
|
-
constructor(wordRange, words) {
|
|
338
|
-
this.wordRange = wordRange;
|
|
339
|
-
this.words = words;
|
|
340
|
-
}
|
|
341
|
-
get text() {
|
|
342
|
-
return this.words.text;
|
|
343
|
-
}
|
|
344
|
-
get charRange() {
|
|
345
|
-
return {
|
|
346
|
-
start: this.words.firstEntry.startOffset,
|
|
347
|
-
end: this.words.lastEntry.endOffset
|
|
348
|
-
};
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
export class Sentence extends TextFragment {
|
|
352
|
-
phrases = [];
|
|
353
|
-
}
|
|
354
|
-
export class Phrase extends TextFragment {
|
|
355
|
-
}
|
|
356
|
-
export const defaultSegmentationOptions = {
|
|
357
|
-
language: '',
|
|
358
|
-
customSuppressions: [],
|
|
359
|
-
enableEastAsianPostprocessing: true,
|
|
360
|
-
};
|
|
361
|
-
export const defaultWordSequenceSegmentationOptions = {
|
|
362
|
-
requireSpaceAfterColonsOrSemicolons: true
|
|
363
|
-
};
|
|
364
|
-
//# sourceMappingURL=TextSegmentation.js.map
|