gpt4 book ai didi

python - 将字符计数转换为标记计数

转载 作者:太空宇宙 更新时间:2023-11-03 18:26:29 25 4
gpt4 key购买 nike

我的问题如下。我有一个包含一些英语句子的字符串。我还有一个单独的注释列表,这些注释已在该字符串上进行,其形式为

char_index_start | char_index_end | annotation

因此,对于每个注释,都会通过单词开始的字符索引和结束的索引显示已注释的单词以及它们在句子中出现的位置。如果注释包含多个单词,那么它们在句子中是连续的。这是一个注释示例

230 | 240 | 2006 Civic

我想要做的是将字符索引转换为标记索引(即计算标记而不是计算字符)。问题是我无法想到将字符索引映射到标记索引的直接方法。问题在于分词器忽略空格。因此,通过假设每个标记之间有一个空格字符来标记字符串并将它们映射到字符索引是行不通的。例如,如果某处有双空格,则字符计数将不正确。我想一种方法是制作每个非空白字符之间出现的连续空白字符计数的列表,然后在标记之间映射它们。然而,这也会产生问题,因为分词器可以分隔它们之间没有任何空格的标记。有没有直接的方法可以做到这一点?或者现有的代码?

最佳答案

我设法通过以下方式得到解决方案。在我使用 nltk 标记器来标记我的字符串之前。问题是我无法检索它生成的标记的字符索引(也许这是可能的,但经过一段时间的研究,我仍然找不到方法)。因此,最终我决定创建自己的基于正则表达式的标记生成器,它也会为我提供标记的字符索引。给定一个字符串,可以通过以下方式找到其所有标记及其索引的列表

[(m.start(0), m.end(0),m.group()) for m in re.finditer("\w+|\$[\d\.]+|\S+",input_string)]

所以现在我只剩下一个标记及其字符索引列表以及一个注释及其字符索引列表,匹配它们非常简单。然后我留下了 token 级注释,这就是我想要的。

关于python - 将字符计数转换为标记计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088294/

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