natural 6.2.0 → 6.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/lib/natural/analyzers/index.d.ts +17 -11
- package/lib/natural/brill_pos_tagger/index.d.ts +103 -14
- package/lib/natural/classifiers/index.d.ts +161 -62
- package/lib/natural/distance/index.d.ts +31 -17
- package/lib/natural/inflectors/index.d.ts +6 -3
- package/lib/natural/ngrams/index.d.ts +25 -9
- package/lib/natural/normalizers/index.d.ts +28 -0
- package/lib/natural/phonetics/index.d.ts +10 -8
- package/lib/natural/sentiment/index.d.ts +14 -1
- package/lib/natural/stemmers/index.d.ts +21 -20
- package/lib/natural/tfidf/index.d.ts +20 -9
- package/lib/natural/tokenizers/index.d.ts +72 -38
- package/lib/natural/transliterators/index.d.ts +1 -4
- package/lib/natural/trie/index.d.ts +8 -7
- package/lib/natural/util/index.d.ts +33 -5
- package/lib/natural/wordnet/index.d.ts +63 -7
- package/package.json +1 -1
- package/tsconfig.json +1 -2
|
@@ -21,34 +21,40 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
21
21
|
THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
[key: string]: string
|
|
24
|
+
declare interface TaggedWord {
|
|
26
25
|
token: string
|
|
27
26
|
pos: string
|
|
27
|
+
pp?: boolean
|
|
28
28
|
spos?: string
|
|
29
29
|
added?: boolean
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
declare type PunctuationFunction = () => string[] | ''
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
declare interface TaggedSentence {
|
|
35
35
|
tags: TaggedWord[]
|
|
36
|
-
punct
|
|
36
|
+
punct: PunctuationFunction
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
declare type CallbackFunction = (obj: SentenceAnalyzer) => void
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
declare enum SenType {
|
|
42
|
+
Unknown = 'UNKNOWN',
|
|
43
|
+
Command = 'COMMAND',
|
|
44
|
+
Interrogative = 'INTERROGATIVE',
|
|
45
|
+
Exclamatory = 'EXCLAMATORY',
|
|
46
|
+
Declarative = 'DECLARATIVE',
|
|
47
|
+
}
|
|
42
48
|
|
|
43
|
-
export
|
|
49
|
+
export class SentenceAnalyzer {
|
|
44
50
|
posObj: TaggedSentence
|
|
45
|
-
senType:
|
|
51
|
+
senType: SenType | null
|
|
46
52
|
|
|
47
53
|
constructor (pos: TaggedSentence, cbf: CallbackFunction)
|
|
48
54
|
part (cbf: CallbackFunction): void
|
|
49
55
|
prepositionPhrases (): void
|
|
50
|
-
subjectToString (): string
|
|
51
|
-
predicateToString (): string
|
|
56
|
+
subjectToString (): string
|
|
57
|
+
predicateToString (): string
|
|
52
58
|
implicitYou (): boolean
|
|
53
59
|
toString (): string
|
|
54
60
|
type (cbf: CallbackFunction): SenType
|
|
@@ -23,51 +23,140 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
23
23
|
THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
declare interface RuleTemplatesItem {
|
|
27
|
+
function: (sentence: Sentence, i: number, parameter1?: string, parameter2?: string) => boolean
|
|
28
|
+
window: number[]
|
|
29
|
+
nrParameters: number
|
|
30
|
+
parameter1Values?: (sentence: Sentence, i: number) => string[]
|
|
31
|
+
parameter2Values?: (sentence: Sentence, i: number) => string[]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface RuleTemplates {
|
|
35
|
+
[key: string]: RuleTemplatesItem | undefined
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class RuleTemplate {
|
|
39
|
+
constructor (templateName: string, metadata: RuleTemplatesItem)
|
|
40
|
+
windowFitsSite (sentence: Sentence, i: number): void
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
declare class Predicate {
|
|
27
44
|
constructor (name: string, parameter1: string, parameter2?: string)
|
|
28
45
|
name: string
|
|
29
46
|
parameter1: string
|
|
30
|
-
parameter2
|
|
31
|
-
|
|
32
|
-
evaluate (
|
|
47
|
+
parameter2: string | undefined
|
|
48
|
+
meta: RuleTemplatesItem
|
|
49
|
+
evaluate (sentence: Sentence, position: number): boolean
|
|
33
50
|
}
|
|
34
51
|
|
|
35
|
-
|
|
52
|
+
declare class TransformationRule {
|
|
36
53
|
constructor (c1: string, c2: string, predicate: string, parameter1: string, parameter2?: string)
|
|
37
54
|
literal: string[]
|
|
38
55
|
predicate: Predicate
|
|
39
56
|
old_category: string
|
|
40
57
|
new_category: string
|
|
41
|
-
|
|
58
|
+
neutral: number
|
|
59
|
+
positive: number
|
|
60
|
+
negative: number
|
|
61
|
+
hasBeenSelectedAsHighRuleBefore: boolean
|
|
62
|
+
key (): string
|
|
63
|
+
apply (sentence: Sentence, position: number): void
|
|
64
|
+
isApplicableAt (sentence: Sentence, taggedSentence: Sentence, i: number): boolean
|
|
65
|
+
prettyPrint (): string
|
|
66
|
+
applyAt (sentence: Sentence, position: number): void
|
|
67
|
+
score (): number
|
|
42
68
|
}
|
|
43
69
|
|
|
44
|
-
export
|
|
45
|
-
constructor (
|
|
70
|
+
export class RuleSet {
|
|
71
|
+
constructor (language: string)
|
|
46
72
|
rules: TransformationRule[]
|
|
73
|
+
addRule (rule: TransformationRule): boolean
|
|
74
|
+
removeRule (rule: TransformationRule): void
|
|
75
|
+
getRules (): TransformationRule[]
|
|
76
|
+
nrRules (): number
|
|
77
|
+
hasRule (rule: TransformationRule): boolean
|
|
78
|
+
prettyPrint (): string
|
|
47
79
|
}
|
|
48
80
|
|
|
49
|
-
export
|
|
50
|
-
constructor (
|
|
81
|
+
export class Lexicon {
|
|
82
|
+
constructor (language: string, defaultCategory: string, defaultCategoryCapitalised?: string)
|
|
83
|
+
lexicon: { [key: string]: string[] | undefined }
|
|
51
84
|
defaultCategory: string
|
|
85
|
+
defaultCategoryCapitalised: string | undefined
|
|
52
86
|
parseLexicon (data: string): void
|
|
87
|
+
tagWordWithDefaults (word: string): string
|
|
53
88
|
tagWord (word: string): string[]
|
|
89
|
+
addWord (word: string, categories: string[]): void
|
|
90
|
+
prettyPrint (): string
|
|
91
|
+
nrEntries (): number
|
|
92
|
+
size (): number
|
|
93
|
+
setDefaultCategories (category: string, categoryCapitalised: string): void
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export class Corpus {
|
|
97
|
+
constructor (data: string | Corpus, typeOfCorpus: number, SentenceClass: typeof Sentence)
|
|
98
|
+
parseBrownCorpus (data: string, SentenceClass: typeof Sentence): void
|
|
99
|
+
getTags (): string[]
|
|
100
|
+
splitInTrainAndTest (percentageTrain: number): [Corpus, Corpus]
|
|
101
|
+
analyse (): void
|
|
102
|
+
buildLexicon (): Lexicon
|
|
103
|
+
tag (lexicon: Lexicon): void
|
|
104
|
+
nrSentences (): number
|
|
105
|
+
nrWords (): number
|
|
106
|
+
// Incomplete methods
|
|
107
|
+
// generateFeatures
|
|
108
|
+
// prettyPrint
|
|
54
109
|
}
|
|
55
110
|
|
|
56
|
-
|
|
111
|
+
declare interface BrillPOSTaggedWord {
|
|
57
112
|
token: string
|
|
58
113
|
tag: string
|
|
59
114
|
}
|
|
60
115
|
|
|
61
|
-
export
|
|
116
|
+
export class Sentence {
|
|
62
117
|
constructor (data?: string[])
|
|
63
|
-
taggedWords:
|
|
118
|
+
taggedWords: BrillPOSTaggedWord[]
|
|
64
119
|
addTaggedWord (token: string, tag: string): void
|
|
65
120
|
clone (): Sentence
|
|
66
121
|
}
|
|
67
122
|
|
|
68
|
-
export
|
|
123
|
+
export class BrillPOSTagger {
|
|
69
124
|
constructor (lexicon: Lexicon, ruleSet: RuleSet)
|
|
70
125
|
lexicon: Lexicon
|
|
71
126
|
ruleSet: RuleSet
|
|
72
127
|
tag (sentence: string[]): Sentence
|
|
128
|
+
tagWithLexicon (sentence: string[]): Sentence
|
|
129
|
+
applyRules (sentence: Sentence): Sentence
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export class BrillPOSTester {
|
|
133
|
+
constructor (lexicon: Lexicon, ruleSet: RuleSet)
|
|
134
|
+
lexicon: Lexicon
|
|
135
|
+
ruleSet: RuleSet
|
|
136
|
+
test (corpus: Corpus, tagger: BrillPOSTagger): [number, number]
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export class BrillPOSTrainer {
|
|
140
|
+
constructor (ruleScoreThreshold: number)
|
|
141
|
+
ruleScoreThreshold: number
|
|
142
|
+
corpus: Corpus
|
|
143
|
+
templates: RuleTemplates
|
|
144
|
+
positiveRules: RuleSet
|
|
145
|
+
mapRuleToSites: { [key: string]: { [key: number ]: { [key: number ]: boolean | undefined } | undefined } | undefined }
|
|
146
|
+
mapSiteToRules: { [key: number]: { [key: number ]: { [key: string ]: TransformationRule | undefined } | undefined } | undefined }
|
|
147
|
+
selectHighRule (): TransformationRule
|
|
148
|
+
mapRuleToSite (rule: TransformationRule, i: number, j: number): void
|
|
149
|
+
mapSiteToRule (i: number, j: number, rule: TransformationRule): void
|
|
150
|
+
associateSiteWithRule (i: number, j: number, rule: TransformationRule): void
|
|
151
|
+
siteIsAssociatedWithRule (i: number, j: number, rule: TransformationRule): boolean
|
|
152
|
+
getSites (rule: TransformationRule): Array<[number, number]>
|
|
153
|
+
getRules (i: number, j: number): TransformationRule[]
|
|
154
|
+
disconnectSiteFromRule (i: number, j: number, rule: TransformationRule): void
|
|
155
|
+
scoreRule (rule: TransformationRule, i: number, j: number): void
|
|
156
|
+
generatePositiveRules (i: number, j: number): RuleSet
|
|
157
|
+
scanForPositiveRules (): void
|
|
158
|
+
scanForSites (): void
|
|
159
|
+
neighbourhood (i: number, j: number): Array<[number, number]>
|
|
160
|
+
train (corpus: Corpus, templates: RuleTemplates, lexicon: Lexicon): RuleSet
|
|
161
|
+
printRulesWithScores (): string
|
|
73
162
|
}
|
|
@@ -1,135 +1,234 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import events from 'events'
|
|
2
|
+
import { Corpus, Sentence } from '../brill_pos_tagger'
|
|
3
|
+
import { Stemmer } from '../stemmers'
|
|
4
|
+
|
|
5
|
+
// Start apparatus declarations
|
|
6
|
+
|
|
7
|
+
// TODO: Once TS declarations are available in NaturalNode/apparatus,
|
|
8
|
+
// replace local definitions with imports:
|
|
9
|
+
// import {
|
|
10
|
+
// BayesClassifier as ApparatusBayesClassifier,
|
|
11
|
+
// Classification as ApparatusClassification,
|
|
12
|
+
// Classifier as ApparatusClassifier,
|
|
13
|
+
// LogisticRegressionClassifier as ApparatusLogisticRegressionClassifier,
|
|
14
|
+
// Observation as ApparatusObservation,
|
|
15
|
+
// } from 'apparatus'
|
|
16
|
+
|
|
17
|
+
declare interface ApparatusClassification {
|
|
3
18
|
label: string
|
|
4
19
|
value: number
|
|
5
20
|
}
|
|
6
21
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
declare class BayesClassifier {
|
|
10
|
-
events: events.EventEmitter
|
|
22
|
+
declare type ApparatusObservation = number[] | { [key: string]: number | string | boolean | undefined }
|
|
11
23
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
24
|
+
declare class ApparatusClassifier {
|
|
25
|
+
addExample (observation: ApparatusObservation, label: string): void
|
|
26
|
+
classify (observation: ApparatusObservation): string
|
|
15
27
|
train (): void
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
28
|
+
static restore (classifier: string | ApparatusClassifier): ApparatusClassifier
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// TODO: Not needed for natural repository, but could be moved to
|
|
32
|
+
// aparatus repository. Temporarily leaving here for copypasta.
|
|
33
|
+
declare class ApparatusBayesClassifier extends ApparatusClassifier {
|
|
34
|
+
classFeatures: { [key: string]: { [key: number]: number | undefined } | undefined }
|
|
35
|
+
classTotals: { [key: string]: number | undefined }
|
|
36
|
+
totalExamples: number
|
|
37
|
+
smoothing: number
|
|
38
|
+
|
|
39
|
+
constructor (smoothing?: number)
|
|
40
|
+
getClassifications (observation: ApparatusObservation): ApparatusClassification[]
|
|
41
|
+
probabilityOfClass (observation: ApparatusObservation, label: string): number
|
|
42
|
+
static restore (classifier: string | ApparatusBayesClassifier): ApparatusBayesClassifier
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// TODO: Not needed for natural repository, but could be moved to
|
|
46
|
+
// aparatus repository. Temporarily leaving here for copypasta.
|
|
47
|
+
declare class ApparatusLogisticRegressionClassifier extends ApparatusClassifier {
|
|
48
|
+
examples: { [key: string]: number[] | undefined }
|
|
49
|
+
// TODO: These appear used
|
|
50
|
+
// features: any[]
|
|
51
|
+
// featurePositions: { [key: string]: any | undefined }
|
|
52
|
+
maxFeaturePosition: number
|
|
53
|
+
classifications: string[]
|
|
54
|
+
exampleCount: number
|
|
55
|
+
|
|
56
|
+
createClassifications (): number[][]
|
|
57
|
+
addExample (data: number[], classification: string): void
|
|
58
|
+
getClassifications (observation: number[]): ApparatusClassification[]
|
|
59
|
+
static restore (classifier: string | ApparatusLogisticRegressionClassifier): ApparatusLogisticRegressionClassifier
|
|
21
60
|
}
|
|
22
61
|
|
|
23
|
-
|
|
62
|
+
// End apparatus declarations
|
|
63
|
+
|
|
64
|
+
declare interface ClassifierDoc {
|
|
24
65
|
label: string
|
|
25
|
-
|
|
66
|
+
text: string
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
declare interface ClassifierOptions {
|
|
70
|
+
keepStops?: boolean
|
|
26
71
|
}
|
|
27
72
|
|
|
28
|
-
|
|
73
|
+
declare type ClassifierCallback = (err: NodeJS.ErrnoException | null, classifier?: ClassifierBase) => void
|
|
29
74
|
|
|
30
|
-
declare class
|
|
75
|
+
declare class ClassifierBase {
|
|
76
|
+
classifier: ApparatusClassifier
|
|
77
|
+
docs: ClassifierDoc[]
|
|
78
|
+
features: { [key: string]: number | undefined }
|
|
79
|
+
stemmer: Stemmer
|
|
80
|
+
lastAdded: number
|
|
31
81
|
events: events.EventEmitter
|
|
32
82
|
|
|
33
|
-
|
|
34
|
-
addDocument (text: string[],
|
|
83
|
+
constructor (classifier: ApparatusClassifier, stemmer?: Stemmer)
|
|
84
|
+
addDocument (text: string | string[], classification: string): void
|
|
85
|
+
removeDocument (text: string | string[], classification: string): void
|
|
86
|
+
textToFeatures (observation: string | string[]): number[]
|
|
35
87
|
train (): void
|
|
36
|
-
|
|
37
|
-
getClassifications (observation: string):
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
88
|
+
retrain (): void
|
|
89
|
+
getClassifications (observation: string | string[]): ApparatusClassification[]
|
|
90
|
+
classify (observation: string | string[]): string
|
|
91
|
+
setOptions (options: ClassifierOptions): void
|
|
92
|
+
save (filename: string, callback: ClassifierCallback): void
|
|
41
93
|
}
|
|
42
94
|
|
|
43
|
-
|
|
95
|
+
declare type BayesClassifierCallback = (err: NodeJS.ErrnoException | null, classifier?: BayesClassifier) => void
|
|
96
|
+
|
|
97
|
+
export class BayesClassifier extends ClassifierBase {
|
|
98
|
+
constructor (stemmer?: Stemmer, smoothing?: number)
|
|
99
|
+
static load (filename: string, stemmer: Stemmer | null | undefined, callback: BayesClassifierCallback): void
|
|
100
|
+
static restore (classifier: BayesClassifier, stemmer?: Stemmer): BayesClassifier
|
|
101
|
+
}
|
|
44
102
|
|
|
45
|
-
declare
|
|
103
|
+
declare type LogisticRegressionClassifierCallback = (err: NodeJS.ErrnoException | null, classifier?: LogisticRegressionClassifier) => void
|
|
104
|
+
|
|
105
|
+
export class LogisticRegressionClassifier extends ClassifierBase {
|
|
106
|
+
constructor (stemmer?: Stemmer)
|
|
107
|
+
static load (filename: string, stemmer: Stemmer | null | undefined, callback: LogisticRegressionClassifierCallback): void
|
|
108
|
+
static restore (classifier: LogisticRegressionClassifier, stemmer?: Stemmer): LogisticRegressionClassifier
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
declare type MaxEntClassifierCallback = (err: NodeJS.ErrnoException | null, classifier?: MaxEntClassifier | null) => void
|
|
112
|
+
|
|
113
|
+
export class MaxEntClassifier {
|
|
46
114
|
sample: Sample
|
|
47
115
|
features: FeatureSet
|
|
48
116
|
|
|
49
117
|
constructor (features: FeatureSet, sample: Sample)
|
|
50
118
|
addElement (x: Element): void
|
|
51
119
|
addDocument (context: Context, classification: string, elementClass: Element): void
|
|
52
|
-
train (maxIterations: number, minImprovement: number,
|
|
53
|
-
getClassifications (b: Context):
|
|
120
|
+
train (maxIterations: number, minImprovement: number, unused: any): void
|
|
121
|
+
getClassifications (b: Context): ApparatusClassification[]
|
|
54
122
|
classify (b: Context): string
|
|
123
|
+
// These are not static like in other Classifier classes
|
|
55
124
|
save (filename: string, callback: MaxEntClassifierCallback): void
|
|
56
|
-
|
|
125
|
+
load (filename: string, elementClass: Element, callback: MaxEntClassifierCallback): void
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
declare class Distribution {
|
|
129
|
+
alpha: number[]
|
|
130
|
+
featureSet: FeatureSet
|
|
131
|
+
sample: Sample
|
|
132
|
+
|
|
133
|
+
constructor (alpha: number[], featureSet: FeatureSet, sample: Sample)
|
|
134
|
+
toString (): string
|
|
135
|
+
weight (x: Element): number
|
|
136
|
+
calculateAPriori (x: Element): number
|
|
137
|
+
prepareWeights (): void
|
|
138
|
+
calculateAPosteriori (x: Element): number
|
|
139
|
+
aPosterioriNormalisation (b: Context): number
|
|
140
|
+
prepareAPosterioris (): void
|
|
141
|
+
prepare (): void
|
|
142
|
+
KullbackLieblerDistance (): number
|
|
143
|
+
logLikelihood (): number
|
|
144
|
+
entropy (): number
|
|
145
|
+
checkSum (): number
|
|
57
146
|
}
|
|
58
147
|
|
|
59
|
-
|
|
148
|
+
declare type FeatureFunction = (x: Element) => number
|
|
60
149
|
|
|
61
|
-
|
|
150
|
+
export class Feature {
|
|
62
151
|
evaluate: FeatureFunction
|
|
63
152
|
name: string
|
|
64
|
-
parameters:
|
|
153
|
+
parameters: string[]
|
|
65
154
|
|
|
66
|
-
constructor (f: FeatureFunction, name: string, parameters:
|
|
155
|
+
constructor (f: FeatureFunction, name: string, parameters: string[])
|
|
67
156
|
apply (x: Element): number
|
|
68
157
|
expectationApprox (p: Distribution, sample: Sample): number
|
|
69
|
-
expectation (p: Distribution, A:
|
|
158
|
+
expectation (p: Distribution, A: string[], B: Context[]): number
|
|
70
159
|
observedExpectation (sample: Sample): number
|
|
71
160
|
}
|
|
72
161
|
|
|
73
|
-
|
|
74
|
-
features:
|
|
75
|
-
map:
|
|
162
|
+
export class FeatureSet {
|
|
163
|
+
features: Feature[]
|
|
164
|
+
map: { [key: string]: boolean | undefined }
|
|
76
165
|
|
|
77
|
-
addFeature (feature:
|
|
78
|
-
featureExists (feature:
|
|
79
|
-
getFeatures ():
|
|
166
|
+
addFeature (feature: Feature): boolean
|
|
167
|
+
featureExists (feature: Feature): boolean
|
|
168
|
+
getFeatures (): Feature[]
|
|
80
169
|
size (): number
|
|
81
170
|
prettyPrint (): string
|
|
82
171
|
}
|
|
83
172
|
|
|
84
|
-
|
|
173
|
+
declare type SampleCallback = (err: NodeJS.ErrnoException | null, sample?: Sample | null) => void
|
|
85
174
|
|
|
86
|
-
|
|
87
|
-
frequencyOfContext:
|
|
88
|
-
frequency:
|
|
89
|
-
classes:
|
|
175
|
+
export class Sample {
|
|
176
|
+
frequencyOfContext: { [key: string]: number | undefined }
|
|
177
|
+
frequency: { [key: string]: number | undefined }
|
|
178
|
+
classes: string[]
|
|
90
179
|
|
|
91
|
-
constructor (elements)
|
|
180
|
+
constructor (elements?: Element[])
|
|
92
181
|
analyse (): void
|
|
93
182
|
addElement (x: Element): void
|
|
94
183
|
observedProbabilityOfContext (context: Context): number
|
|
95
|
-
observedProbability (x): number
|
|
184
|
+
observedProbability (x: Element): number
|
|
96
185
|
size (): number
|
|
97
|
-
getClasses ():
|
|
186
|
+
getClasses (): string[]
|
|
98
187
|
generateFeatures (featureSet: FeatureSet): void
|
|
99
188
|
save (filename: string, callback: SampleCallback): void
|
|
100
|
-
load (filename: string, elementClass: Element, callback: SampleCallback): void
|
|
189
|
+
load (filename: string, elementClass: typeof Element, callback: SampleCallback): void
|
|
101
190
|
}
|
|
102
191
|
|
|
103
|
-
|
|
192
|
+
export class Context {
|
|
193
|
+
key: string | undefined
|
|
194
|
+
|
|
195
|
+
constructor (data: any)
|
|
104
196
|
toString (): string
|
|
105
197
|
}
|
|
106
198
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
199
|
+
export class Element {
|
|
200
|
+
a: string
|
|
201
|
+
b: Context
|
|
202
|
+
key: string | undefined
|
|
203
|
+
|
|
204
|
+
constructor (a: string, b: Context)
|
|
205
|
+
toString (): string
|
|
110
206
|
}
|
|
111
207
|
|
|
112
|
-
|
|
208
|
+
export class SEElement extends Element {
|
|
209
|
+
constructor (a: string, b: Context)
|
|
113
210
|
generateFeatures (featureSet: FeatureSet): void
|
|
114
211
|
}
|
|
115
212
|
|
|
116
|
-
|
|
213
|
+
export class POSElement extends Element {
|
|
214
|
+
constructor (a: string, b: Context)
|
|
117
215
|
generateFeatures (featureSet: FeatureSet): void
|
|
118
216
|
}
|
|
119
217
|
|
|
120
|
-
|
|
218
|
+
export class GISScaler {
|
|
121
219
|
constructor (featureSet: FeatureSet, sample: Sample)
|
|
122
|
-
calculateMaxSumOfFeatures ():
|
|
220
|
+
calculateMaxSumOfFeatures (): boolean
|
|
123
221
|
addCorrectionFeature (): void
|
|
124
222
|
run (maxIterations: number, minImprovement: number): Distribution
|
|
125
223
|
}
|
|
126
224
|
|
|
127
|
-
|
|
128
|
-
constructor (data
|
|
225
|
+
export class MESentence {
|
|
226
|
+
constructor (data?: string[])
|
|
129
227
|
generateSampleElements (sample: Sample): void
|
|
130
228
|
}
|
|
131
229
|
|
|
132
|
-
|
|
230
|
+
export class MECorpus {
|
|
231
|
+
constructor (data: string | Corpus, BROWN: number, SentenceClass: typeof Sentence)
|
|
133
232
|
generateSample (): Sample
|
|
134
|
-
splitInTrainAndTest (percentageTrain: number):
|
|
233
|
+
splitInTrainAndTest (percentageTrain: number): [MECorpus, MECorpus]
|
|
135
234
|
}
|
|
@@ -23,33 +23,42 @@ THE SOFTWARE.
|
|
|
23
23
|
|
|
24
24
|
// Based on type definitions on Definitely Typed
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
dj?: number
|
|
28
|
-
|
|
29
|
-
ignoreCase?: boolean
|
|
26
|
+
declare interface JaroWinklerOptions {
|
|
27
|
+
dj?: number
|
|
28
|
+
/** @default false */
|
|
29
|
+
ignoreCase?: boolean
|
|
30
30
|
}
|
|
31
|
-
export declare function JaroWinklerDistance (s1: string, s2: string, options: JaroWinklerOptions): number
|
|
32
31
|
|
|
33
|
-
export
|
|
32
|
+
export function JaroWinklerDistance (s1: string, s2: string, options: JaroWinklerOptions): number
|
|
33
|
+
|
|
34
|
+
declare interface DamerauLevenshteinDistanceOptions {
|
|
34
35
|
/** @default 1 */
|
|
35
|
-
insertion_cost?: number
|
|
36
|
+
insertion_cost?: number
|
|
36
37
|
/** @default 1 */
|
|
37
|
-
deletion_cost?: number
|
|
38
|
+
deletion_cost?: number
|
|
38
39
|
/** @default 1 */
|
|
39
|
-
substitution_cost?: number
|
|
40
|
+
substitution_cost?: number
|
|
40
41
|
/** @default 1 */
|
|
41
|
-
transposition_cost?: number
|
|
42
|
+
transposition_cost?: number
|
|
42
43
|
/** @default false */
|
|
43
|
-
search?: boolean
|
|
44
|
+
search?: boolean
|
|
44
45
|
/** @default false */
|
|
45
|
-
restricted?: boolean
|
|
46
|
-
damerau?: boolean
|
|
46
|
+
restricted?: boolean
|
|
47
|
+
damerau?: boolean
|
|
47
48
|
}
|
|
48
|
-
|
|
49
|
+
|
|
50
|
+
declare interface SubstringDistanceResult {
|
|
49
51
|
substring: string
|
|
50
52
|
distance: number
|
|
53
|
+
offset: number
|
|
51
54
|
}
|
|
52
|
-
|
|
55
|
+
|
|
56
|
+
export function LevenshteinDistance (
|
|
57
|
+
source: string,
|
|
58
|
+
target: string,
|
|
59
|
+
options?: DamerauLevenshteinDistanceOptions
|
|
60
|
+
): number
|
|
61
|
+
|
|
53
62
|
/**
|
|
54
63
|
* Returns the Damerau-Levenshtein distance between strings. Counts the distance
|
|
55
64
|
* between two strings by returning the number of edit operations required to
|
|
@@ -63,14 +72,19 @@ export function DamerauLevenshteinDistance (
|
|
|
63
72
|
target: string,
|
|
64
73
|
options: DamerauLevenshteinDistanceOptions & { search: true }
|
|
65
74
|
): SubstringDistanceResult
|
|
75
|
+
|
|
66
76
|
export function DamerauLevenshteinDistance (
|
|
67
77
|
source: string,
|
|
68
78
|
target: string,
|
|
69
|
-
options?: DamerauLevenshteinDistanceOptions & { search?: false
|
|
79
|
+
options?: DamerauLevenshteinDistanceOptions & { search?: false }
|
|
70
80
|
): number
|
|
81
|
+
|
|
71
82
|
export function DamerauLevenshteinDistance (
|
|
72
83
|
source: string,
|
|
73
84
|
target: string,
|
|
74
85
|
options: DamerauLevenshteinDistanceOptions & { search: boolean }
|
|
75
86
|
): number | SubstringDistanceResult
|
|
76
|
-
|
|
87
|
+
|
|
88
|
+
export function DiceCoefficient (str1: string, str2: string): number
|
|
89
|
+
|
|
90
|
+
export function HammingDistance (str1: string, str2: string, ignoreCase: boolean): number
|
|
@@ -20,16 +20,19 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
20
20
|
THE SOFTWARE.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
export
|
|
23
|
+
export class NounInflector {
|
|
24
24
|
pluralize (token: string): string
|
|
25
25
|
singularize (token: string): string
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
export
|
|
28
|
+
export class NounInflectorFr extends NounInflector {}
|
|
29
|
+
export class NounInflectorJa extends NounInflector {}
|
|
30
|
+
|
|
31
|
+
export let CountInflector: {
|
|
29
32
|
nth: (i: number) => string
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
export
|
|
35
|
+
export class PresentVerbInflector {
|
|
33
36
|
pluralize (token: string): string
|
|
34
37
|
singularize (token: string): string
|
|
35
38
|
}
|
|
@@ -22,14 +22,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
22
22
|
THE SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
import { Tokenizer } from '../tokenizers'
|
|
26
|
+
|
|
27
|
+
declare interface NGramsStats {
|
|
28
|
+
ngrams: string[][]
|
|
29
|
+
frequencies: { [key: string]: number | undefined }
|
|
30
|
+
Nr: { [key: number]: number | undefined }
|
|
31
|
+
numberOfNgrams: number
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare interface NGramsFunctions {
|
|
35
|
+
// To support function overloads where the return type can differ depending on a parameter
|
|
36
|
+
// value, method signatures are necessary. Key collisions occur with property signatures.
|
|
37
|
+
/* eslint-disable @typescript-eslint/method-signature-style */
|
|
38
|
+
setTokenizer (t: Tokenizer): void
|
|
39
|
+
ngrams (sequence: string | string[], n: number, startSymbol: string | undefined, endSymbol: string | undefined, stats: true): NGramsStats
|
|
40
|
+
ngrams (sequence: string | string[], n: number, startSymbol?: string, endSymbol?: string, stats?: boolean): string[][]
|
|
41
|
+
bigrams (sequence: string | string[], startSymbol: string | undefined, endSymbol: string | undefined, stats: true): NGramsStats
|
|
42
|
+
bigrams (sequence: string | string[], startSymbol?: string, endSymbol?: string, stats?: boolean): string[][]
|
|
43
|
+
trigrams (sequence: string | string[], startSymbol: string | undefined, endSymbol: string | undefined, stats: true): NGramsStats
|
|
44
|
+
trigrams (sequence: string | string[], startSymbol?: string, endSymbol?: string, stats?: boolean): string[][]
|
|
45
|
+
multrigrams (sequence: string | string[], n: number, startSymbol: string | undefined, endSymbol: string | undefined, stats: true): NGramsStats
|
|
46
|
+
multrigrams (sequence: string | string[], n: number, startSymbol?: string, endSymbol?: string, stats?: boolean): string[][]
|
|
47
|
+
/* eslint-enable @typescript-eslint/method-signature-style */
|
|
32
48
|
}
|
|
33
49
|
|
|
34
|
-
export
|
|
35
|
-
export
|
|
50
|
+
export let NGrams: NGramsFunctions
|
|
51
|
+
export let NGramsZH: NGramsFunctions
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2022, Dylan R. E. Moonfire <https://github.com/dmoonfire>,
|
|
3
|
+
Emily Marigold Klassen <https://github.com/forivall>,
|
|
4
|
+
Hugo W.L. ter Doest <https://github.com/Hugo-ter-Doest>
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export function normalize (tokens: string | string[]): string[]
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
27
|
+
export function normalize_ja (str: string): string
|
|
28
|
+
export function removeDiacritics (str: string): string
|
|
@@ -20,22 +20,24 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
20
20
|
THE SOFTWARE.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
export interface Phonetic {
|
|
23
|
+
export interface Phonetic<T> {
|
|
24
24
|
compare: (stringA: string, stringB: string) => boolean
|
|
25
|
-
|
|
25
|
+
tokenizeAndPhoneticize: (str: string, phoneticsProcessor: Phonetic<T>, keepStops: boolean) => T
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
compare: (stringA: string, stringB: string) => boolean
|
|
28
|
+
export let Metaphone: Phonetic<string> & {
|
|
30
29
|
process: (token: string, maxLength?: number) => string
|
|
31
30
|
}
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
compare: (stringA: string, stringB: string) => boolean
|
|
32
|
+
export let SoundEx: Phonetic<string> & {
|
|
35
33
|
process: (token: string, maxLength?: number) => string
|
|
36
34
|
}
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
compare: (stringA: string, stringB: string) => boolean
|
|
36
|
+
export let DoubleMetaphone: Phonetic<string[]> & {
|
|
40
37
|
process: (token: string, maxLength?: number) => string[]
|
|
38
|
+
isVowel: (c: string) => string | RegExpMatchArray | null
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export let SoundExDM: Phonetic<string> & {
|
|
42
|
+
process: (word: string, codeLength?: number) => string
|
|
41
43
|
}
|
|
@@ -21,7 +21,20 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
21
21
|
THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
+
import { Stemmer } from '../stemmers'
|
|
25
|
+
|
|
26
|
+
export type AfinnLanguageType = 'afinn'
|
|
27
|
+
export type AfinnLanguage = 'English' | 'Spanish' | 'Portuguese'
|
|
28
|
+
|
|
29
|
+
export type SenticonLanguageType = 'senticon'
|
|
30
|
+
export type SenticonLanguage = 'Spanish' | 'English' | 'Galician' | 'Catalan' | 'Basque'
|
|
31
|
+
|
|
32
|
+
export type PatternLanguageType = 'pattern'
|
|
33
|
+
export type PatternLanguage = 'Dutch' | 'Italian' | 'English' | 'French'
|
|
34
|
+
|
|
24
35
|
export declare class SentimentAnalyzer {
|
|
25
|
-
constructor (language:
|
|
36
|
+
constructor (language: AfinnLanguage, stemmer: Stemmer, type: AfinnLanguageType)
|
|
37
|
+
constructor (language: SenticonLanguage, stemmer: Stemmer, type: SenticonLanguageType)
|
|
38
|
+
constructor (language: PatternLanguage, stemmer: Stemmer, type: PatternLanguageType)
|
|
26
39
|
getSentiment (words: string[]): number
|
|
27
40
|
}
|
|
@@ -20,26 +20,27 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
20
20
|
THE SOFTWARE.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export interface Stemmer {
|
|
23
|
+
declare interface Stemmer {
|
|
26
24
|
stem: (token: string) => string
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
addStopWord: (stopWord: string) => void
|
|
26
|
+
addStopWords: (moreStopWords: string[]) => void
|
|
27
|
+
removeStopWord: (stopWord: string) => void
|
|
28
|
+
removeStopWords: (moreStopWords: string[]) => void
|
|
29
|
+
tokenizeAndStem: (text: string, keepStops?: boolean) => string[]
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
32
|
+
export let CarryStemmerFr: Stemmer
|
|
33
|
+
export let LancasterStemmer: Stemmer
|
|
34
|
+
export let PorterStemmer: Stemmer
|
|
35
|
+
export let PorterStemmerDe: Stemmer
|
|
36
|
+
export let PorterStemmerEs: Stemmer
|
|
37
|
+
export let PorterStemmerFa: Stemmer
|
|
38
|
+
export let PorterStemmerFr: Stemmer
|
|
39
|
+
export let PorterStemmerIt: Stemmer
|
|
40
|
+
export let PorterStemmerNl: Stemmer
|
|
41
|
+
export let PorterStemmerNo: Stemmer
|
|
42
|
+
export let PorterStemmerPt: Stemmer
|
|
43
|
+
export let PorterStemmerRu: Stemmer
|
|
44
|
+
export let PorterStemmerSv: Stemmer
|
|
45
|
+
export let StemmerId: Stemmer
|
|
46
|
+
export let StemmerJa: Stemmer
|
|
@@ -23,20 +23,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
23
23
|
THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
import { Tokenizer } from '../tokenizers'
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
declare type TfIdfCallback = (i: number, measure: number, key?: string) => void
|
|
29
|
+
|
|
30
|
+
declare interface TfIdfTerm {
|
|
29
31
|
term: string
|
|
32
|
+
tf: number
|
|
33
|
+
idf: number
|
|
30
34
|
tfidf: number
|
|
31
35
|
}
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
declare type TfIdfDocument = { __key: string | undefined } | { [key: string]: number | undefined }
|
|
38
|
+
|
|
39
|
+
export class TfIdf {
|
|
40
|
+
documents: TfIdfDocument | undefined
|
|
41
|
+
_idfCache: { [key: string]: number } | undefined
|
|
42
|
+
|
|
43
|
+
constructor (deserialized?: { documents: TfIdfDocument[] })
|
|
44
|
+
idf (term: string, force?: boolean): number
|
|
45
|
+
addDocument (document: string | string[], key?: string, restoreCache?: boolean): void
|
|
37
46
|
addFileSync (path: string, encoding?: string, key?: string, restoreCache?: boolean): void
|
|
38
|
-
tfidf (terms: string, d: number):
|
|
39
|
-
tfidfs (terms: string, callback
|
|
40
|
-
tfidfs (terms: string[], callback: TfIdfCallback): void
|
|
47
|
+
tfidf (terms: string | string[], d: number): number
|
|
48
|
+
tfidfs (terms: string | string[], callback?: TfIdfCallback): number[]
|
|
41
49
|
listTerms (d: number): TfIdfTerm[]
|
|
50
|
+
setTokenizer (t: Tokenizer): void
|
|
51
|
+
setStopwords (customStopwords: string[]): boolean
|
|
52
|
+
static tf (term: string, document: TfIdfDocument): number
|
|
42
53
|
}
|
|
@@ -20,83 +20,117 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
20
20
|
THE SOFTWARE.
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
export interface Tokenizer {
|
|
26
|
-
tokenize: (text: string) => string[]
|
|
23
|
+
declare class Tokenizer {
|
|
24
|
+
trim: (array: string[]) => string[]
|
|
27
25
|
}
|
|
28
|
-
|
|
26
|
+
|
|
27
|
+
export class AggressiveTokenizerNl extends Tokenizer {
|
|
29
28
|
tokenize (text: string): string[]
|
|
30
29
|
}
|
|
31
|
-
|
|
30
|
+
|
|
31
|
+
export class AggressiveTokenizerFa extends Tokenizer {
|
|
32
|
+
clearEmptyString (array: string[]): string[]
|
|
33
|
+
clearText (text: string): string
|
|
32
34
|
tokenize (text: string): string[]
|
|
33
35
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
discardEmpty?: boolean | undefined
|
|
37
|
-
}
|
|
38
|
-
export declare class RegexpTokenizer implements Tokenizer {
|
|
39
|
-
constructor (options: RegexTokenizerOptions)
|
|
36
|
+
|
|
37
|
+
export class AggressiveTokenizerFr extends Tokenizer {
|
|
40
38
|
tokenize (text: string): string[]
|
|
41
39
|
}
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
|
|
41
|
+
export class AggressiveTokenizerDe extends Tokenizer {
|
|
44
42
|
tokenize (text: string): string[]
|
|
45
43
|
}
|
|
46
|
-
|
|
44
|
+
|
|
45
|
+
export class AggressiveTokenizerRu extends Tokenizer {
|
|
46
|
+
withoutEmpty (array: string[]): string[]
|
|
47
|
+
clearText (text: string): string
|
|
47
48
|
tokenize (text: string): string[]
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
+
|
|
51
|
+
export class AggressiveTokenizerEs extends Tokenizer {
|
|
50
52
|
tokenize (text: string): string[]
|
|
51
53
|
}
|
|
52
|
-
|
|
54
|
+
|
|
55
|
+
export class AggressiveTokenizerIt extends Tokenizer {
|
|
53
56
|
tokenize (text: string): string[]
|
|
54
57
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
|
|
59
|
+
export class AggressiveTokenizerPl extends Tokenizer {
|
|
60
|
+
withoutEmpty (array: string[]): string[]
|
|
61
|
+
clearText (text: string): string
|
|
59
62
|
tokenize (text: string): string[]
|
|
60
63
|
}
|
|
61
|
-
|
|
64
|
+
|
|
65
|
+
export class AggressiveTokenizerPt extends Tokenizer {
|
|
66
|
+
withoutEmpty (array: string[]): string[]
|
|
62
67
|
tokenize (text: string): string[]
|
|
63
68
|
}
|
|
64
|
-
|
|
69
|
+
|
|
70
|
+
export class AggressiveTokenizerNo extends Tokenizer {
|
|
65
71
|
tokenize (text: string): string[]
|
|
66
72
|
}
|
|
67
|
-
|
|
73
|
+
|
|
74
|
+
export class AggressiveTokenizerSv extends Tokenizer {
|
|
68
75
|
tokenize (text: string): string[]
|
|
69
76
|
}
|
|
70
|
-
|
|
77
|
+
|
|
78
|
+
export class AggressiveTokenizerVi extends Tokenizer {
|
|
71
79
|
tokenize (text: string): string[]
|
|
72
80
|
}
|
|
73
|
-
|
|
81
|
+
|
|
82
|
+
export class AggressiveTokenizerId extends Tokenizer {
|
|
74
83
|
tokenize (text: string): string[]
|
|
75
84
|
}
|
|
76
|
-
|
|
85
|
+
|
|
86
|
+
export class AggressiveTokenizer extends Tokenizer {
|
|
77
87
|
tokenize (text: string): string[]
|
|
78
88
|
}
|
|
79
|
-
|
|
89
|
+
|
|
90
|
+
export class CaseTokenizer extends Tokenizer {
|
|
80
91
|
tokenize (text: string): string[]
|
|
81
92
|
}
|
|
82
|
-
|
|
83
|
-
|
|
93
|
+
|
|
94
|
+
declare interface RegexTokenizerOptions {
|
|
95
|
+
pattern?: RegExp
|
|
96
|
+
discardEmpty?: boolean
|
|
97
|
+
gaps?: boolean
|
|
84
98
|
}
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
|
|
100
|
+
export class RegexpTokenizer extends Tokenizer {
|
|
101
|
+
constructor (opts?: RegexTokenizerOptions)
|
|
102
|
+
tokenize (text: string): string[] | null
|
|
87
103
|
}
|
|
88
|
-
|
|
89
|
-
|
|
104
|
+
|
|
105
|
+
declare interface OrthographyTokenizerOptions extends RegexTokenizerOptions {
|
|
106
|
+
language: string
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export class OrthographyTokenizer extends RegexpTokenizer {
|
|
110
|
+
constructor (options: OrthographyTokenizerOptions)
|
|
90
111
|
}
|
|
91
|
-
|
|
112
|
+
|
|
113
|
+
export class WordTokenizer extends RegexpTokenizer {
|
|
114
|
+
constructor (options?: RegexTokenizerOptions)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export class WordPunctTokenizer extends RegexpTokenizer {
|
|
118
|
+
constructor (options?: RegexTokenizerOptions)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export class TreebankWordTokenizer extends Tokenizer {
|
|
92
122
|
tokenize (text: string): string[]
|
|
93
123
|
}
|
|
94
|
-
|
|
124
|
+
|
|
125
|
+
export class TokenizerJa extends Tokenizer {
|
|
126
|
+
removePuncTokens (tokens: string[]): string[]
|
|
95
127
|
tokenize (text: string): string[]
|
|
96
128
|
}
|
|
97
|
-
|
|
129
|
+
|
|
130
|
+
export class SentenceTokenizer extends Tokenizer {
|
|
98
131
|
tokenize (text: string): string[]
|
|
99
132
|
}
|
|
100
|
-
|
|
133
|
+
|
|
134
|
+
export class SentenceTokenizerNew extends Tokenizer {
|
|
101
135
|
tokenize (text: string): string[]
|
|
102
136
|
}
|
|
@@ -21,7 +21,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
21
21
|
THE SOFTWARE.
|
|
22
22
|
*/
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
export declare type TransliteratorFunction = (s: string) => string
|
|
26
|
-
// and then export the Japanese transliterator as a function of that type
|
|
27
|
-
export declare let TransliterateJa: TransliteratorFunction
|
|
24
|
+
export let TransliterateJa: (s: string) => string
|
|
@@ -22,12 +22,13 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
22
22
|
THE SOFTWARE.
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
export
|
|
25
|
+
export class Trie {
|
|
26
26
|
constructor (caseSensitive?: boolean)
|
|
27
|
-
addString (
|
|
28
|
-
addStrings (
|
|
29
|
-
contains (
|
|
30
|
-
findPrefix (
|
|
31
|
-
findMatchesOnPath (
|
|
32
|
-
keysWithPrefix (
|
|
27
|
+
addString (string: string): boolean
|
|
28
|
+
addStrings (list: string[]): void
|
|
29
|
+
contains (string: string): boolean
|
|
30
|
+
findPrefix (search: string): string[]
|
|
31
|
+
findMatchesOnPath (search: string): string[]
|
|
32
|
+
keysWithPrefix (prefix: string): string[]
|
|
33
|
+
getSize (): number
|
|
33
34
|
}
|
|
@@ -23,21 +23,49 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
23
23
|
THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
export
|
|
26
|
+
export let stopwords: string[]
|
|
27
|
+
|
|
28
|
+
declare class Bag<T> {
|
|
29
|
+
add (element: T): Bag<T>
|
|
30
|
+
isEmpty (): boolean
|
|
31
|
+
contains (item: T): boolean
|
|
32
|
+
unpack (): T[]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
declare class DirectedEdge {
|
|
36
|
+
constructor (start: number, end: number, weight: number)
|
|
37
|
+
weight (): number
|
|
38
|
+
from (): number
|
|
39
|
+
to (): number
|
|
40
|
+
toString (): string
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export class EdgeWeightedDigraph {
|
|
44
|
+
edgesNum: number
|
|
45
|
+
adj: Array<Bag<DirectedEdge>>
|
|
46
|
+
|
|
27
47
|
add (start: number, end: number, weight: number): void
|
|
48
|
+
addEdge (e: DirectedEdge): void
|
|
28
49
|
v (): number
|
|
29
50
|
e (): number
|
|
51
|
+
getAdj (v: number): DirectedEdge[]
|
|
52
|
+
edges (): DirectedEdge[]
|
|
53
|
+
toString (): string
|
|
30
54
|
}
|
|
31
55
|
|
|
32
|
-
export
|
|
33
|
-
constructor (diagraph: EdgeWeightedDigraph,
|
|
56
|
+
export class ShortestPathTree {
|
|
57
|
+
constructor (diagraph: EdgeWeightedDigraph, start: number)
|
|
58
|
+
relaxEdge (e: DirectedEdge): void
|
|
59
|
+
relaxVertex (digraph: EdgeWeightedDigraph, vertex: number, tree: ShortestPathTree): void
|
|
34
60
|
getDistTo (vertex: number): number
|
|
35
61
|
hasPathTo (vertex: number): boolean
|
|
36
62
|
pathTo (vertex: number): number[]
|
|
37
63
|
}
|
|
38
64
|
|
|
39
|
-
export
|
|
40
|
-
constructor (diagraph: EdgeWeightedDigraph,
|
|
65
|
+
export class LongestPathTree {
|
|
66
|
+
constructor (diagraph: EdgeWeightedDigraph, start: number)
|
|
67
|
+
relaxEdge (e: DirectedEdge): void
|
|
68
|
+
relaxVertex (digraph: EdgeWeightedDigraph, vertex: number, tree: LongestPathTree): void
|
|
41
69
|
getDistTo (vertex: number): number
|
|
42
70
|
hasPathTo (vertex: number): boolean
|
|
43
71
|
pathTo (vertex: number): number[]
|
|
@@ -23,20 +23,76 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
23
23
|
THE SOFTWARE.
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
declare interface DataPtr {
|
|
27
|
+
pointerSymbol: string
|
|
27
28
|
synsetOffset: number
|
|
28
29
|
pos: string
|
|
30
|
+
sourceTarget: string
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
declare interface DataRecord {
|
|
34
|
+
synsetOffset: number
|
|
35
|
+
lexFilenum: number
|
|
36
|
+
pos: string
|
|
37
|
+
wCnt: number
|
|
29
38
|
lemma: string
|
|
30
39
|
synonyms: string[]
|
|
40
|
+
lexId: string
|
|
41
|
+
ptrs: DataPtr[]
|
|
31
42
|
gloss: string
|
|
43
|
+
def: string
|
|
44
|
+
exp: string[]
|
|
32
45
|
}
|
|
33
46
|
|
|
34
|
-
|
|
47
|
+
declare type DataRecordCallback = (results: DataRecord) => void
|
|
48
|
+
declare type DataRecordsCallback = (results: DataRecord[]) => void
|
|
35
49
|
|
|
36
|
-
|
|
50
|
+
declare class DataFile {
|
|
51
|
+
constructor (dataDir: string, name: string)
|
|
52
|
+
get (location: number, callback: DataRecordCallback): void
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
declare interface IndexRecord {
|
|
56
|
+
lemma: string
|
|
57
|
+
pos: string
|
|
58
|
+
ptrSymbol: string[]
|
|
59
|
+
senseCnt: number
|
|
60
|
+
tagsenseCnt: number
|
|
61
|
+
synsetOffset: number[]
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
declare type IndexRecordCallback = (results: IndexRecord) => void
|
|
65
|
+
|
|
66
|
+
declare interface IndexFind {
|
|
67
|
+
status: string
|
|
68
|
+
key: string
|
|
69
|
+
line: string
|
|
70
|
+
tokens: string[]
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
declare type IndexFindCallback = (results: IndexFind) => void
|
|
74
|
+
|
|
75
|
+
declare class IndexFile {
|
|
76
|
+
constructor (dataDir: string, name: string)
|
|
77
|
+
lookup (word: string, callback: IndexRecordCallback): void
|
|
78
|
+
lookupFromFile (word: string, callback: IndexRecordCallback): void
|
|
79
|
+
find (word: string, callback: IndexFindCallback): void
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
declare interface WordNetLookupFile {
|
|
83
|
+
index: IndexFile
|
|
84
|
+
data: DataFile
|
|
85
|
+
}
|
|
37
86
|
|
|
38
|
-
export
|
|
39
|
-
constructor (
|
|
40
|
-
|
|
41
|
-
|
|
87
|
+
export class WordNet {
|
|
88
|
+
constructor (dataDir?: string)
|
|
89
|
+
get (synsetOffset: number, pos: string, callback: DataRecordCallback): void
|
|
90
|
+
lookup (word: string, callback: DataRecordsCallback): void
|
|
91
|
+
lookupFromFiles (files: WordNetLookupFile[], results: DataRecord[], word: string, callback: DataRecordsCallback): void
|
|
92
|
+
pushResults (data: DataFile, results: DataRecord[], offsets: number[], callback: DataRecordsCallback): void
|
|
93
|
+
loadResultSynonyms (synonyms: DataRecord[], results: DataRecord[], callback: DataRecordsCallback): void
|
|
94
|
+
loadSynonyms (synonyms: DataRecord[], results: DataRecord[], ptrs: DataPtr[], callback: DataRecordsCallback): void
|
|
95
|
+
lookupSynonyms (word: string, callback: DataRecordsCallback): void
|
|
96
|
+
getSynonyms (record: DataRecord, callback: DataRecordsCallback): void
|
|
97
|
+
getDataFile (pos: string): DataFile
|
|
42
98
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "natural",
|
|
3
3
|
"description": "General natural language (tokenizing, stemming (English, Russian, Spanish), part-of-speech tagging, sentiment analysis, classification, inflection, phonetics, tfidf, WordNet, jaro-winkler, Levenshtein distance, Dice's Coefficient) facilities for node.",
|
|
4
|
-
"version": "6.
|
|
4
|
+
"version": "6.3.1",
|
|
5
5
|
"homepage": "https://github.com/NaturalNode/natural",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|