#japanese #nlp #language

bin+lib chanoma

chanoma 是一个字符规范化库。文字列正規化処理用のライブラリです。

3 个版本

0.1.2 2022年5月12日
0.1.1 2022年3月30日
0.1.0 2022年3月29日

#1788 in 文本处理

MIT 许可协议

170KB
3K SLoC

chanoma

crates.io Documentation

chanoma 是一个字符规范化库。文字列正規化処理用のライブラリです。

使用方法

对于 CLI

chanoma -p ハンカクカナは全角カタカナに変換されます

对于 Rust

use chanoma::Chanoma;

fn main() {
    let chanoma = Chanoma::new();
    chanoma.use_preset();
    println!("{}", chanoma.normalize("ハンカクカナは全角カタカナに変換されます"));
}

安装

对于 CLI

cargo install --git https://github.com/booink/chanoma

对于 Rust

[dependencies]
chanoma = { version = "0.1.1", git = "https://github.com/booink/chanoma" }

配置文件

chanoma 可以通过配置文件调整结果。有两种方法可以加载配置文件。

  • 将配置文件的路径设置到环境变量 CHANOMARC
  • 将文件放置在以下路径之一。
    • $HOME/.config/chanoma/chanomarc.{ext}
    • $HOME/.config/chanoma/.chanomarc.{ext}
    • $HOME/chanomarc.{ext}
    • $HOME/.chanomarc.{ext}
    • $PWD/chanomarc.{ext}
    • $PWD/.chanomarc.{ext}

在上面的任何一种情况下,.{ext} 中指定的扩展名可以是 .csv, .yaml (.yml) 之一。

CSV 文件格式

CSV 文件中,只能设置单个字符的替换。在第一列中记录要替换的字符,在第二列中记录替换后的字符。

from,to
&,&

YAML 文件格式

YAML 文件中,可以指定单个字符的替换和 Modifier 两种方法。

单个字符的替换

在根键中记录 items,使用数组指定 from 键的值记录要替换的字符,to 键的值记录替换后的字符。

items:
  - from: "a"
    to: "A"

指定 Modifier

在根键中记录 modifiers,使用缩进来记录 Modifier 作为键。可指定的 Modifier 如下。

  • character_converter : 设置单个字符的替换。键记录要替换的字符,值记录替换后的字符。(与 items 的处理相同。)
  • character_eliminator : 删除指定的字符。
  • consecutive_character_reducer : 将指定的连续相同字符合并为一个。
  • dotted_space_eliminator : 删除除“半角英数字”和“半角英数字”之间的半角空格之外的半角空格。
  • ligature_translator : 将指定的合字合并为一个字符。
  • trim : 删除首尾的半角空格。
  • neologdn : 与 neologdn 相同的结果处理。
modifiers:
  character_converter:
    a: A
    b: B
  character_eliminator: ["~", , , , , ]
  consecutive_character_reducer: 
  dotted_space_eliminator:
  ligature_translator:
    ハ゜: 
  trim:
  neologdn:

依赖项

~8–17MB
~208K SLoC