Ste*_*ano 5 unicode nlp r linguistics character-encoding
我正在尝试使用变音符号来获取字符串中的字符数,但我无法设法获得正确的结果。
> x <- "n?ala"
> nchar(x)
[1] 5
Run Code Online (Sandbox Code Playgroud)
我想得到的是4,因为n?应该将其视为一个字符(即变音符号不应被单独视为字符,即使在基本字符上堆叠了多个变音符号也是如此)。
我如何获得这种结果?
这是我的解决方案。这个想法是拼音字母可以有一个 unicode 表示,然后:
\n\n使用Unicode包;它提供的功能Unicode_alphabetic_tokenizer是:
\n\n\n标记化首先将 x 的元素替换为其 Unicode\n 字符序列。然后,将非字母字符(即不具有字母属性的字符)替换为空格,并根据空格分割相应的字符串。
\n
在此之后,我使用了nchar但因为将其拆分为前一个函数的两个子字符串,所以我使用了sum.
sum(nchar(Unicode_alphabetic_tokenizer(x)))\n[1] 4\nRun Code Online (Sandbox Code Playgroud)\n\n我相信这个包在这种情况下非常有用,但我不是专家,我不知道我的解决方案是否适用于所有涉及拼音字母的问题。也许其他例子可能有助于说明我的解决方案的有效性。
\n\n这是另一个例子:
\n\n> x <- "e\xcc\xaf \xca\x8a\xcc\xaf"\n> x\n[1] "e\xcc\xaf \xca\x8a\xcc\xaf"\n> nchar(x)\n[1] 5\n> sum(nchar(Unicode_alphabetic_tokenizer(x)))\n[1] 2\nRun Code Online (Sandbox Code Playgroud)\n\nps\n代码中只有一个",复制粘贴后出现第二个。我不知道为什么会发生这种情况。