当前位置: 首页 > 软件库 > 程序开发 > 中文分词库 >

NChinese

处理中文字词的函数库
授权协议 MIT
开发语言 C/C++ C#
所属分类 程序开发、 中文分词库
软件类型 开源软件
地区 国产
投 递 者 陆昂然
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

NChinese 是一套用來處理中文字詞的函式庫,使用 C# 和 C 编写。目前具備的功能,主要是反查一串中文字的注音或拼音。

安裝

使用 Nuget 套件管理員來安裝,或執行下列命令:

Install-Package NChinese -Version 0.3.3
Install-Package NChinese.Imm -Version 0.3.3

簡介

NChinese 包含兩個套件:

  • NChinese - 包含內建中文注音詞庫與相關 API,例如反查一串中文字的注音字根。

  • NChinese.Imm - 此套件會用到 Windows 底層的 Imm.dll 與 IFELanguage COM API,所以只適用於 Windows 作業環境。

兩個套件都有提供反查注音字根的函式,但由於 NChinese.Imm 只能運行於 Windows 環境,故建議盡量使用 NChinese。

範例:反查注音字根

using NChinese;

// 取得一串中文字的注音字根
var zhuyinProvicer = new ZhuyinReverseConversionProvider();
string[] zhuyinArray = zhuyinProvicer.Convert("便宜又方便得不得了");

foreach (var s in zhuyinArray)
    Console.Write($"{s} ");

執行結果:

ㄆㄧㄢˊ "ㄧˊ ㄧㄡˋ ㄈㄤ ㄅㄧㄢˋ ㄉㄜ˙ ㄅㄨˋ ㄉㄜˊ ㄌㄧㄠˇ

中文詞庫與注音字根的資料,是以 libchewing 的檔案(tsi.src)為藍本,再經過工具加工之後所產生的。所以透過上述方法所取得的注音字根,在讀音方面比較符合台灣的發音習慣。

範例:反查拚音字根

如果要取得拼音字根,目前可以用的是 ImmPinyinReverseConversionProvider。此類別與上例的 ZhuyinReverseConversionProvider 都實作了  IReverseConversionProvider,故用法雷同。如下:

using NChinese.Imm;

// 取得一串中文字的拼音字根
var pinyinProvicer = new ImmPinyinReverseConversionProvider();
string[] pinyininArray = zhuyinProvicer.Convert("便宜又方便得不得了");

foreach (var s in zhuyinArray)
    Console.Write($"{s} ");

執行結果:

pián yi yòu fāng biàn de bù dé liǎo

如果仔細比較,就可以發現此範例所取得的拼音,和上一個範例所取得的注音,在讀音方面有小差異:「便宜」的「宜」,在拼音裡面是讀作輕聲,而注音則是二聲。

另外要注意的是,用來取得拼音字根的 ImmPinyinReverseConversionProvider 是隸屬於 NChinese.Imm 套件。此類別是利用 IFELanguage COM API 來取得注音字根,所以只能運行於 Windows 作業環境。

NChinese.Imm 套件裡面還有一個 ImmZhuyinReverseConversionProvider,用途跟 NChinese.ZhuyinReverseConversionProvider一樣是反查注音字根,但是它在內部實作上,其實是先用 ImmPinyinReverseConversionProvider 取得拼音字根,然後再使用 PinyinToZhuyin 類別來把拼音轉換成注音符號。

 相关资料
  • 本文向大家介绍python 中的divmod数字处理函数浅析,包括了python 中的divmod数字处理函数浅析的使用技巧和注意事项,需要的朋友参考一下 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: a,b可以为数字(包括复数) 版本: 在python2.3版本之前不允许处理复数,这个大家要注意一

  • NumPy 提供了许多字符串处理函数,它们被定义在用于处理字符串数组的 numpy.char 这个类中,这些函数的操作对象是 string_ 或者 unicode_ 字符串数组。如下表所示: NumPy处理字符串数组函数 函数名称 描述 add() 对两个数组相应位置的字符串做连接操作。 multiply()  返回多个字符串副本,比如将字符串“ hello”乘以3,则返回字符串“ hello h

  • 本文向大家介绍自编函数解决pathinfo()函数处理中文问题,包括了自编函数解决pathinfo()函数处理中文问题的使用技巧和注意事项,需要的朋友参考一下 今天写程序时遇到一个小问题,pathinfo在处理中文文件名时出现的问题,如果中文在字首就出现获取的filename为空,英文在字首后面是中文的则能获取到。如下图: 于是自己写了个函数代替,代码如下: 这样问题就解决了

  • 主要内容:函数定义函数是组织在一起执行特定任务的一组语句。 在批处理脚本中,采用类似的方法将逻辑语句组合在一起形成一个函数。 像其他语言一样,批处理脚本中的函数也遵循相同的程序规则 - 函数声明 - 它告诉编译器一个函数的名字,返回类型和参数。 函数定义 - 它提供了函数的实际主体。 函数定义 在批处理脚本中,通过使用标签语句来定义函数。 当一个函数被重新定义时,它可能会将一个或多个值作为函数的输入“参数”,并在函

  • 首先,这个函数是专门用于处理的,还是默认存在于java中? 当我在处理下面这行代码时, 它输出 那么,为什么浮动()函数对\n字符很好,但对p不起作用?它们不是都是字符吗?我知道\n是特殊的东西,但在这种情况下,它有区别吗? 编辑:我用“p”替换了“K”,因为答案中有一些警告。

  • 我正在构建一个文字处理器,并尝试实现文字包装功能。 给定一行中的最大字符数,后跟一个单词列表,我想返回一个字符串集合,其中每行包含尽可能多的由空格连接的单词。每个字符串的长度不应超过最大长度。 输出的每个字符串中的每个单词之间必须正好有一个空格 输入: 我的输出一直在打印所有的单词,而不是换行。 预期产出: