【发布时间】:2015-09-13 15:43:56
【问题描述】:
我正在尝试确定我的 Python NLP 项目的方向,我非常感谢 SO 社区的任何建议。
问题:
假设我有 100 个 .txt 文件,其中包含决策机构举行的 100 次会议的记录。我还有 100 个相应会议结果的 .txt 文件,其中包含本机构通过的决议。结果分为七类之一 - 1 - 不采取行动,2 - 采取软行动,3 - 采取更强的行动,4 - 采取最强的行动,5 - 取消之前采取的软行动,6 - 取消之前采取的更强有力的行动,7 – 取消之前采取的最强行动。或者,这可以在 -3 到 +3 的范围内呈现,0 表示无动作,+1 表示软动作,-1 表示取消先前采取的软动作,依此类推。
根据输入的文本,我有兴趣预测这七种结果中的哪一种会发生。
我正在考虑将此视为一种情绪分析形式,因为采取某种行动的决定基本上是一种情绪。然而,我发现的所有情绪分析示例都集中在正面/负面二分法上,有时将中性情绪作为一个类别添加。我没有找到任何超过 3 种可能的结果分类的例子——不确定这是否是因为我没有找到正确的地方,因为无论出于何种原因,它都不是真正感兴趣的方法,还是因为这出于某种原因,我还不太确定这种方法是一个愚蠢的想法。
问题 1。 我应该将其作为情绪分析的一种形式,还是有其他更好的方法?我是否应该将其视为一种分类问题,类似于按主题对新闻文章进行分类并训练模型识别“主题”(结果)?
语料库:
我知道我需要为训练/测试数据建立一个语料库,看起来我有两个显而易见的选择:
1 – 为训练数据手动编码一个 CSV 文件,该文件将包含来自每个输入文本的一些关键短语,并以 7 分制列出相应结果的值,类似于此处所做的:http://help.sentiment140.com/for-students
2 – 使用 Pang 和 Lee 使用的方法 (http://www.cs.cornell.edu/people/pabo/movie-review-data/) 并根据结果将我的每个 .txt 输入文件放入七个文件夹之一,因为结果(采取了何种行动)是基于已知的历史数据。
第一个选项的缺点是它非常主观 - 我会确定我认为最重要的关键字/短语,我可能不一定是最好的仲裁者。第二种选择的缺点是它的预测能力可能较低,因为文本很长,包含许多无关的词/短语,并且通常在风格上相似(政策演讲倾向于使用政策词)。不过,我查看了 Pang 和 Lee 的数据,这似乎不是一个大问题,因为他们使用的评论在风格方面也没有太大差异。我倾向于 Pang 和 Lee 方法,但我不确定它是否适用于两种以上的结果。
问题 2。 我是否正确假设这是我构建语料库的两个一般选项?我错过了其他(更好的)选择吗?
问题 3。 鉴于以上所有情况,我应该使用哪个分类器?我认为最大熵效果最好。我也研究过随机森林,但我对后者没有经验,而且真的不知道我在做什么(至今)。
提前非常感谢你:)
【问题讨论】:
-
许多这样的答案将取决于任何 ML 解决方案的数据类型。您可以发布一些示例数据吗?您可能希望浏览实际文本一次,然后根据您可以手动编写功能代码。例如,我觉得会议讨论的长度可能是一个特点,没有任何行动可能比其他强有力的决定有更小的讨论。您绝对可以删除高频词并使用词袋功能。手动选择短语对我来说似乎不是一个好选择。此外,您可能想提及您拥有的数据量。
标签: python nlp scikit-learn