CJKV语言汉文库
cjklib的Python项目详细描述
内容
Introduction
cjklib提供与汉字相关的语言例程(基于字符 关于汉字汉字汉字的使用 中国人,日本人,很少是韩国人 越南语越南语功能包括字符 发音、部首、字形成分、笔划分解和变体 信息。
Dependencies
- Python2.4或更高版本(目前不支持python3)
- SQLite3+
- SQLAlchemy0.5+
- pysqlite2(已随python 2.5及更高版本提供)
另一种方法是将mysql作为后端:
Installing
Windows
使用提供的.exe安装程序安装cjklib。确保以上 满足依赖关系。
三个脚本cjknife.exe、buildcjkdb.exe和installcjkdict.exe 将添加到pythonScripts子目录中。确保此目录 包含在PATH环境变量中,用于从 命令行。
默认情况下不包括CJK词典。如果您想安装 它们从根目录运行以下(通过Internet连接) 源包的:
$ installcjkdict CEDICT
这将下载cedict,创建一个sqlite数据库文件并将其安装到 由APPDATA环境变量给定的目录,例如。 C:\windows\profiles\MY_USER\Application Data\cjklib。只是替换 CEDICT用于任何其他受支持的字典(即edict、cedict、handedict, cfdict,cedictgr)。
Unix
如果是从源包安装,则需要将库部署到 您的系统:
$ sudo python setup.py install
还要确保满足上述依赖关系。中日韩词典不是 默认情况下包括。如果要安装这些程序,请运行以下命令 (有互联网连接):
$ sudo installcjkdict CEDICT
这将下载cedict,创建一个sqlite数据库文件并将其安装到 /usr/local/share/cjklib。只要用CEDICT替换任何其他支持的 字典(即,法令、cedict、handedict、cfdict、cedicgr)。
Documentation & Usage
Documentation可在线获取。另请参见project page及其wiki。 有一个小的命令行工具cjknife,它提供了一些 功能。有关概述,请参见cjknife --help。
Examples
获取字符的笔划顺序:
>>> from cjklib import characterlookup >>> cjk = characterlookup.CharacterLookup('C') >>> cjk.getStrokeOrder(u'说') [u'㇔', u'㇊', u'㇔', u'㇒', u'㇑', u'㇕', u'㇐', u'㇓', u'㇟']
访问字典(此处使用Jim Breen的法令):
>>> from cjklib.dictionary import EDICT >>> d = EDICT() >>> d.getForTranslation('Tokyo') [EntryTuple(Headword=u'東京', Reading=u'とうきょう', Translation=u'/(n) Tokyo (current capital of Japan)/(P)/')]
Database
库的打包版本将附带预构建的sqlite数据库 文件。不过,您可以自己轻松地重建数据库。
首先下载最新的unihan文件:
$ wget ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip
然后开始生成过程:
$ sudo buildcjkdb -r build cjklibData
SQLite
默认情况下,sqlite对字符串操作没有unicode支持。任选地 可以在中编译ICU库以处理字母非ASCII字符。 如果缺少icu支持,cjklib可以注册自己的unicode函数。查询 使用LIKE将使用函数lower()。此兼容模式具有 对性能的负面影响,而且对于像 法令或CEDICT默认禁用。有关启用,请参见cjklib.conf。
MySQL
对于mysql 5,下面的CREATE命令使用^{tt18}创建一个数据库$ 作为使用常规Unicode排序规则的字符集 (5.5.3版本的MySQL将支持完整的Unicode给定字符集 utf8mb4和排序规则utf8mb4_bin):
CREATE DATABASE cjklib DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
您可能还需要设置访问权限(替换user_name和 host_name):
GRANT ALL ON cjklib.* TO 'user_name'@'host_name';
现在你更新cjklib.conf中的设置。
mysql<;5.5不支持完整的utf-8,并且使用最多3字节的版本,因此 无法对基本多语言平面(BMP)之外的字符进行编码。建筑物 因此,unihan数据库可能会导致警告,超过u+ffff的字符 根本不能建造。你需要禁用建立完整字符范围 通过在构建前将cjklib.conf中的wideBuild设置为False。 或者将--wideBuild=False传递给buildcjkdb。