Streamlit ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
Streamlit ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
我正在尝试让我的模型适合 Streamlit.io 应用程序,但我遇到了上述值错误。但它不会在 Jupyter Notebook 上给出相同的错误请任何更好的方法都会有很大帮助。
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
File "c:\users70p\anaconda3\lib\site-packages\streamlit\ScriptRunner.py", line 311, in _run_script exec(code, module.__dict__)
File "C:\Users70p\app2.py", line 122, in bow_transformer = CountVectorizer(analyzer=text_process).fit(messages['message'])
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1024, in fit self.fit_transform(raw_documents)
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1058, in fit_transform self.fixed_vocabulary_)
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 962, in _count_vocab analyze = self.build_analyzer()
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 339, in build_analyzer if self.analyzer == 'char':
File "c:\users70p\anaconda3\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__ self.__class__.__name__
在此处输入代码
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.metrics import classification_report
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.naive_bayes import MultinomialNB
bow_transformer =
CountVectorizer(analyzer=text_process).fit(messages['message'])
msg_train, msg_test, label_train, label_test =
train_test_split(messages['message'], messages['label'], test_size=0.2)
pipeline = Pipeline([
('bow', CountVectorizer(analyzer=text_process)), # strings to token
integer counts
('tfidf', TfidfTransformer()), # integer counts to weighted TF-IDF scores
('classifier', MultinomialNB()), # train on TF-IDF vectors w/ Naive Bayes
classifier
])
NB_Clasifier = pipeline.fit(msg_train,label_train)
一个重要线索是它在 Jupyter notebook 中有效,但在 Streamlit 中无效,这表明您的工作环境存在差异。
当未正确比较系列时,Pandas 会发出您看到的错误。有一个.
但是由于你的错误隐藏在 sklearn 中(而不是你自己的代码),你遇到的问题很可能可以通过将 Jupyter 中使用的 sklearn 版本与你在使用时安装的版本相匹配来解决Streamlit.
如果您将 post 更新为您在每种情况下使用的 Pandas、SKlearn 和 Python 的版本(Jupyter 和 Streamlit),它将更容易提供帮助你弄明白了。
它也可能有助于 post 将整个回溯(不仅仅是上半部分)作为纯文本而不是屏幕截图。
感谢您试用 Streamlit!
我正在尝试让我的模型适合 Streamlit.io 应用程序,但我遇到了上述值错误。但它不会在 Jupyter Notebook 上给出相同的错误请任何更好的方法都会有很大帮助。
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
File "c:\users70p\anaconda3\lib\site-packages\streamlit\ScriptRunner.py", line 311, in _run_script exec(code, module.__dict__)
File "C:\Users70p\app2.py", line 122, in bow_transformer = CountVectorizer(analyzer=text_process).fit(messages['message'])
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1024, in fit self.fit_transform(raw_documents)
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1058, in fit_transform self.fixed_vocabulary_)
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 962, in _count_vocab analyze = self.build_analyzer()
File "c:\users70p\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 339, in build_analyzer if self.analyzer == 'char':
File "c:\users70p\anaconda3\lib\site-packages\pandas\core\generic.py", line 1555, in __nonzero__ self.__class__.__name__
在此处输入代码
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.metrics import classification_report
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.naive_bayes import MultinomialNB
bow_transformer =
CountVectorizer(analyzer=text_process).fit(messages['message'])
msg_train, msg_test, label_train, label_test =
train_test_split(messages['message'], messages['label'], test_size=0.2)
pipeline = Pipeline([
('bow', CountVectorizer(analyzer=text_process)), # strings to token
integer counts
('tfidf', TfidfTransformer()), # integer counts to weighted TF-IDF scores
('classifier', MultinomialNB()), # train on TF-IDF vectors w/ Naive Bayes
classifier
])
NB_Clasifier = pipeline.fit(msg_train,label_train)
一个重要线索是它在 Jupyter notebook 中有效,但在 Streamlit 中无效,这表明您的工作环境存在差异。
当未正确比较系列时,Pandas 会发出您看到的错误。有一个
但是由于你的错误隐藏在 sklearn 中(而不是你自己的代码),你遇到的问题很可能可以通过将 Jupyter 中使用的 sklearn 版本与你在使用时安装的版本相匹配来解决Streamlit.
如果您将 post 更新为您在每种情况下使用的 Pandas、SKlearn 和 Python 的版本(Jupyter 和 Streamlit),它将更容易提供帮助你弄明白了。
它也可能有助于 post 将整个回溯(不仅仅是上半部分)作为纯文本而不是屏幕截图。
感谢您试用 Streamlit!