Machine learning 情绪分析的最佳预处理技术是什么。?
我试图将评论数据集分为两类,即a类和B类。我使用Machine learning 情绪分析的最佳预处理技术是什么。?,machine-learning,nlp,sentiment-analysis,lightgbm,Machine Learning,Nlp,Sentiment Analysis,Lightgbm,我试图将评论数据集分为两类,即a类和B类。我使用LightGBM进行分类 我已经多次更改了分类器的参数,但我无法在结果中获得巨大的差异 我认为问题在于预处理步骤。我定义了一个如下所示的函数来处理预处理。我使用了词干分析并删除了停止词。我不知道我错过了什么。我试过LancasterStemmer和PorterStemmer stops = set(stopwords.words("english")) def cleanData(text, lowercase = False, remove_st
LightGBM
进行分类
我已经多次更改了分类器的参数,但我无法在结果中获得巨大的差异
我认为问题在于预处理步骤。我定义了一个如下所示的函数来处理预处理。我使用了词干分析
并删除了停止词
。我不知道我错过了什么。我试过LancasterStemmer
和PorterStemmer
stops = set(stopwords.words("english"))
def cleanData(text, lowercase = False, remove_stops = False, stemming = False, lemm = False):
txt = str(text)
txt = re.sub(r'[^A-Za-z0-9\s]',r'',txt)
txt = re.sub(r'\n',r' ',txt)
if lowercase:
txt = " ".join([w.lower() for w in txt.split()])
if remove_stops:
txt = " ".join([w for w in txt.split() if w not in stops])
if stemming:
st = PorterStemmer()
txt = " ".join([st.stem(w) for w in txt.split()])
if lemm:
wordnet_lemmatizer = WordNetLemmatizer()
txt = " ".join([wordnet_lemmatizer.lemmatize(w) for w in txt.split()])
return txt
是否还有更多的预处理步骤需要完成以获得更好的精度。
数据集的URL:
编辑:
我使用的参数如下所述
params = {'task': 'train',
'boosting_type': 'gbdt',
'objective': 'binary',
'metric': 'binary_logloss',
'learning_rate': 0.01,
'max_depth': 22,
'num_leaves': 78,
'feature_fraction': 0.1,
'bagging_fraction': 0.4,
'bagging_freq': 1}
我已经更改了
深度
和num_leaves
参数以及其他参数。但是精度有一定的局限性。 < P>有一些事情要考虑。首先,您的训练集不平衡-班级分布约为70%/30%。你需要在训练中考虑这个事实。您正在使用什么类型的功能?使用正确的功能集可以提高性能有一些事情要考虑。首先,您的训练集不平衡-班级分布约为70%/30%。你需要在训练中考虑这个事实。您正在使用什么类型的功能?使用正确的功能集可以提高性能 在你的停止词列表中是否有负面含义的词(如“not”)?你确定这是关于预处理的,对我来说还可以吗?你用多少个词来构建你的输入向量,1个词向量,2个词向量,3?什么是数据集和标签?如果数据集是公开的,您是否将您的结果与其他尝试进行了比较?这是用于竞争的。数据集是公共的。我将用数据集的URL编辑问题。就最佳结果的准确性而言,我的结果大约少了2%。我认为这是关于预处理的。我已经运行了几乎所有的参数组合。!!现在我尝试了WordNetLemmatizer
,我的准确率提高了1%。!!。我将再次尝试参数调整,并让您知道结果。!!在你的停止词列表中是否有负面含义的词(如“not”)?你确定这是关于预处理的,对我来说还可以吗?你用多少个词来构建你的输入向量,1个词向量,2个词向量,3?什么是数据集和标签?如果数据集是公开的,您是否将您的结果与其他尝试进行了比较?这是用于竞争的。数据集是公共的。我将用数据集的URL编辑问题。就最佳结果的准确性而言,我的结果大约少了2%。我认为这是关于预处理的。我已经运行了几乎所有的参数组合。!!现在我尝试了WordNetLemmatizer
,我的准确率提高了1%。!!。我将再次尝试参数调整,并让您知道结果。!!是的,培训数据不平衡。我使用LightGBM
进行分类。我将发布编辑中使用的参数。!!关于如何处理不平衡的任何建议。您可以尝试SMOTE或单边采样。是的,训练数据不平衡。我使用LightGBM
进行分类。我将发布编辑中使用的参数。!!关于如何处理不平衡的任何建议。您可以尝试SMOTE或单边取样。