【发布时间】:2020-07-17 21:40:39
【问题描述】:
对于我的一个附带项目,我正在尝试构建一个朴素贝叶斯模型,该模型可以根据标题检测一条新闻是否是假的。到目前为止,这是我的代码:
import numpy as np
import pandas as pd
import sklearn
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.feature_extraction.text import CountVectorizer
data = pd.read_csv("/Users/amanpuranik/Desktop/fake-news-detection/data.csv")
data = data[['Headline', "Label"]]
print(data)
x = data[["Headline"]]
y = data[["Label"]]
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.1, random_state=1)
tfidf_vectorizer=TfidfVectorizer(stop_words='english', max_df=0.7)
model = MultinomialNB()
model.fit(x_train, y_train)
当我运行它时,我收到一个错误,告诉我标题无法转换为浮点值。由于标题是由一堆单词组成的,我想知道我的下一步是什么,因为我不确定如何将单词转换为浮点数。
【问题讨论】:
-
例如应该将单词转换成哪个浮点数?
-
我没有学足够的ML,但是据我所知,你必须将标题转换成一个数字列表,每个数字都有一定的含义,例如标题中的单词数,平均词长,特定词的使用次数,并将这些数字映射在 0 和 1 之间。如果我错了,请纠正我。
-
看来您需要阅读有关自然语言处理 (NLP) 的更多信息,以了解为所需处理编码输入的各种方法,然后选择一种方法。对于 Stack Overflow 来说,这个问题太广泛了。
标签: python scikit-learn multinomial