Python 用于词形还原的字符串的列表理解中的语法错误

Python syntax error in list comprehension on string for Lemmatization

我试图只对字符串中超过 4 个字母的单词执行词形还原。以下代码的预期输出应该是 'us american',但我收到无效的语法错误。

import nltk
from nltk.tokenize import TweetTokenizer
lemmatizer = nltk.stem.WordNetLemmatizer()
w_tokenizer = TweetTokenizer()    

wd = w_tokenizer.tokenize(('us americans'))
    [lemmatizer.lemmatize(w) for w in wd if len(w)>4 else wd for wd in w]

你可以试试这个列表理解:

[lemmatizer.lemmatize(w) if len(w)>4 else w for w in wd]

然后,如果考虑到您的输入样本,您想要单个字符串,您可以对字符串使用 Python join 操作:

' '.join([lemmatizer.lemmatize(w) if len(w)>4 else w for w in wd])