在对文本字符串进行标记时,我需要提取标记词的索引。例如,给定:
"Mary didn't kiss John"
我需要类似的东西:
[(Mary, 0), (did, 5), (n't, 8), (kiss, 12), (John, 17)]
其中 0、5、8、12 和 17 对应于令牌开始的索引(在原始字符串中)。我不能只依赖空格,因为有些单词会变成 2 个标记。此外,我不能只在字符串中搜索标记,因为这个词可能会出现多次。
一个巨大的障碍是我正在使用“脏”文本。这是语料库中的一个真实示例及其标记化:
细绳:
The child some how builds a boaty c capable of getting scrtoacross the sea, even after findingovercoming many treachrous rous obsittalcles.
代币:
The, child, some, how, builds, a, boaty, , , c, , capable, of, getting, scrto, , across, the, sea, ,, even, after, finding, , , , , overcoming, many, treachrous, rous, obsittalcles, .
我目前正在使用 OpenNLP 对文本进行标记,但对于使用哪个 API 进行标记化感到矛盾。不过,它确实需要是 Java,所以(不幸的是)Python 的 NLTK 不在图片中。
任何想法将不胜感激!谢谢!