gpt4 book ai didi

aspell - Hunspell/Aspell 数据转换为人类可读的屈折列表

转载 作者:行者123 更新时间:2023-12-02 03:44:45 27 4
gpt4 key购买 nike

有没有一种简单的方法可以从 Hunspell/Aspell 字典数据文件中生成人类可读的屈折列表?

例如,我想生成以下输出(针对不同的语言):

...

书,书

预订,预订,预订,预订

...

去,去,去,去,去

...

我查看了 Hunspell/Aspell 文档,但找不到可以执行此操作的 API 调用。

最佳答案

有一种命令行可以执行的方法,但它的输出格式与您要查找的格式不同。如果您愿意,您也可以手动执行此操作,只需使用正则表达式编写一些简单的脚本即可。

每组词缀的格式是

TYPE TAG REMOVE REPLACE MATCH

这样哪里 TAG匹配后面的内容 /在给定的词中 .dic文件,您可以执行以下操作(假设您已经删除了 /... 的单词):

if($word =~/$match$/) $word =~ s/$remove$/$replace/;

请注意 $那里匹配行尾/单词。用 ^ 调整如果是前缀。

有以下三个注意事项:
  • $match 直接来自 .aff文件几乎在所有情况下都等同于标准正则表达式。有一些细微的变化,例如如果匹配类似于 [abc-gh] ,你最好把它改成(a|b|c|-|g|h)[abcgh-] (hunspell 不使用连字符作为元字符)否则它会被解释为 [abcdefgh] (标准正则表达式)。对于否定字符类,您的选择是手动移动 -到表达式的末尾(例如 [^a-df][^adf-] 或使用否定的后视。
  • 如果 $replace 为 0,那么您应该将其更改为空字符串。
  • 如果您的结果以 /... 结尾,你需要重新处理它,因为它有一个双词缀。

  • 当心。根据我的粗略计算,我正在编写的字典可能有超过 5000 万个单词(如果超过 1 亿,我不会感到惊讶)。

    关于aspell - Hunspell/Aspell 数据转换为人类可读的屈折列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17831145/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com