gpt4 book ai didi

unicode - 我如何计算 Go-lang 中的日语单词

转载 作者:IT王子 更新时间:2023-10-29 01:21:35 27 4
gpt4 key购买 nike

通过 Go-Tour,它给人的印象是开箱即用地支持 Unicode。

计算不使用标准分隔符(如日语和中文中的空格)的单词在其他编程语言(php)中一直很痛苦,因此,很想知道是否可以计算用日语编写的单词(例如:片假名)使用 Go 编程语言。

如果是,怎么办?

最佳答案

答案是是的。 “可以使用 Go-programming language 来计算用日语写的单词(例如:片假名)。”但首先你需要改进你的问题。

阅读您的短语“标准分隔符如空格”的人可能会认为字数统计是一种定义明确的操作。它不是,即使对于像英语这样的语言也是如此。在短语“testing 1 2 3 testing”中,字符串“1 2 3”代表一个词、三个词还是零个词? “测试123测试”的答案是否不同?短语“testing <mytag class="numbers"> 1 2 3 </mytag> testing”中有多少个单词?

有人可能还认为日语有一个“单词”的概念,类似于英语,但句法约定不同。这是不正确的——对于许多语言,如日语、书面汉语和泰语。

因此,您必须首先通过在拉丁文字文本中为英语等语言定义“单词”来改进您的问题。

您是否需要基于空格字符的简单词法定义?然后考虑使用 Unicode TR 29 Version 4.1.0 - Text Boundaries, Section 4 Word Boundaries .这根据正则表达式和 Unicode 字符属性定义了“单词边界”。国产化行业标准GMX-V, Word Boundaries section , 使用 TR 29。

一旦您有了定义,我相信您能够使用像 unicode 这样的 Go 包来实现它。和 text/scanner .我自己没有这样做过。快速查看官方包列表,现有包似乎没有 TR 29 实现。但是你的问题是问它是否“可能”,而不是“已经由官方包实现”。

接下来,对于日语:你想要“词”的简单词汇定义吗?如果是这样,Unicode TR 29 提供它。他们说,

For Thai, Lao, Khmer, Myanmar, and other scripts that do not typically use spaces between words, a good implementation should not depend on the default word boundary specification. It should use a more sophisticated mechanism, as is also required for line breaking. Ideographic scripts such as Japanese and Chinese are even more complex. Where Hangul text is written without spaces, the same applies. However, in the absence of a more sophisticated mechanism, the rules specified in this annex supply a well-defined default.

如果您想要在日语语境中对“单词”进行语言学上复杂的定义,那么您需要开始考虑@Jhilke Dai、Sergio Tulentsev 和其他贡献者提出的问题。您将需要设计您的“单词”规范。然后,您将需要实现它。我相信你不会在 2014 年 7 月的官方 Go 包中找到这样的实现。但是,我也相信,如果你能设计一个清晰的规范,那么在 Go 中实现它是“可能的”。

现在:这个回复有多少个字?你是如何计算它们的?

关于unicode - 我如何计算 Go-lang 中的日语单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24576659/

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