Nlp 如何从空间标记重建原始文本,即使在有复杂空格和标点符号的情况下也是如此

Nlp 如何从空间标记重建原始文本,即使在有复杂空格和标点符号的情况下也是如此,nlp,spacy,Nlp,Spacy,''.join(token_list)不会在一行中有多个空格和标点的情况下重建原始文本 例如: from spacy.tokenizer import Tokenizer from spacy.lang.en import English nlp = English() # Create a blank Tokenizer with just the English vocab tokenizerSpaCy = Tokenizer(nlp.vocab) context_text = 'thi

''.join(token_list)不会在一行中有多个空格和标点的情况下重建原始文本

例如:

from spacy.tokenizer import Tokenizer
from spacy.lang.en import English

nlp = English()
# Create a blank Tokenizer with just the English vocab
tokenizerSpaCy = Tokenizer(nlp.vocab)

context_text = 'this    is a     test \n \n \t\t test for    \n testing  -  ./l \t'

contextSpaCyToksSpaCyObj = tokenizerSpaCy(context_text)
spaCy_toks = [i.text for i in contextSpaCyToksSpaCyObj]

reconstruct = ' '.join(spaCy_toks)
reconstruct == context_text

>False 
是否有一种从空间标记重建原始文本的既定方法

确定的答案应与此边缘案例文本一起使用(您可以通过单击“改进此问题”按钮直接获取来源)


“美国国务院非机密案件编号F-2014-20439文件编号C05795279日期:2016年7月1日\n\n\n第B5部分发布,B6\n\n\n\n\n从:H\n发送日期:2012年7月23日星期一上午7:26到:'millscd@state.gov'\nCc:'DanielJJ@state.gov.; 'hanleymr@state.gov“\n主题:Re:S今早的演讲\n\n\n\n正在等待听Monica是否能在8点过来接Josh。如果我没有她的消息,你能把B5\n发送给其他人吗?\n\n原始消息----\n来自:米尔斯,谢丽尔D[MillsCD@state.gov]\nSent:2012年7月23日星期一上午7:23\nTo:H\nCc:Daniel,Joshua J\n对象:FW:S今早的演讲\n\n见下面\n\n B5\n\ncdm\n\n原始消息\n来自:沙阿,拉吉夫(AID/A)B6\n收件人:2012年7月23日星期一上午7:19 \n收件人:米尔斯,谢丽尔D\nCc:Daniel,Joshua.\n收件人:S今天上午的讲话\n\n我是谢丽尔,\n\n我期待着参加今天上午的演讲。\n\n我有一个最后一分钟的请求-我知道在最终版本中没有提到儿童生存呼吁行动,但他们提到的是计划生育工作。您和josh能否尝试确保对行动呼吁有一些具体的参考?\n\n同样,在致谢方面,最好注意到friedan的领导,因为每个人都对我们的ghi转移非常敏感,我们希望继续向美国国际开发署pepfar cdc发出共同工作的公开信息。我不知道他是否在那里,但想打旗子。\n\n请转发。\n\nRaj\n\n\n\n\n\n美国国务院非机密案件编号F-2014-20439文件编号C05795279日期:2016年7月1日\n\x0c“

您可以通过更改代码中的两行来轻松完成此任务:

spaCy_toks = [i.text + i.whitespace_ for i in contextSpaCyToksSpaCyObj]
reconstruct = ''.join(spaCy_toks)
基本上,spaCy中的每个标记都知道它后面是否有空格。因此,您可以调用
标记.whitespace,而不是默认情况下在空格上连接它们