gpt4 book ai didi

objective-c - 如何在中文和日文中使用 CFStringTokenizer?

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:45 24 4
gpt4 key购买 nike

我正在使用代码 here将文本拆分为单个单词,它适用于我尝试过的所有语言,但日语和中文除外。

有没有一种方法可以调整代码以正确标记日文和中文?文档说支持这些语言,但它似乎并没有在适当的地方打断单词。例如,当它标记“新しい”时,它在应该是一个的时候将它分成两个词“新し”和“い”(我不会说日语,所以我不知道这是否真的正确,但是样本我说那些都应该是一个词)。其他时候它会跳过单词。

我确实尝试创建中文和日文语言环境,同时使用 kCFStringTokenizerUnitWordBoundary。结果有所改善,但对于我正在做的事情(向词汇表单词添加超链接)来说仍然不够好。

我知道其他一些可用的分词器,但如果我能坚持使用核心基础,我宁愿避免使用它们。

[更新] 一段时间以来,我们最终将 mecab 与特定的日语用户词典结合使用,现在已经转移到仅在服务器端执行所有这些操作。它可能并不完美,但我们在所有平台上都有一致的结果。

最佳答案

如果你知道你正在解析一种特定的语言,你应该用正确的 CFLocale 创建你的 CFStringTokenzier(或者至少,从 CFStringTokenizerCopyBestStringLanguage) 并使用 kCFStringTokenizerUnitWordBoundary

不幸的是,中文和日文文本的完美分词仍然是一个悬而未决的复杂问题,因此您使用的任何分词库都会出现一些问题。对于日语,CFStringTokenizer 使用 MeCab内部图书馆和ICU's Boundary Analysis (仅当使用 kCFStringTokenizerUnitWordBoundary 时,这就是为什么在没有它的情况下使用“新しい”会很有趣)。

关于objective-c - 如何在中文和日文中使用 CFStringTokenizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8280824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com