mecab-ko 0.4.1

mecab-ko 0.4.1

Jamie Birch 维护。



mecab-ko 0.4.1

  • 姓名和邮箱

mecab-ko

Mecab 的分支,支持日语和韩语,以 Cocoapod 和 npm 包的形式组织,适用于 iOS/macOS。

安装

从 Cocoapods 安装

在您的 Podfile 中指定此 pod

pod 'mecab-ko'
pod update

npm 作为 Cocoapod 安装 (用于 React Native iOS 应用)

添加此 npm 包

yarn add mecab-ko

# or:

npm install --save mecab-ko

接下来,在您的 Podfile 中指定此 pod

pod 'mecab-ko', :podspec => '../node_modules/mecab-ko/mecab-ko.podspec'

别忘了安装 pods。

cd ios
pod update

使用方式

将必要的 mecab_ko 头文件导入到您的类中。分配并初始化一个新的 Mecab 对象(指定是否使用日语或韩语字典 – 请参见本README文件底部的链接以获取这些字典 – 通过 DEFAULT_JAPANESE_RESOURCES_BUNDLE_NAMEDEFAULT_KOREAN_RESOURCES_BUNDLE_NAME 常量),然后通过 parseToNodeWithString 方法提供它一个字符串来解析。它将返回一个节点数组,您可以按需对其进行操作。

Swift 调用

桥接头

如果您的 Podfile 中启用了 use_frameworks!,则不需要包含桥接头。

如果您没有启用(因为您仅使用静态库),则将这些导入添加到您的桥接头中,以将 Obj-C 头文件暴露给 Swift 运行时

// LibMecabSample-macos-Bridging-Header.h
// Note how the module is `mecab-ko` in this Obj-C header but `mecab_ko` in Swift!
#import <mecab-ko/MecabObjC.h>
#import <mecab-ko/MecabNode.h>

Swift 文件

import mecab_ko // Omit this if you have `use_frameworks!` enabled in your Podfile.

// ...

let jpBundlePath = Bundle.main.path(forResource: DEFAULT_JAPANESE_RESOURCES_BUNDLE_NAME, ofType: "bundle")
let jpBundleResourcePath = Bundle.init(path: jpBundlePath!)!.resourcePath

let mecabJapanese: Mecab = Mecab.init(dicDirPath: jpBundleResourcePath!)
let japaneseNodes: [MecabNode]? = mecabJapanese.parseToNode(with: "すもももももももものうち")
japaneseNodes?.forEach({ node in print("[\(node.surface)] \(node.feature ?? "")") })

Obj-C 调用

// If use_frameworks! is on, you may have to write mecab_ko instead of mecab-ko.
// This is because Clang modules don't support hyphens:
// https://blog.cocoapods.org.cn/Pod-Authors-Guide-to-CocoaPods-Frameworks/
#import <mecab-ko/MecabObjC.h>
#import <mecab-ko/MecabNode.h>

// ...

NSString *jpDicBundlePath = [[NSBundle mainBundle] pathForResource:DEFAULT_JAPANESE_RESOURCES_BUNDLE_NAME ofType:@"bundle"];
NSString *jpDicBundleResourcePath = [[NSBundle alloc] initWithPath:jpDicBundlePath].resourcePath;

self.mecab = [[Mecab alloc] initWithDicDirPath:jpDicBundleResourcePath];
NSArray<MecabNode *> results = [mecab parseToNodeWithString:@"すもももももももものうち"];

这将给出以下结果

すもも: 名詞,一般,*,*,*,*,すもも,スモモ,スモモ  
も: 助詞,係助詞,*,*,*,*,も,モ,モ  
もも: 名詞,一般,*,*,*,*,もも,モモ,モモ  
も: 助詞,係助詞,*,*,*,*,も,モ,モ  
もも: 名詞,一般,*,*,*,*,もも,モモ,モモ  
の: 助詞,連体化,*,*,*,*,の,ノ,ノ  
うち: 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ

如果您计划使用此功能向用户展示结果,您可能需要编写大量的解析代码,将节点以有用的方式重新组合,因为节点将被分解成最可能的片段。

一些例子

想要的

欲し: 形容詞,自立,*,*,形容詞・イ段,ガル接続,欲しい,ホシ,ホシ  
がっ: 動詞,接尾,*,*,五段・ラ行,連用タ接続,がる,ガッ,ガッ  
て: 助詞,接続助詞,*,*,*,*,て,テ,テ  
い: 動詞,非自立,*,*,一段,連用形,いる,イ,イ  
た: 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ  

肯定通过了

通っ: 動詞,自立,*,*,五段・ラ行,連用タ接続,通る,トオッ,トーッ  
た: 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ  
ん: 名詞,非自立,一般,*,*,*,ん,ン,ン  
だろ: 助動詞,*,*,*,特殊・ダ,未然形,だ,ダロ,ダロ  
う: 助動詞,*,*,*,不変化型,基本形,う,ウ,ウ  
な: 助詞,終助詞,*,*,*,*,な,ナ,ナ  

保持光照

光らせ: 動詞,自立,*,*,一段,連用形,光らせる,ヒカラセ,ヒカラセ  
て: 助詞,接続助詞,*,*,*,*,て,テ,テ  
おく: 動詞,非自立,*,*,五段・カ行イ音便,基本形,おく,オク,オク  
よう: 名詞,非自立,助動詞語幹,*,*,*,よう,ヨウ,ヨー  
に: 助詞,副詞化,*,*,*,*,に,ニ,ニ  

许可证

mecab-ko 是免费软件;我只能在 Cocoapods mecab-ko.podspec 和 npm package.json 的元数据中指定一个许可证,所以我指定了 BSD 许可证,但它可以在 GPL、LGPL 和/或 BSD 许可证下使用;请尽管这样使用,尽管我的元数据有限制。

有关详细信息,请检查 mecab-ko/Assets 中的 COPYINGGPLLGPLBSD 文件。

参阅