NLTK从标记重建句子

NLTK reconstruct sentence from tokens

我用NLTK标记了一个哨兵,但是现在我想把哨兵重建成一个字符串。我看过医生,但看不出有什么明显的原因。这有可能吗?

1
    tokens = [token.lower() for token in tokensCorrect]

NLTK不提供这样的功能。在标记化技术过程中,空白被丢弃了,因此无法准确地返回您开始使用的内容;空白可能包含换行符和多个空格,并且无法返回这些内容。你能做的最好的就是把句子连接成一个看起来像正常句子的字符串。一个简单的"".join(tokens)将在所有标点前后放置一个空格,这看起来很奇怪:

1
2
>>> print("".join(tokens))
'This is a sentence .'

所以你需要在大多数标点符号之前去掉空格,除了一些像(``这样的选项,它们应该在删除之后有空格。即使这样,有时也只是猜测,因为单引号'有时用于单词之间,有时用于单词之前,有时用于单词之后。("Nuthin' doin', y'all!"祝你好运。

我的建议是保留原来的字符串,从中你标记了句子,并回到那些。你不知道你的句子是从哪里来的,所以没什么好说的了。