type FrequencyBuckets = string[][]; /** * 返回指定词表下可用的语言与文件路径映射。 * 需求说明:API 与 Python 版一致,允许传入 best/large/small。 */ declare function availableLanguages(wordlist?: string): Record; declare function getFrequencyList(lang: string, wordlist?: string): FrequencyBuckets; /** * 把频率桶转换成 token -> 概率的映射。 * 注意:这里以 Map 存储,利于快速查找与节省内存。 */ declare function getFrequencyDict(lang: string, wordlist?: string): Map; declare function iterWordlist(lang: string, wordlist?: string): Generator; /** * 计算指定词在给定语言与词表下的概率(0~1)。 * 逻辑基于 Python 版:分词 -> smash 数字 -> 频率合并 -> Jieba 补偿 -> 三位有效数字。 * * 中文增强:当整词不在词库中时,会尝试用单字词频估算,提高覆盖率。 */ declare function wordFrequency(word: string, lang: string, wordlist?: string, minimum?: number): number; declare function zipfFrequency(word: string, lang: string, wordlist?: string, minimum?: number): number; declare function topNList(lang: string, n: number, wordlist?: string, asciiOnly?: boolean): string[]; declare function randomWords(lang?: string, wordlist?: string, nwords?: number, bitsPerWord?: number, asciiOnly?: boolean): string; declare function randomAsciiWords(lang?: string, wordlist?: string, nwords?: number, bitsPerWord?: number): string; /** * 频率与 Zipf/centibel 之间的转换函数。 * 需求说明:Node 版需与 Python 版保持同样的刻度换算,避免词频结果出现系统性偏差。 */ declare function cBToFreq(cB: number): number; declare function cBToZipf(cB: number): number; declare function zipfToFreq(zipf: number): number; declare function freqToZipf(freq: number): number; /** * 简单分词,直接依赖 Intl.Segmenter。 * 需求说明:提供无语言上下文的轻量分词能力,兼容包含标点与否的两种场景。 */ declare function simpleTokenize(text: string, includePunctuation?: boolean): string[]; /** * 针对指定语言进行分词,包含预处理与语言定制化的选择。 * - 会先执行 preprocessText 统一大小写、转写等操作,确保与词表一致。 * - CJK 场景优先尝试 nodejieba(可选依赖),缺失时退回 Intl。 */ declare function tokenize(text: string, lang: string, includePunctuation?: boolean, externalWordlist?: boolean): string[]; /** * “损失性”分词,会在 tokenize 结果基础上做进一步归一化: * - 中文强制简体化,保持与词表键一致。 * - 弯引号统一为直引号。 */ declare function lossyTokenize(text: string, lang: string, includePunctuation?: boolean, externalWordlist?: boolean): string[]; declare function benfordFreq(text: string): number; declare function yearFreq(text: string): number; /** * 返回数字字符串的相对频率估计值。 * 在包含多段数字的 token(例如 12,345.67)中,会拆分每一段再乘积概率。 */ declare function digitFreq(text: string): number; /** * 判断 token 中是否包含需要归一化处理的多位数字。 */ declare function hasDigitSequence(text: string): boolean; /** * 将多位数字归一化为 0 占位形态。 * 需求说明:这样做能在词表中以形态代表大量数字,节省存储空间并保持概率可估计。 */ declare function smashNumbers(text: string): string; /** * 返回词频数据所在的目录。 * 优先使用用户指定的环境变量,未指定时退回到包内自带的 data 目录。 */ declare function getDataDir(): string; /** * 拼接出具体数据文件的绝对路径,便于其他模块统一获取数据。 */ declare function getDataPath(filename: string): string; export { availableLanguages, benfordFreq, cBToFreq, cBToZipf, digitFreq, freqToZipf, getDataDir, getDataPath, getFrequencyDict, getFrequencyList, hasDigitSequence, iterWordlist, lossyTokenize, randomAsciiWords, randomWords, simpleTokenize, smashNumbers, tokenize, topNList, wordFrequency, yearFreq, zipfFrequency, zipfToFreq };