Spacy nl 没有正确地大写句子

Spacy nl is not capitalizing the sentence correctly

我正在使用 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() + " "

现在错误如下 如果索引 == 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.