natural 6.2.0 → 6.3.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.
@@ -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
- export declare interface TaggedWord {
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
- export declare type PunctuationFunction = () => string[] | ''
32
+ declare type PunctuationFunction = () => string[] | ''
33
33
 
34
- export declare interface TaggedSentence {
34
+ declare interface TaggedSentence {
35
35
  tags: TaggedWord[]
36
- punct?: PunctuationFunction
36
+ punct: PunctuationFunction
37
37
  }
38
38
 
39
- export declare type CallbackFunction = (obj: SentenceAnalyzer) => void
39
+ declare type CallbackFunction = (obj: SentenceAnalyzer) => void
40
40
 
41
- export declare type SenType = string
41
+ declare enum SenType {
42
+ Unknown = 'UNKNOWN',
43
+ Command = 'COMMAND',
44
+ Interrogative = 'INTERROGATIVE',
45
+ Exclamatory = 'EXCLAMATORY',
46
+ Declarative = 'DECLARATIVE',
47
+ }
42
48
 
43
- export declare class SentenceAnalyzer {
49
+ export class SentenceAnalyzer {
44
50
  posObj: TaggedSentence
45
- senType: string | null
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 | null
51
- predicateToString (): string | null
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
- export declare class Predicate {
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?: string | undefined
31
- function?: ((tagged_sentence: string[][], i: number, parameter: string) => boolean) | undefined
32
- evaluate (taggedSentence: string[][], position: number): boolean
47
+ parameter2: string | undefined
48
+ meta: RuleTemplatesItem
49
+ evaluate (sentence: Sentence, position: number): boolean
33
50
  }
34
51
 
35
- export declare class TransformationRule {
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
- apply (taggedSentence: string[][], position: number): void
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 declare class RuleSet {
45
- constructor (filename: string)
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 declare class Lexicon {
50
- constructor (filename: string, defaultCategory: string)
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
- export interface TaggedWord {
111
+ declare interface BrillPOSTaggedWord {
57
112
  token: string
58
113
  tag: string
59
114
  }
60
115
 
61
- export declare class Sentence {
116
+ export class Sentence {
62
117
  constructor (data?: string[])
63
- taggedWords: TaggedWord[]
118
+ taggedWords: BrillPOSTaggedWord[]
64
119
  addTaggedWord (token: string, tag: string): void
65
120
  clone (): Sentence
66
121
  }
67
122
 
68
- export declare class BrillPOSTagger {
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
- export interface BayesClassifierClassification {
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
- export type BayesClassifierCallback = (err: any, classifier: BayesClassifier) => void
8
-
9
- declare class BayesClassifier {
10
- events: events.EventEmitter
22
+ declare type ApparatusObservation = number[] | { [key: string]: number | string | boolean | undefined }
11
23
 
12
- constructor (stem?: Stemmer)
13
- addDocument (text: string, stem: string): void
14
- addDocument (text: string[], stem: string): void
24
+ declare class ApparatusClassifier {
25
+ addExample (observation: ApparatusObservation, label: string): void
26
+ classify (observation: ApparatusObservation): string
15
27
  train (): void
16
- classify (observation: string): string
17
- getClassifications (observation: string): BayesClassifierClassification[]
18
- save (filename: string, callback: BayesClassifierCallback): void
19
- static load (filename: string, stemmer: Stemmer, callback: BayesClassifierCallback): void
20
- static restore (classifier: any, stemmer?: Stemmer): BayesClassifier
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
- interface LogisticRegressionClassifierClassification {
62
+ // End apparatus declarations
63
+
64
+ declare interface ClassifierDoc {
24
65
  label: string
25
- value: number
66
+ text: string
67
+ }
68
+
69
+ declare interface ClassifierOptions {
70
+ keepStops?: boolean
26
71
  }
27
72
 
28
- export type LogisticRegressionCallback = (err: any, result: LogisticRegressionClassifier) => void
73
+ declare type ClassifierCallback = (err: NodeJS.ErrnoException | null, classifier?: ClassifierBase) => void
29
74
 
30
- declare class LogisticRegressionClassifier {
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
- addDocument (text: string, stem: string): void
34
- addDocument (text: string[], stem: string): void
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
- classify (observation: string): string
37
- getClassifications (observation: string): LogisticRegressionClassifierClassification[]
38
- save (filename: string, callback: LogisticRegressionCallback): void
39
- static load (filename: string, stemmer: Stemmer, callback: LogisticRegressionCallback): void
40
- static restore (classifier: any, stemmer?: Stemmer): LogisticRegressionClassifier
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
- export type MaxEntClassifierCallback = (err: any, result: MaxEntClassifier) => void
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 class MaxEntClassifier {
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, approxExpectation: object): void
53
- getClassifications (b: Context): array
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
- static load (filename: string, elementClass: Element, callback: MaxEntClassifierCallback): void
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
- export type FeatureFunction = (x: Element) => number
148
+ declare type FeatureFunction = (x: Element) => number
60
149
 
61
- declare class Feature {
150
+ export class Feature {
62
151
  evaluate: FeatureFunction
63
152
  name: string
64
- parameters: array
153
+ parameters: string[]
65
154
 
66
- constructor (f: FeatureFunction, name: string, parameters: array)
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: array, B: array): number
158
+ expectation (p: Distribution, A: string[], B: Context[]): number
70
159
  observedExpectation (sample: Sample): number
71
160
  }
72
161
 
73
- declare class FeatureSet {
74
- features: array
75
- map: object
162
+ export class FeatureSet {
163
+ features: Feature[]
164
+ map: { [key: string]: boolean | undefined }
76
165
 
77
- addFeature (feature: FeatureFunction): boolean
78
- featureExists (feature: FeatureFunction): boolean
79
- getFeatures (): array
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
- export type SampleCallback = (err: any, result: Sample) => void
173
+ declare type SampleCallback = (err: NodeJS.ErrnoException | null, sample?: Sample | null) => void
85
174
 
86
- declare class Sample {
87
- frequencyOfContext: object
88
- frequency: object
89
- classes: array
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 (): array
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
- declare class Context {
192
+ export class Context {
193
+ key: string | undefined
194
+
195
+ constructor (data: any)
104
196
  toString (): string
105
197
  }
106
198
 
107
- declare class Element {
108
- constructor (a: any, b: Context)
109
- key (): string
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
- declare class SEElement extends Element {
208
+ export class SEElement extends Element {
209
+ constructor (a: string, b: Context)
113
210
  generateFeatures (featureSet: FeatureSet): void
114
211
  }
115
212
 
116
- declare class POSElement extends Element {
213
+ export class POSElement extends Element {
214
+ constructor (a: string, b: Context)
117
215
  generateFeatures (featureSet: FeatureSet): void
118
216
  }
119
217
 
120
- declare class GISScaler {
218
+ export class GISScaler {
121
219
  constructor (featureSet: FeatureSet, sample: Sample)
122
- calculateMaxSumOfFeatures (): void
220
+ calculateMaxSumOfFeatures (): boolean
123
221
  addCorrectionFeature (): void
124
222
  run (maxIterations: number, minImprovement: number): Distribution
125
223
  }
126
224
 
127
- declare class MESentence {
128
- constructor (data: array): void
225
+ export class MESentence {
226
+ constructor (data?: string[])
129
227
  generateSampleElements (sample: Sample): void
130
228
  }
131
229
 
132
- declare class MECorpus {
230
+ export class MECorpus {
231
+ constructor (data: string | Corpus, BROWN: number, SentenceClass: typeof Sentence)
133
232
  generateSample (): Sample
134
- splitInTrainAndTest (percentageTrain: number): array
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
- export interface JaroWinklerOptions {
27
- dj?: number | undefined
28
- // default: false
29
- ignoreCase?: boolean | undefined
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 interface DamerauLevenshteinDistanceOptions {
32
+ export function JaroWinklerDistance (s1: string, s2: string, options: JaroWinklerOptions): number
33
+
34
+ declare interface DamerauLevenshteinDistanceOptions {
34
35
  /** @default 1 */
35
- insertion_cost?: number | undefined
36
+ insertion_cost?: number
36
37
  /** @default 1 */
37
- deletion_cost?: number | undefined
38
+ deletion_cost?: number
38
39
  /** @default 1 */
39
- substitution_cost?: number | undefined
40
+ substitution_cost?: number
40
41
  /** @default 1 */
41
- transposition_cost?: number | undefined
42
+ transposition_cost?: number
42
43
  /** @default false */
43
- search?: boolean | undefined
44
+ search?: boolean
44
45
  /** @default false */
45
- restricted?: boolean | undefined
46
- damerau?: boolean | undefined
46
+ restricted?: boolean
47
+ damerau?: boolean
47
48
  }
48
- interface SubstringDistanceResult {
49
+
50
+ declare interface SubstringDistanceResult {
49
51
  substring: string
50
52
  distance: number
53
+ offset: number
51
54
  }
52
- export declare function LevenshteinDistance (source: string, target: string, options?: DamerauLevenshteinDistanceOptions): number
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 | undefined }
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
- export declare function DiceCoefficient (str1: string, str2: string): number
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 declare class NounInflector {
23
+ export class NounInflector {
24
24
  pluralize (token: string): string
25
25
  singularize (token: string): string
26
26
  }
27
27
 
28
- export declare let CountInflector: {
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 declare class PresentVerbInflector {
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
- declare interface ngramsFunctions {
26
- bigrams: (sequence: string | string[], startSymbol?: string, endSymbol?: string) => string[][]
27
- // bigrams: (sequence: string[], startSymbol?: string, endSymbol?: string) => string[][]
28
- trigrams: (sequence: string | string[], startSymbol?: string, endSymbol?: string) => string[][]
29
- // trigrams: (sequence: string[], startSymbol?: string, endSymbol?: string) => string[][]
30
- ngrams: (sequence: string | string[], n: number, startSymbol?: string, endSymbol?: string) => string[][]
31
- // ngrams: (sequence: string[], n: number, startSymbol?: string, endSymbol?: string) => string[][]
25
+ import Tokenizer from '../tokenizers/tokenizer'
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 declare let NGrams: ngramsFunctions
35
- export declare let NGramsZH: ngramsFunctions
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
- process: (token: string, maxLength?: number) => string
25
+ tokenizeAndPhoneticize: (str: string, phoneticsProcessor: Phonetic<T>, keepStops: boolean) => T
26
26
  }
27
27
 
28
- declare let Metaphone: {
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
- declare let SoundEx: {
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
- declare let DoubleMetaphone: {
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: string, stemmer: Stemmer, vocabulary: string)
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
- // Based on the type definitions on definitely typed
24
-
25
- export interface Stemmer {
23
+ declare interface Stemmer {
26
24
  stem: (token: string) => string
27
- tokenizeAndStem: (text: string) => string[]
28
- attach: () => void
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
- declare const CarryStemmerFr: Stemmer
32
- declare const LancasterStemmer: Stemmer
33
- declare const PorterStemmer: Stemmer
34
- declare const PorterStemmerEs: Stemmer
35
- declare const PorterStemmerFa: Stemmer
36
- declare const PorterStemmerFr: Stemmer
37
- declare const PorterStemmerDe: Stemmer
38
- declare const PorterStemmerIt: Stemmer
39
- declare const PorterStemmerNl: Stemmer
40
- declare const PorterStemmerNo: Stemmer
41
- declare const PorterStemmerPt: Stemmer
42
- declare const PorterStemmerRu: Stemmer
43
- declare const PorterStemmerSv: Stemmer
44
- declare const StemmerId: Stemmer
45
- declare const StemmerJa: Stemmer
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
- export type TfIdfCallback = (i: number, measure: number) => void
26
+ import Tokenizer from '../tokenizers/tokenizer'
27
27
 
28
- export interface TfIdfTerm {
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
- export declare class TfIdf {
34
- constructor (deserialized?: any)
35
- addDocument (document: string, key?: string, restoreCache?: boolean): void
36
- addDocument (document: string[], key?: string, restoreCache?: boolean): void
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): void
39
- tfidfs (terms: string, callback: TfIdfCallback): void
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
- // Based on type definitions on Definitely Typed
24
-
25
- export interface Tokenizer {
26
- tokenize: (text: string) => string[]
23
+ declare class Tokenizer {
24
+ trim: (array: string[]) => string[]
27
25
  }
28
- export declare class WordTokenizer implements Tokenizer {
26
+
27
+ export class AggressiveTokenizerNl extends Tokenizer {
29
28
  tokenize (text: string): string[]
30
29
  }
31
- export declare class TreebankWordTokenizer implements Tokenizer {
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
- export interface RegexTokenizerOptions {
35
- pattern?: RegExp | undefined
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
- export declare class OrthographyTokenizer implements Tokenizer {
43
- constructor (options: RegexTokenizerOptions & { language: string })
40
+
41
+ export class AggressiveTokenizerDe extends Tokenizer {
44
42
  tokenize (text: string): string[]
45
43
  }
46
- export declare class WordPunctTokenizer implements Tokenizer {
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
- export declare class SentenceTokenizer implements Tokenizer {
50
+
51
+ export class AggressiveTokenizerEs extends Tokenizer {
50
52
  tokenize (text: string): string[]
51
53
  }
52
- export declare class SentenceTokenizerNew implements Tokenizer {
54
+
55
+ export class AggressiveTokenizerIt extends Tokenizer {
53
56
  tokenize (text: string): string[]
54
57
  }
55
- export declare class CaseTokenizer implements Tokenizer {
56
- tokenize (text: string, preserveApostrophy?: boolean): string[]
57
- }
58
- export declare class AggressiveTokenizer implements Tokenizer {
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
- export declare class AggressiveTokenizerEs implements Tokenizer {
64
+
65
+ export class AggressiveTokenizerPt extends Tokenizer {
66
+ withoutEmpty (array: string[]): string[]
62
67
  tokenize (text: string): string[]
63
68
  }
64
- export declare class AggressiveTokenizerFa implements Tokenizer {
69
+
70
+ export class AggressiveTokenizerNo extends Tokenizer {
65
71
  tokenize (text: string): string[]
66
72
  }
67
- export declare class AggressiveTokenizerFr implements Tokenizer {
73
+
74
+ export class AggressiveTokenizerSv extends Tokenizer {
68
75
  tokenize (text: string): string[]
69
76
  }
70
- export declare class AggressiveTokenizerDe implements Tokenizer {
77
+
78
+ export class AggressiveTokenizerVi extends Tokenizer {
71
79
  tokenize (text: string): string[]
72
80
  }
73
- export declare class AggressiveTokenizerId implements Tokenizer {
81
+
82
+ export class AggressiveTokenizerId extends Tokenizer {
74
83
  tokenize (text: string): string[]
75
84
  }
76
- export declare class AggressiveTokenizerIt implements Tokenizer {
85
+
86
+ export class AggressiveTokenizer extends Tokenizer {
77
87
  tokenize (text: string): string[]
78
88
  }
79
- export declare class AggressiveTokenizerNl implements Tokenizer {
89
+
90
+ export class CaseTokenizer extends Tokenizer {
80
91
  tokenize (text: string): string[]
81
92
  }
82
- export declare class AggressiveTokenizerNo implements Tokenizer {
83
- tokenize (text: string): string[]
93
+
94
+ declare interface RegexTokenizerOptions {
95
+ pattern?: RegExp
96
+ discardEmpty?: boolean
97
+ gaps?: boolean
84
98
  }
85
- export declare class AggressiveTokenizerPl implements Tokenizer {
86
- tokenize (text: string): string[]
99
+
100
+ export class RegexpTokenizer extends Tokenizer {
101
+ constructor (opts?: RegexTokenizerOptions)
102
+ tokenize (text: string): string[] | null
87
103
  }
88
- export declare class AggressiveTokenizerPt implements Tokenizer {
89
- tokenize (text: string): string[]
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
- export declare class AggressiveTokenizerRu implements Tokenizer {
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
- export declare class AggressiveTokenizerSv implements Tokenizer {
124
+
125
+ export class TokenizerJa extends Tokenizer {
126
+ removePuncTokens (tokens: string[]): string[]
95
127
  tokenize (text: string): string[]
96
128
  }
97
- export declare class AggressiveTokenizerVi implements Tokenizer {
129
+
130
+ export class SentenceTokenizer extends Tokenizer {
98
131
  tokenize (text: string): string[]
99
132
  }
100
- export declare class TokenizerJa implements Tokenizer {
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
- // First define a function type for transliterators ...
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 declare class Trie {
25
+ export class Trie {
26
26
  constructor (caseSensitive?: boolean)
27
- addString (text: string): boolean
28
- addStrings (strings: string[]): void
29
- contains (token: string): boolean
30
- findPrefix (text: string): string[]
31
- findMatchesOnPath (text: string): string[]
32
- keysWithPrefix (text: string): string[]
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 declare class EdgeWeightedDigraph {
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 declare class ShortestPathTree {
33
- constructor (diagraph: EdgeWeightedDigraph, startVertex: number)
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 declare class LongestPathTree {
40
- constructor (diagraph: EdgeWeightedDigraph, startVertex: number)
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
- export interface WordNetLookupResults {
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
- export type WordNetLookupCallback = (results: WordNetLookupResults[]) => void
47
+ declare type DataRecordCallback = (results: DataRecord) => void
48
+ declare type DataRecordsCallback = (results: DataRecord[]) => void
35
49
 
36
- export type WordNetGetCallback = (results: WordNetLookupResults) => void
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 declare class WordNet {
39
- constructor (filename?: string)
40
- lookup (word: string, callback: WordNetLookupCallback): void
41
- get (synsetOffset: number, pos: string, callback: WordNetGetCallback): void
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.2.0",
4
+ "version": "6.3.0",
5
5
  "homepage": "https://github.com/NaturalNode/natural",
6
6
  "repository": {
7
7
  "type": "git",
package/tsconfig.json CHANGED
@@ -12,8 +12,7 @@
12
12
  "outDir": "./dist",
13
13
  "esModuleInterop": true,
14
14
  "forceConsistentCasingInFileNames": true,
15
- "strict": true,
16
- "skipLibCheck": true
15
+ "strict": true
17
16
  },
18
17
  "include": [
19
18
  "lib/natural/**/*",