Моя проблема заключается в следующем. У меня есть строка, содержащая несколько английских предложений. У меня также есть отдельный список аннотаций, которые были сделаны на этой строке, имеют видаПреобразование числа символов в число токенов
char_index_start | char_index_end | annotation
Таким образом, для каждой аннотации, слова (или слов), которые были аннотированными показаны, как и где они появляются в предложении через индекс символа, где начинается слово (ы), и индекс, где они заканчиваются. Если аннотация содержит несколько слов, то они смежны внутри предложения. Ниже приведен пример аннотации
230 | 240 | 2006 Civic
То, что я хочу сделать, это преобразовать индекс символа в лексемы индекса (т.е. подсчет жетонов вместо подсчета символов). Проблема в том, что я не могу придумать прямой способ сопоставления индексов символов с индексами токенов. Проблема в том, что токенизаторы игнорируют пробелы. Таким образом, токенизация строки и сопоставление их с символьными индексами, если предположить, что один символ пробела между каждым токеном не будет работать. Например, если бы где-то было двойное пространство, количество символов было бы неверным. Я предполагаю, что один из способов сделать это - сделать список смежных пробелов, которые встречаются между каждым символом без пробелов, а затем сопоставить их между токенами. Однако это создаст проблемы и потому, что токенизатор может разделять токены, у которых нет места между ними. Есть ли прямой способ сделать это? Или существующий код?
Является ли индекс символов байт, код, кодовая точка, графема или графем-кластер? Кроме того, какой набор символов имеет входной текст? – Deduplicator
Я не уверен, что означают эти термины, но каждому символу присваивается индекс поэтапной последовательной основе. то есть первый символ имеет индекс 1, второй - индекс 2 и т. д. Я также не уверен, что вы подразумеваете под «набором символов». Это utf-8, если это то, что вы имеете в виду. – user1893354
Проблема заключается в следующем: характер символа перегружен, и я пытался определить, какая возможная интерпретация применима к вашим входным данным и, в частности, соответствует ли она интерпретации python. Если это так, замечательно. Если это не так, вы должны пройти под абстракцией строки питона, что будет больно. – Deduplicator