AzooKeyKanaKanjiConverter

AzooKeyKanaKanjiConverter 是为 azooKey 开发的假名汉字转换引擎。 通过几行代码,就可以将假名汉字转换功能嵌入到 iOS / macOS / visionOS 应用程序中。

此外,AzooKeyKanaKanjiConverter 还支持使用神经假名汉字转换系统“Zenzai”进行高精度转换。

运行环境

已确认在 iOS 14 及更高版本、macOS 11 及更高版本、visionOS 1 及更高版本、Ubuntu 22.04 及更高版本上可以运行。

关于 AzooKeyKanaKanjiConverter 的开发,请参阅开发指南

KanaKanjiConverterModule

负责假名汉字转换的模块。

安装

重要提示

AzooKeyKanaKanjiConverter 在 1.0 版本发布前作为开发版运行,因此可能会在次要版本的更改中进行破坏性更改。 建议在指定版本时,为了避免次要版本升级,像 .upToNextMinor(from: "0.8.0") 这样指定。

使用方法

// デフォルト辞書つきの変換モジュールをインポート
import KanaKanjiConverterModuleWithDefaultDictionary

// 変換器を初期化する
let converter = KanaKanjiConverter()
// 入力を初期化する
var c = ComposingText()
// 変換したい文章を追加する
c.insertAtCursorPosition("あずーきーはしんじだいのきーぼーどあぷりです", inputStyle: .direct)
// 変換のためのオプションを指定して、変換を要求
let results = converter.requestCandidates(c, options: .withDefaultDictionary(...))
// 結果の一番目を表示
print(results.mainResults.first!.text)  // azooKeyは新時代のキーボードアプリです

options: .withDefaultDictionary(...) 用于生成 ConvertRequestOptions,并指定转换请求所需的信息。 详细信息请参阅代码中的文档注释。

ConvertRequestOptions

ConvertRequestOptions 是转换请求所需的设置值。 例如,可以像下面这样设置。

let options = ConvertRequestOptions.withDefaultDictionary(
    // 日本語予測変換
    requireJapanesePrediction: true,
    // 英語予測変換 
    requireEnglishPrediction: false,
    // 入力言語 
    keyboardLanguage: .ja_JP,
    // 学習タイプ 
    learningType: .nothing, 
    // 学習データを保存するディレクトリのURL(書類フォルダを指定)
    memoryDirectoryURL: .documentsDirectory, 
    // ユーザ辞書データのあるディレクトリのURL(書類フォルダを指定)
    sharedContainerURL: .documentsDirectory, 
    // メタデータ
    metadata: .init(versionString: "You App Version X")
)

ComposingText

ComposingText 是用于管理输入并请求转换的 API。 可以使用它来适当地处理罗马字输入等。 详细信息请参阅文档

使用 Zenzai

要使用神经假名汉字转换系统“Zenzai”,请指定 ConvertRequestOptionszenzaiMode。 详细信息请参阅文档

let options = ConvertRequestOptions.withDefaultDictionary(
    // ...
    zenzaiMode: .on(weight: url, inferenceLimit: 10)
    // ...
)

词典数据

AzooKeyKanaKanjiConverter 的默认词典 azooKey_dictionary_storage 以子模块的形式指定。 过去版本的词典数据也可以从Google Drive 下载。

此外,如果格式如下,也可以使用自己准备的词典数据。 由于对自定义词典数据的支持有限,请在确认源代码后使用。

- Dictionary/
  - louds/
    - charId.chid
    - X.louds
    - X.loudschars2
    - X.loudstxt3
    - ...
  - p/
    - X.csv
  - cb/
    - 0.binary
    - 1.binary
    - ...
  - mm.binary

如果使用非默认的词典数据,请在目标的 dependencies 中添加以下内容。

.target(
  name: "MyPackage",
  dependencies: [
      .product(name: "KanaKanjiConverterModule", package: "AzooKeyKanaKanjiConverter")
  ],
),

使用时,需要明确指定词典数据的目录。

// デフォルト辞書を含まない変換モジュールを指定
import KanaKanjiConverterModule

let options = ConvertRequestOptions(
    // 日本語予測変換
    requireJapanesePrediction: true,
    // 英語予測変換 
    requireEnglishPrediction: false,
    // 入力言語 
    keyboardLanguage: .ja_JP,
    // 学習タイプ 
    learningType: .nothing, 
    // ここが必要
    // 辞書データのURL(先ほど追加した辞書リソースを指定)
    dictionaryResourceURL: Bundle.main.bundleURL.appending(path: "Dictionary", directoryHint: .isDirectory),
    // 学習データを保存するディレクトリのURL(書類フォルダを指定)
    memoryDirectoryURL: .documentsDirectory, 
    // ユーザ辞書データのあるディレクトリのURL(書類フォルダを指定)
    sharedContainerURL: .documentsDirectory, 
    // メタデータ
    metadata: .init(versionString: "You App Version X")
)

dictionaryResourceURL 选项也可以在 KanaKanjiConverterModuleWithDefaultDictionary 模块中使用,但由于不会使用捆绑包中包含的词典资源,因此应用程序大小会不必要地增大。 如果使用非默认的词典数据,请使用 KanaKanjiConverterModule

SwiftUtils

Swift 通常可以使用的实用程序模块。