[
](#varnam)瓦纳姆
Varnam是一个印度语言音译库。GoVarnam 是libvarnam的 Go 移植,其中有一些核心架构的变化。并非libvarnam的每个部分都被移植了。
它很稳定,可以每天作为输入法使用。在这里可以看到它的运行情况:https://varnam.subinsb.com/
通过IBus为Linux操作系统提供的输入法引擎在这里:https://github.com/varnamproject/govarnam-ibus
[
](#installation)安装
你需要在你的系统中安装GoVarnam库,以便任何应用程序使用Varnam。
- 下载一个最新的GoVarnam版本。
- 解压缩文件
- 打开终端,用这个命令进入解压后的文件夹。
cd
- 现在运行这个命令来安装GoVarnam。
sudo ./install.sh install
它将要求你输入密码,请输入密码。
- 安装完成
要检查安装是否成功,试试这个命令。
varnamcli -s ml enthaanu
如果安装成功,它应该给出马拉雅拉姆语的输出。
- 为了使Varnam提供更好的建议,你需要导入一些词。从这里下载一个
.vlf(Varnam Learnings File)文件[TODO LINK]。 - 导入它。
varnamcli -s ml -import file.vlf
现在,你可以安装IBus引擎来使用Varnam系统: https://github.com/varnamproject/govarnam-ibus
[
](#usage)使用方法
测试一下吧。
varnamcli -s ml namaskaaram
学习一个词。
varnamcli -s ml -learn കുന്നംകുളം
用一个特定的模式训练一个词。
varnamcli -s ml -train college കോളേജ്
[
](#learning-words-from-a-file)从文件中学习单词
你可以从任何文本文件中导入所有语言的单词。Varnam会把英语单词和非英语单词分开并进行相应的学习。
varnamcli -s ml -learn-from-file file.html
你可以下载HTML格式的新闻文章或维基百科网页,从其中学习单词。
[
](#development)开发
[
](#build)构建
这个资源库有3个东西。
- GoVarnam库
- GoVarnam命令行工具(CLI)
- 用于GoVarnam的Go绑定
GoVarnam是用Go语言编写的,但为了成为一个标准的库,可以与任何其他编程语言一起使用,我们把它编译成一个C库。这可以通过.NET来完成。
go build -buildmode "c-shared" -o libgovarnam.so
(以上操作的快捷方式是make library)
输出的libgovarnam.so 是一个共享库,可以在任何其他编程语言中动态链接。一些例子。
- GoVarnam的Go绑定。请参见本软件库中的govarnamgo文件夹。
- GoVarnam的Java绑定:正在进行中
等等,这意味着我们需要再写一个Go文件来与GoVarnam库对接 !这是因为我们要对接的是一个共享库而不是Go库。
[
](#files--folders)文件和文件夹
govarnam- 库文件main.go, c-shared*- 有助于使govarnam成为C共享库的文件govarnamgo- 该库的 Go 绑定。与其他Go项目一起使用cli- varnam的CLI工具。使用govarnamgo来连接该库。symbol-frequency-calculator- 用于填充VST文件中的weight列。
[
](#cli-command-line-utility)CLI(命令行工具)
这个命令行工具(CLI)是用Go语言编写的,使用govarnamgo来与库对接。
你需要单独构建CLI。
cd cli
# Show the path to libgovarnam.so
export LD_LIBRARY_PATH=$(realpath ../):$LD_LIBRARY_PATH
go build -o varnamcli .
[
](#hacking)黑客攻击
本节是直接上手的。GoVarnam如何工作的解释在底部。
- 克隆当然
- 做
go get - 你将需要一个
.vst文件。从schemes文件夹中获取发布。将其粘贴到schemes文件夹中。 - 做
make library来编译
当你对govarnam的源代码进行修改时,你将需要做make library ,以便对修改进行编译,然后用CLI进行测试。
你可以用.NET来运行测试(以确保没有损坏)。
make
[
](#govarnam-bts)GoVarnam BTS
阅读GoVarnam规范:https://docs.google.com/document/d/1l5cZAkly_-kl7UkfeGmObSam-niWCJo4wq-OvAEaDvQ/edit?usp=sharing
[
](#changes-from-libvarnam)来自libvarnam的变化
-
ml.vst已经被修改,在symbols表中增加了一个新的weight列。在这里获得新的ml.vst。权重最小的符号有更大的意义。这是根据语料库中的受欢迎程度来计算的。你可以通过一个Python脚本将权重值填充到ml.vst。参见子文件夹中的内容。之前的Ruby脚本是用来制作VST的。来自libvarnam的ml.vst,与govarnam不兼容。 -
patterns_content在GoVarnam中被重命名为patterns。 -
patterns学习数据库中的表不会存储马拉雅拉姆语模式。相反,对于每个输入,所有可能的马拉雅拉姆语都被计算出来(从symbolsVARNAM_MATCH_ALL),并在words。这些将作为建议返回。以前,pattern会将每个模式存储为一个词。 english => malayalam. -
govarnam中的
patterns,只用于英语单词。Computer => കമ്പ്യൂട്ടർ。这些英语单词在我们的VST标记器中无法使用,因为这些单词在我们的语言中并不是真正可翻译的。这将是kambyoottar => Computer
[
](#miscellaneous)杂项
在没有SQLite的情况下进行构建。
go build -tags libsqlite3 -buildmode=c-shared -o libgovarnam.so
[
](#release-process)发布过程
- git标签
- make build release
打包ibus引擎。
- make build-ubuntu18 release