我试图只对字符串中有超过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]
然后,如果考虑到你的输入示例,你想要一个字符串,你可以对字符串使用Pythonjoin
操作:
' '.join([lemmatizer.lemmatize(w) if len(w)>4 else w for w in wd])