Python 如何更改馈送到spacy的文本?

Python 如何更改馈送到spacy的文本?,python,spacy,Python,Spacy,假设我有一个句子 Hello my name is John name What is your name 我只想保留单词名称,并将其余的更改为-,但保留输入格式,以便最终结果如下所示: - - name - - name - - - name 我试着用 new_words = [token.text if token.text=="Name" else "-" for token in doc] Doc(doc.vocab, words=new_

假设我有一个句子

Hello my name is John name
 What is your name
我只想保留单词
名称
,并将其余的更改为
-
,但保留输入格式,以便最终结果如下所示:

- - name - - name
 - - - name
我试着用

new_words = [token.text if token.text=="Name" else "-" for token in doc]
Doc(doc.vocab, words=new_words)

但当我打印出我的文档时,它仍然是相同的文档,没有任何更改。

在上面的示例中,似乎有一个简单的缺失变量赋值:

new_words=[token.text if token.text==“Name”else“-”表示文档中的令牌]
doc=doc(doc.vocab,单词=新词)
如果要保留空白,请添加:

new_words=[token.text if token.text==“Name”else“-”表示文档中的令牌]
空格=[bool(token.whitespace_u2;)表示文档中的令牌]
doc=doc(doc.vocab,单词=新词,空格=空格)

上面的示例中似乎有一个简单的缺失变量赋值:

new_words=[token.text if token.text==“Name”else“-”表示文档中的令牌]
doc=doc(doc.vocab,单词=新词)
如果要保留空白,请添加:

new_words=[token.text if token.text==“Name”else“-”表示文档中的令牌]
空格=[bool(token.whitespace_u2;)表示文档中的令牌]
doc=doc(doc.vocab,单词=新词,空格=空格)

您可以使用正则表达式以不区分大小写的方式用连字符替换任何不等于
name
的非空白字符块:

重新导入
text=“”你好,我的名字是John name
你叫什么名字

print(re.sub(r’(?i)(?您可以使用正则表达式以不区分大小写的方式用连字符替换任何不等于
name
的非空白字符块:

重新导入
text=“”你好,我的名字是John name
你叫什么名字

print(re.sub(r'(?i)(?你的意思是要保留单词之间的空白?你的句子中只有字母数字单词吗?或者也可以是标点符号?试试正则表达式方法,
re.sub(r'\b(?name\b)\w+,“-”,text,flags=re.i)
我的意思是,即使在我可视化之后,也不会出现类似于段落/文本的空白。好吧,所以上面的方法不起作用吗?试试
re.sub(r'\S+',lambda x:x.group(),如果x.group().lower()=='name'else'-',text)
实际上,最快的似乎是
re.sub(r'(?I)(?你的意思是想保留单词之间的空白?你的句子中只有字母数字单词吗?或者也可以是标点符号吗?试试正则表达式方法,
re.sub(r'\b(?!name\b)\w+',“-”,text,flags=re.I)
我的意思是,即使在我可视化之后,也不会出现类似于段落/文本的空白。好吧,所以上面的方法不起作用吗?试试
re.sub(r'\S+',lambda x:x.group(),如果x.group().lower()=='name'else'-',text)
实际上,最快的似乎是
re.sub(r'(?I)(?嗯,我得到了我想要的半结果。但至少我得到了正确的方向。谢谢。我不仅想保留空格,而且想保留段落等文本格式。我得到了我想要的半结果。但至少我得到了正确的方向。谢谢。我不仅想保留空格,还想保留p等文本格式阿拉伯文字等