以下代码报错SyntaxError: positional argument follows keyword argument 代码:from sklearn.model_selection import train_test_split df=raw_data.dropna(axis=0) df_binomial=df[(df['Review']==5)|(df['Rating']==1)] x=df_binomial['Review Text'] y=df_binomial['Rating'] transformer=CountVectorizer(analyzer=text_process,ngram_range(2,2),stop_words='english').fit(x) print(len(transformer.vocabulary_))
时间: 2024-03-17 15:44:48 浏览: 48
这个错误是因为在函数调用中,位置参数出现在关键字参数之后,Python不允许这种语法。在这个代码段中,CountVectorizer的analyzer参数是一个位置参数,而ngram_range和stop_words是关键字参数。你需要把analyzer参数改成关键字参数的形式,例如analyzer=text_process,然后放在ngram_range和stop_words之前。修改后的代码如下:
```python
from sklearn.model_selection import train_test_split
df = raw_data.dropna(axis=0)
df_binomial = df[(df['Review'] == 5) | (df['Rating'] == 1)]
x = df_binomial['Review Text']
y = df_binomial['Rating']
transformer = CountVectorizer(
analyzer=text_process,
ngram_range=(2, 2),
stop_words='english'
).fit(x)
print(len(transformer.vocabulary_))
```
相关问题
运行报错SyntaxError: positional argument follows keyword argument
这个错误通常是由于函数调用时,位置参数放在了关键字参数后面引起的。请检查一下你的代码,看看是否有这种情况的出现。在这段代码中,我没有看到这样的错误,但是你可以尝试将代码改为以下形式,避免这种错误的发生:
```
from sklearn.model_selection import train_test_split
df = raw_data.dropna(axis=0)
df_binomial = df[(df['Review']==5)|(df['Rating']==1)]
x = df_binomial['Review Text']
y = df_binomial['Rating']
transformer = CountVectorizer(analyzer=text_process, ngram_range=(2,2), stop_words='english').fit(x)
print(len(transformer.vocabulary_))
```
在这里,我将 `ngram_range` 参数改为了 `(2,2)` 的形式,使用了关键字参数的形式,这样就不会出现位置参数放在关键字参数后面的情况了。
SyntaxError: positional argument follows keyword argument报错怎么解决
这个错误通常是因为在函数调用时,位置放在了关键字参数之后。可以以下方法解决:
1. 将所有位置参数放在关键字参数之前。
2. 将关键字参数放位置参数之前。
例子,假设有一个函数(x, y, z),其中 x 和 y 是位置参数,z 是关键字参数。以下两种方式都是正确的:
```
add(1, 2, z=3) # 关键字参数在位置参数之后
add(x=1, y=2, z=3) # 关键字参数在位置参数之前
```
但以下方式会导致上述错误:
```
add(1, y=2, z=3, x=4) # x=4是位置参数,但放在了y=2之后
```
如果你遇到了这个错误,检查函数调用语句,确保所有的位置参数都在关键字参数之前,或者将关键字参数放在位置参数之前。
阅读全文