Python Polyg中的UTF16代码单元

2024-09-28 23:30:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从字符串的开头提取UTF-16代码单元的数量,在这个字符串中位置名从Python sting开始。我正在使用Polyglot NER在Python字符串中标记一个位置。例如,“奥巴马出生在美国。“但我出生在阿拉巴马州”,将标记为“美国”和“阿拉巴马州”。Python Polyglot提取器只返回标记的位置,以及从前面开始的单词数。如何从单词出现的字符串开始计算UTF-16代码单元的数量?在

需要信息https://github.com/Berico-Technologies/CLAVIN/blob/master/src/main/java/com/bericotech/clavin/extractor/LocationOccurrence.java的Java接口


Tags: 字符串代码https标记githubcom信息数量
1条回答
网友
1楼 · 发布于 2024-09-28 23:30:29

只是想澄清一下@Ignacio Vazquez Abrams的一些评论。 在处理或分析文本时,您不必担心给定字符占用了多少字节。这就是为什么你要先把编码的文本“解码”成一个单独的text/str表示,从而把“编码”从等式中去掉。在

>>> encoded_text = 'hello world'.encode('utf16')
>>> encoded_text
b'\xff\xfeh\x00e\x00l\x00l\x00o\x00 \x00w\x00o\x00r\x00l\x00d\x00'
>>> type(encoded_text)
<class 'bytes'>
>>> len(encoded_text)
24


>>> decoded_text = encoded_text.decode('utf16')
>>> decoded_text
'hello world'
>>> type(decoded_text)
<class 'str'>
>>>
>>> len(decoded_text)
11

我确实在你发布的java代码中看到了UTF-16 code units。。。在

您可以这样做,从一开始就得到字节数:

^{pr2}$

但目前还不清楚UTF-16代码单元是否==字节。我有一种感觉,它真的只想要从一开始的字符数。如果您只需要这些,可以使用str对象的.index()方法:

^{3}$

相关问题 更多 >