问题描述
我正在使用 Spacy 模型,并希望仅使用起始句和专有名词将纯文本大写。
我正在使用下面的代码
nlp = spacy.load("en_core_news_lg")
doc = nlp(text)
output_text = ""
for sent in doc.sents:
for index,token in enumerate(sent):
token_text = token.text
if index == 0 or token.pos in (PROPN):
token_text = token_text.capitalize()
output_text += token_text + token.whitespace_
output_text = output_text.strip() + " "
现在错误如下 如果 index == 0 或 token.pos in (PROPN):
TypeError: argument of type 'univ_pos_t' is not iterable
是否可以仅将其用于专有名词?
解决方法
你需要使用
if index == 0 or token.pos_ == 'PROPN':
此行将检查 index
是否设置为 0
,或者当前令牌 POS 是否为 PROPN
。