pinyin-pro
Version:
准确率和性能最优异的汉字转拼音库。获取中文拼音、韵母、声母、声调、首字母,支持拼音匹配
50 lines (49 loc) • 1.5 kB
TypeScript
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 const PatternsNormal: Pattern[];
export declare const acTree: AC;
export {};