rime / home

Rime::Home is home to Rime users and developers

Home Page:https://rime.im

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[新人求助]爲簡繁體轉化提供例外項?

Spackup opened this issue · comments

在設置了默認繁體轉簡體輸出之後,可不可以讓部分的字繼續保持繁體?吳語裏面有“個”“個”兩個字需要區分,但是繁體轉簡體了之後便沒有辦法區分開了。有沒有辦法同時讓絕大部分的字照舊轉化成簡體,又讓一小部分的字保持繁體呢?

定制 opencc 词典文件,将「個」「箇」条目删除。再在配置中自定义 simplifier 来启用之。

opencc 词典文件可通过 TSCharacters.txt 修改获得,放入「程序目录/opencc」,与 TSChraraters.ocd 并列。

不会自定义 simplifier 的话也可略过,只将 t2s.json 里的 TSCharacters.ocd 改为 TSCharacters.txt,对应的 type 的值改为 text,以此更改生效的词典。如果单字成功而词组有问题,就对TSPhrases.txt 如法炮制。

未经测试,谨供参考。

非常感谢您的回复!

有两个问题还想请教:
一:我在将 t2s.json 里的 TSCharacters.ocd 改为 TSCharacters.txt后,打开文件出现乱码。

二:如果尝试第一种自定义simplifier的方法,是需要启用excluded_types一项吗?语法是否应为' excluded_types: [“個”“箇”]' ?

再次感谢您的耐心!

  1. .ocd 文件是 opencc 专用格式,不是纯文本,不要这样做。

  2. 这个选项文档语焉不详,看上去没有关系。

谢谢您的解答!

有一个问题还想请教您:我从 GitHub上下载的OpenCC-master文件里并没有可执行程序,怎样使用OpenCC定制里面的txt词库文件呢?

因为我以前从未接触过编程,网上对在windows系统中安装OpenCC的指南对我而言是生疏难懂,github界面里又到处都找不到使用指南,所以只能厚脸皮拿这些幼稚的问题请教您,还请谅解!

仅修改 .txt 格式词典文件 TSCharacters.txt 即可,不涉及 opencc 项目的其它文件或程序。甚至可以只下载这个文件,方法是点击进去之后右键点击 Raw 按钮,选择「从链接另存文件为…」或类似选项。保持文件名不变,仅修改内容。

包括记事本在内的所有文本编辑器,都可以修改这样的纯文本文件,但是此文件体积较大,记事本读取缓慢,且不能正确显示 unix 换行符,建议至少使用 Notepad++ 或 Notepad2 来做。

感谢您的回复!

我下载了TSCharacters.txt这个文件,并把其中的“個”“箇”删去,添加进了“个-个”的对应关系,后放进程序文件/data/opencc中。

刚才没有认真检查,但现时发现,不论在schema中的simplifier中写入opencc_config: TSCharacters.ocd或是opencc_config: TSCharacters.txt,输入法的繁转简功能全部都无效了,输出的还是繁体。是哪里代码错了呢?

schema 不要作改动。simplifier/opencc_config 的值应该是 .json 配置文件,该文件内容才是用来定义词典文件的,就像你修改的 t2s.json 文件。

感谢您这么晚还在跟进这个issue!但很抱歉还是出现了问题!

我是这样操作的:下载文件TSCharacters.txt,删除掉里面的“個”“箇”两个条目后放入「程序目录/data/opencc」中,然后打开 t2s.json ,将其中的 TSCharacters.ocd 改为 TSCharacters.txt,对应的 type 的值改为 text。但修改后输入法又不能输入简体了,不管单字还是词组。

我的t2s.json文件是这样的:

`{
"name": "Traditional Chinese to Simplified Chinese"
"segmentation": {

"type": "mmseg",

"dict": {

  "type": "ocd",

  "file": "TSPhrases.ocd"

}

},

"conversion_chain": [{

"dict": {

  "type": "group",

  "dicts": [{

    "type": "ocd",

    "file": "TSPhrases.ocd"

  }, {

    "type": "text",

    "file": "TSCharacters.txt"

  }]

}

}]

}`

代码没有正确呈现。可以点击评论框右下方 M↓ 按钮了解 Markdown 语法,很简单。代码块需包裹在两个以连续 3 个反引号开头的行中,可选择性地在其中第一行添加格式名称以应用对应的语法高亮。

```json

{
  "name": "Traditional Chinese to Simplified Chinese",
  "segmentation": {
    "type": "mmseg",
    "dict": {
      "type": "ocd",
      "file": "TSPhrases.ocd"
    }
  },
  "conversion_chain": [{
    "dict": {
      "type": "group",
      "dicts": [{
        "type": "ocd",
        "file": "TSPhrases.ocd"
      }, {
        "type": "text",
        "file": "TSCharacters.txt"
      }]
    }
  }]
}

```

不能确定 .json 内容有没有问题,但是词典文件更可能改错,我进行了实际测试,确认有效,可以试试我改的 TPCharacters.txt

如果是词典改错,注意原分隔符是水平制表符,不要改成空格,有的文本编辑器会自动转换为空格。

问题解决!真的万分感谢您!

我一开始没有正确理解您的方法,产生了一些奇怪的误解,真的没有想到您还能一直以这样的耐心和热心指导我,在这里深表谢意!

如果不介意的话,可否让我在schema介绍中写入您的用户名以表感激呢?

不用谢。不介意,请自便。