UNPKG

@gitbook/pinyin-pro

Version:

GitBook's fork of pinyin-pro, a fantastic open-source package for turning Chinese characters to pinyin.

49 lines (48 loc) 1.46 kB
import type { SurnameMode } from "../type"; export declare const enum TokenizationAlgorithm { ReverseMaxMatch = 1, MaxProbability = 2, MinTokenization = 3 } /** * @description: AC 自动机 */ export interface Pattern { zh: string; pinyin: string; probability: number; length: number; priority: number; dict: string | symbol; pos?: string; node?: TrieNode; } export interface MatchPattern extends Pattern { index: number; } declare class TrieNode { children: Map<string, TrieNode>; fail: TrieNode | null; patterns: Pattern[]; prefix: string; parent: TrieNode | null; key: string; constructor(parent: TrieNode | null, prefix?: string, key?: string); } export declare class AC { root: TrieNode; dictMap: Map<string | Symbol, Set<Pattern>>; queues: TrieNode[][]; constructor(); build(patternList: Pattern[]): void; buildTrie(patternList: Pattern[]): void; buildFailPointer(): void; addPatternToDictMap(pattern: Pattern): void; addNodeToQueues(trieNode: TrieNode): void; insertPattern(patterns: Pattern[], pattern: Pattern): void; removeDict(dictName: string | symbol): void; match(text: string, surname: SurnameMode): MatchPattern[]; search(text: string, surname: SurnameMode, algorithm?: TokenizationAlgorithm): MatchPattern[]; } export declare function getACTree(): AC; export {};