Я использую пакет SparkNLP для токенизации и фрагментации текста. Я делю фрагменты на основе одного или нескольких существительных, но мне трудно понять, как вернуть ie их к отдельным токенам, которым они соответствуют, если у меня есть каждый отдельный токен в строке. Например:
+----------------------------+----------------+---------+----+
| SENTENCE | SENT_ID| TOKEN| TOKEN_ID| POS|
+----------------------------+--------+-------+---------+----+
|The handle of razor blade...| 1| The| 1| DT|
|The handle of razor blade...| 1| handle| 2| NN|
|The handle of razor blade...| 1| of| 3| ADP|
|The handle of razor blade...| 1| razor| 4| NN|
|The handle of razor blade...| 1| blade| 5| NN|
Для фрагментирования я использую одно или несколько существительных в строке
chunker = Chunker().setInputCols(['sentence_raw','pos_raw']).setOutputCol('chunk_raw').setRegexParsers(['<NN.?>+'])
Но на выходе получается только одна строка, например
[handle, razor blade]
Как мне правильно присоединить это обратно к моей исходной таблице для формата, который я хочу выглядеть ниже:
+----------------------------+----------------+---------+----+------------+
| SENTENCE | SENT_ID| TOKEN| TOKEN_ID| POS| CHUNK|
+----------------------------+--------+-------+---------+----+------------+
|The handle of razor blade...| 1| The| 1| DT| null|
|The handle of razor blade...| 1| handle| 2| NN| handle|
|The handle of razor blade...| 1| of| 3| ADP| null|
|The handle of razor blade...| 1| razor| 4| NN| razor blade|
|The handle of razor blade...| 1| blade| 5| NN| razor blade|