【问题标题】:Sentiment Analysis using NLTK使用 NLTK 进行情绪分析
【发布时间】:2016-04-08 12:01:55
【问题描述】:
如果您要在 python 中使用 NLTK 对评论文本进行情感分析,您需要遵循哪些高级步骤。 NLTK 中有很多术语,例如词干提取、词性等等,但我想知道一种处理文本的高级方法。
【问题讨论】:
标签:
nlp
nltk
stanford-nlp
opennlp
【解决方案1】:
这里是进行情感分析的“标准”步骤(实际上只是文本分类的一种形式),这是我根据我的经验得出的观点,并不详尽,但它会给你一些流行语以及作为深入研究出发点的基本流程:
- 不知何故,您需要生成一些带标签的文本样本。这可以手动完成(例如,具有两列“LABEL”和“THE_TEXT”的电子表格。样本通常可以自动生成,具体取决于您的数据。通常每个类标签至少需要数百个样本。
- 您需要选择对您的数据有意义的“特征提取”或“特征工程”方法。一种简单的方法是使用“词袋”......意味着只需为训练 api 提供原始文本。通常,您很快就会发现这确实不够好,您将修补诸如词干提取、词形还原和 NGrams 之类的东西,以捕获更多上下文并在数据中获得更好的自然分组。如果您使用多语言语料库,这部分可能会变得非常复杂。
- 训练模型。我对 NLTK 不熟悉,但通常您会传入带有标签的文本样本,而特征提取通常是训练例程的一部分。在此步骤结束时,您将拥有一个文件形式的模型,您可以将其加载到分类器的实例中。
- 使用分类器(它使用您闪亮的新模型)对您的数据进行分类。这里的关键是,您必须使用与在分类时根据数据训练模型完全相同的特征提取技术,否则您会将苹果与橙子进行比较。
- 分类器可能会返回一个分布在您的任何类别(标签)上,并带有某种分数。然后,您可以随心所欲地使用这些数据。这可以是强大而令人兴奋的。
希望这会有所帮助...文本分类有很多细微差别,因此上述每个步骤都可以根据您的数据以及您试图从中获得的内容发生变化。
【解决方案2】:
要对评论文本(与此相关的任何文本)执行情感分析,我们需要首先提取特征。这取决于用户提取特征所需的级别。
实现这一目标的著名模型是 Bag of Words。
处理文本的高级有几个步骤。
-
标记化:这是一个将文章缩短或拆分成更小的形式的过程,可能是更小的段落或句子或单词或字母。
例如:你看起来很开心。 → [‘你’, ‘看’, ‘非常’, ‘高兴’]
-
停用词:对文章中的任何信息没有贡献的词称为停用词。这些主要是介词、冠词、连词等,
例如:书放在桌子上。停用词 = ['is', 'on', 'the']
-
词干:这是一个通过删除前缀和后缀将单词词根词根形式的过程。
例如:慢→慢
通过这些方法处理您的文本后,您可以很好地计算文本的情绪。尽管这些是处理文本的高级方法,但并非详尽无遗。
有许多可用资源可能会建议您在特征提取 NLP 中使用更多方法。