在顺序标注项目(不包括“将字形簇计数为一个字符”)中,标签索引(起始和结束)与TypeScript/JavaScript中的索引相同,因此参考的是16位Unicode代码单元序列中的位置。这与Python不同,在Python中,字符串中的索引指的是Unicode码点序列中的位置。
以 text = "👨🏻🚒 firemen drive firetrucks"
为例。假设我们给单词 "firetrucks"
打标签:
- 在doccano中,这个词有
start, end = 22, 32
- 在Python中,这个词有
start, end = 19, 29
,即text[19:29] == "firetrucks"
有关此问题的更多解释,请参阅此 Better Programming article 。
如果在doccano和Python之间导入/导出序列标签时需要注意这一点。
如果这是预期的行为,那么值得记录一下。我可以添加一些代码片段,用于在Python中转换不同的表示形式。乐意提供帮助。
可能相关的议题:
- Offset calculation #1931
- How does doccano cut up his words and count characters? #1924
- Encoding not properly applied, leading to misaligned labels in importing pre-labelled data #1904
您的环境
- 操作系统:macOS Ventura 13.6
- 使用的Python版本:Python 3.8.18
- 当您安装doccano的时间:2023年10月6日
- 您是如何安装doccano的(Heroku按钮等):
docker pull doccano/doccano
...遵循README。
2条答案
按热度按时间vaj7vani1#
你好,@pdhall99!你还有那些用于转换的代码片段吗?我在将Python和TypeScript/JavaScript之间的索引进行转换时遇到了相同的问题。这个问题有两个方面。我们需要将一些预标签发送到Doccano,并需要能够将索引转换为TypeScript/JavaScript。此外,在Doccano之后,我们还有一些下游的Python任务,我们需要将它们转换回来。
gzszwxb42#
这些是代码片段:
https://gist.github.com/pdhall99/1267856c5e8528ce93827d0f938d9036
如果有任何问题,请告诉我。