Machine learning 情绪分析的最佳预处理技术是什么。?

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

我试图将评论数据集分为两类,即a类和B类。我使用
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%。你需要在训练中考虑这个事实。您正在使用什么类型的功能?使用正确的功能集可以提高性能 在你的停止词列表中是否有负面含义的词(如“not”)?你确定这是关于预处理的,对我来说还可以吗?你用多少个词来构建你的输入向量,1个词向量,2个词向量,3?什么是数据集和标签?如果数据集是公开的,您是否将您的结果与其他尝试进行了比较?这是用于竞争的。数据集是公共的。我将用数据集的URL编辑问题。就最佳结果的准确性而言,我的结果大约少了2%。我认为这是关于预处理的。我已经运行了几乎所有的参数组合。!!现在我尝试了
WordNetLemmatizer
,我的准确率提高了1%。!!。我将再次尝试参数调整,并让您知道结果。!!在你的停止词列表中是否有负面含义的词(如“not”)?你确定这是关于预处理的,对我来说还可以吗?你用多少个词来构建你的输入向量,1个词向量,2个词向量,3?什么是数据集和标签?如果数据集是公开的,您是否将您的结果与其他尝试进行了比较?这是用于竞争的。数据集是公共的。我将用数据集的URL编辑问题。就最佳结果的准确性而言,我的结果大约少了2%。我认为这是关于预处理的。我已经运行了几乎所有的参数组合。!!现在我尝试了
WordNetLemmatizer
,我的准确率提高了1%。!!。我将再次尝试参数调整,并让您知道结果。!!是的,培训数据不平衡。我使用
LightGBM
进行分类。我将发布编辑中使用的参数。!!关于如何处理不平衡的任何建议。您可以尝试SMOTE或单边采样。是的,训练数据不平衡。我使用
LightGBM
进行分类。我将发布编辑中使用的参数。!!关于如何处理不平衡的任何建议。您可以尝试SMOTE或单边取样。