Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当我编译时,我得到了一个错误_Python_Python 3.x_Typeerror - Fatal编程技术网

Python 当我编译时,我得到了一个错误

Python 当我编译时,我得到了一个错误,python,python-3.x,typeerror,Python,Python 3.x,Typeerror,当我编译的时候,我得到了一个错误 import pickle as pickle` from nltk.stem.wordnet import WordNetLemmatizer import nltk import sys def tokenize(text): lmtzr = WordNetLemmatizer() tokens = nltk.word_tokenize(text) l = [] for t in tokens: try: t = float(t)

当我编译的时候,我得到了一个错误

import pickle as pickle`
from nltk.stem.wordnet import WordNetLemmatizer
import nltk
import sys

def tokenize(text):
lmtzr = WordNetLemmatizer()
tokens = nltk.word_tokenize(text)
l = []
for t in tokens:
    try:
        t = float(t)
        l.append("<NUM>")
    except ValueError:
        l.append(lmtzr.lemmatize(t))
return l


def predict(headline):
    try:
        f = open('trained_model')
        clf = pickle.load(f)
        f = open('vectorizer')
        vectorizer = pickle.load(f)
        return clf.predict_proba(vectorizer.transform(headline))[0][1]
    except IOError:
    print("Model not present, run train.py first")


if __name__ == "__main__":
    print ("headline is ") + str(int(predict([sys.argv[1]])*100)) + ("% likely to be clickbait")
将pickle作为pickle导入`
从nltk.stem.wordnet导入WordNetLemmatizer
导入nltk
导入系统
def标记化(文本):
lmtzr=WordNetLemmatizer()
tokens=nltk.word\u标记化(文本)
l=[]
对于t in代币:
尝试:
t=浮动(t)
l、 附加(“”)
除值错误外:
l、 附加(lmtzr.柠檬化(t))
返回l
def预测(标题):
尝试:
f=开放式(“训练型”)
clf=酸洗负荷(f)
f=打开(“矢量器”)
矢量器=pickle.load(f)
返回clf.predict_proba(矢量器.transform(headline))[0][1]
除IOError外:
打印(“型号不存在,先运行train.py”)
如果名称=“\uuuuu main\uuuuuuuu”:
打印(“标题是”)+str(int(predict([sys.argv[1]])*100))+(%可能是点击诱饵)
我的输出是:

headline is 
Model not present, run train.py first
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-27-3095fd48c590> in <module>()
     29 
     30 if __name__ == "__main__":
---> 31     print ("headline is ") + str(int(predict([sys.argv[1]])*100)) + ("% likely to be clickbait")

TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
标题是
型号不存在,请先运行train.py
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
29
30如果名称=“\uuuuu main\uuuuuuuu”:
--->31号印刷体(“标题是”)+str(int(predict([sys.argv[1]])*100))+(%可能是点击诱饵)
TypeError:不支持*:“NoneType”和“int”的操作数类型

您在第一个字符串后关闭了围绕
print
参数的括号,因此它将
print
s该字符串,然后使用
print
返回的
None
尝试与其余输出连接。大概你想要:

print("headline is " + str(int(predict([sys.argv[1]])*100)) + "% likely to be clickbait")

除了删除第一个字符串后的关闭参数和删除最后一个字符串前的打开参数外,这是相同的。

这不是编译错误,而是运行时错误。