我已经使用NLTK来标记一个信号,但我现在想把这个信号重建成一个字符串。 我查看了文档,但看不到明显的扫描。这有可能吗?
tokens = [token.lower() for token in tokensCorrect]
答案 0 :(得分:1)
nltk没有提供这样的功能。在标记化过程中,空格被丢弃,因此没有办法准确地回到你的开始;空白可能包含换行符和多个空格,并且没有办法将它们取回。你能做的最好的事情就是将句子加入一个看起来像普通句子的字符串中。一个简单的" ".join(tokens)
会在所有标点之前和之后放置一个空格,看起来很奇怪:
>>> print(" ".join(tokens))
'This is a sentence .'
所以你需要在大多数标点符号之前删除空格,除了少数像(
和``
这样的 之后应该删除空格。即使这样,它有时也会猜测,因为撇号'
有时会在单词之间使用,有时在之前,有时之后。 ("Nuthin' doin', y'all!"
)祝你好运。
我的建议是保留你为其标记句子的原始字符串,然后再回过头来看。你没有显示你的句子来自何处,所以没有什么可说的了。