Machine learning 创建自学习情感词典

Machine learning 创建自学习情感词典,machine-learning,nlp,artificial-intelligence,sentiment-analysis,Machine Learning,Nlp,Artificial Intelligence,Sentiment Analysis,我计划用他们的情感标签为情感词建立一本自学词典 我能够通过POS标签识别情绪词,但无法将这些词标记为积极、消极或中性 例如:“食物不好”是一个句子,我使用POS标签从这个句子中提取“不好”作为情感词。现在我想把它标记为负片,并将其添加到我的新词典中以备将来使用 我倾向于不使用任何预定义的词典/词库/任何预定义的情绪分析包来完成此项目/任务 我正在征求您的意见,以了解如何在不使用任何预定义词典或使用预定义词典的情况下为其添加标签。 目前,我已经探索了单词嵌入,跳过了n-gram模型。我还使用了一个

我计划用他们的情感标签为情感词建立一本自学词典

我能够通过POS标签识别情绪词,但无法将这些词标记为积极、消极或中性

例如:“食物不好”是一个句子,我使用POS标签从这个句子中提取“不好”作为情感词。现在我想把它标记为负片,并将其添加到我的新词典中以备将来使用

我倾向于不使用任何预定义的词典/词库/任何预定义的情绪分析包来完成此项目/任务

我正在征求您的意见,以了解如何在不使用任何预定义词典或使用预定义词典的情况下为其添加标签。

目前,我已经探索了单词嵌入,跳过了n-gram模型。我还使用了一个预定义的字典来训练模型,使用了一些监督学习模型,如Xgboost、KNN、朴素贝叶斯分类器。我使用了一些无监督的模型,比如k-mean,通过使用单词来预测标签。 仍然无法得到结果


如果您知道任何其他方法或输入,以应用于上述任何使用的模型,将单词标记为肯定、否定或中性,请提出建议。

好的,让我帮您提供基本建议,因为我在大学里也做过类似的事情。首先,你必须至少有几个单词(或短语)。你拥有的单词越多,你得到的结果就越不一样。为了帮助构建该功能,您的单词必须从大写字母和阅读引号中清除,然后用分隔符标记它,并用单词的种类(NN、PRO等)进行标记

为了标记单词或短语,如果单词或短语有肯定或否定或其他内容,您必须自己定义它。PythonNLTK是基于其单词类型的标记英语单词的最佳库,但您必须为其定义。因此,您可以将数据源的功能存储在如下阵列中:

    {"anarchy","VB","+"} 
where the format is
 {<word>,
<type_of_word>,
<sentiment_class>}
{“无政府状态”、“VB”、“+”}
格式在哪里
{,
,
}
如果你有另外一个词,只需对你的训练数据集进行分类,并将结果存储到你的数据集中。但是,如果分类词的准确性很高,这种技术将失败

但我注意到,对于一个有几种情绪的词要小心(从句子上下文来看,它看起来是积极的,但实际上有消极情绪,或者相反)。因此,最好的建议是,让你的模型在句子中标记单词的情感,而不是当单词独立时,而是它在句子中的位置。这是“无政府状态的人民”这类短语的特征示例(请注意,清理后,所有单词都转换为小大写)

{“无政府”、“VB”、“the”、“PP”、“peoples”、“NNP”、“0001”、“+”}
格式在哪里
{,
,
,
,
,
,
,
}
我建议你在做这件事之前阅读一些情绪分析


希望对您有所帮助

谢谢您的建议。如果我采用这种方法,那么你能告诉我你所说的准确性吗。这将有助于我开始这方面的工作。还有一件事我想知道,我是否应该清理文本。因为单词在清洗后会得到不同的词性标签。如果你清洗单词或者保持原样会有一些效果。你必须准确地分析“情绪”一词,正如预期的那样。但为了确保这一点,只需阅读一些关于情绪分析的研究,并从分类结果中搜索准确度度量
     {"anarchy","VB","the","PP","peoples","NNP","0,001","+"}

 where the format is 

{<word>,
<type_of_word>,
<word_before your word>,
<type_of_word_before>,
<word_after>,
<kind_of_word_after>,
<probability_of_word_presence>,
<sentiment_class>}