问题标签 [grapheme-cluster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1243 浏览

unicode - 在 Dart 中处理字素簇

据我所知,Dart 不支持字素集群,尽管有人说支持它:

在它实施之前,我有哪些用于迭代字素集群的选项?例如,如果我有这样的字符串:

并且在五个代码点系列表情符号之后有一个光标:

在此处输入图像描述

如何将光标向左移动一个用户感知的字符?

(在这种特殊情况下,我知道字素簇的大小,所以我可以做到,但我真正要问的是找到任意长的字素簇的长度。)

更新

我从这篇文章中看到 Swift 使用了系统的ICU库。在 Flutter 中可能会出现类似的情况。

补充代码

对于那些想玩我上面的例子的人,这里有一个演示项目。按钮将光标向右或向左移动。目前需要按 8 次按钮才能将光标移过家庭表情符号。

在此处输入图像描述

主要.dart

0 投票
1 回答
86 浏览

unicode - 规范化字符串会得到与规范化单个字素簇相同的结果吗?

对字符串执行 Unicode 规范化(假设没有孤立的组合字符)的结果是否与将字符串拆分为字素簇、分别规范化每个簇然后连接规范化的字素簇的结果相同?(如果是这样,这是否仅适用于规范化形式的子集?)

问这个主要是出于对 Unicode 如何工作的兴趣,并找出可能存在哪些潜在的边缘情况,而不是作为具体应用程序的一部分。

0 投票
1 回答
46 浏览

nlp - word2vec 可以处理数字序列吗?

我对网络嵌入非常陌生,尤其是对于属性网络嵌入。目前,我正在研究 node2vec 算法。我认为过程是

对于第二步,我看到该算法将每个节点都视为一个字符串。

但我的问题是我的网络节点是值。也许某些节点具有相同的值。我认为这种策略将采用与“一个”节点具有相同值的节点。

那么如果要嵌入这样的网络该怎么办呢?我的网络是一个属性图,每个节点都有 n 维属性。

非常感谢!

0 投票
1 回答
58 浏览

swift - 字符中的 == 是如何定义的?

我看到 "é" ( "\u{E9}", 1 个代码点) 和 "e" + 急性 ( "\u{65}\u{301}", 2 个代码点) 是相等的,这很棒。

for的文档继承自它的规则,并没有解释它的规则。另一方面,我环顾了附件#29,但运气不佳。Swift 是否实现了自己的逻辑?==CharacterEquatable

无论哪种情况,Swift 中的字符相等性是如何确定的?

0 投票
1 回答
434 浏览

flutter - 如何在 Dart 中将字符串索引转换为字符索引

如果我有这样的任意字符串:

而且我知道家庭表情符号(空格)之后的字符的字符串索引是28,我如何找到家庭表情符号的第一个代码单元的字符串索引?换句话说,我如何找到家庭表情符号的 UTF-16 代码单元的长度?

在此处输入图像描述

我之前也问过类似的问题,但那是在角色包出来之前。我可以做些什么来将字形簇索引映射到字符串索引?

我问的原因是我想通过 Flutter TextField 内的字形簇以编程方式退格。

0 投票
1 回答
44 浏览

crystal-lang - 如何在 Crystal 中迭代字素簇?

Unicode 标准将字素定义为“用户感知字符”的算法近似。字素簇或多或少对应于人们认为的文本中的单个“字符”。因此,能够将字符串作为字素簇的序列进行操作是编程中自然而重要的要求。

最好的通用字素簇定义是扩展字素簇;还有其他用于特定本地化用途的字素集群算法(定制的字素集群)。

String在 Crystal 中,我如何将 a作为一系列字素簇进行迭代(或以其他方式操作) ?

0 投票
1 回答
48 浏览

c++ - 字素簇中的最大代码点数

我正在使用 C++ ICU 库。我希望将一个 utf-8 字符串分成大致相等的块。但是,我希望在字素簇边界处划分块。我不希望将整个字符串转换为 utf-16 以实现内存和速度效率。相反,我想将靠近我估计的块边界的少量 utf-8 代码点转换为 utf-16。然后我可以使用 ICU 的BreakIterator来计算出确切的边界。

可以构成字素簇的代码点数量是否有硬性上限?如果是这样,它是什么?为了确定需要从 utf-8 转换为 utf-16 的最小代码点,我需要知道这一点。