6

我正在尝试用从情绪中提取的正面/负面词来训练朴素贝叶斯分类器。例子:

我喜欢这部电影 :))

我讨厌下雨的时候:(

这个想法是我根据使用的情绪提取正面或负面的句子,但为了训练分类器并将其保存到数据库中。

问题是我有超过 100 万个这样的句子,所以如果我一个字一个字地训练它,数据库就会折腾。我想删除所有不相关的单词示例'I','this','when','it',这样我必须进行数据库查询的次数就会减少。

请帮助我解决这个问题,向我建议更好的方法

谢谢

4

3 回答 3

8

有两种常见的方法:

  1. 编制停止清单
  2. POS 标记句子并丢弃那些你认为不有趣的词性。

在这两种情况下,可以使用诸如PMI之类的度量来确定哪些单词/POS 标签是相关的。

请注意:信息检索中的标准停止列表可能会或可能不会在情绪分析中起作用。我最近读了一篇论文(没有参考,抱歉),它声称!和?,通常在搜索引擎中被删除,是情感分析的有价值的线索。(“我”也可以,尤其是当你也有一个中性类别时。)

编辑:您还可以安全地丢弃在训练集中仅出现一次的所有内容(所谓的hapax legomena)。出现一次的词对分类器的信息价值不大,但可能会占用大量空间。

于 2010-11-24T10:58:03.183 回答
0

为了减少从数据库中检索的数据量,您可以在数据库中创建一个字典——一个将单词*映射到数字**的表——然后只检索一个用于训练的数字向量和一个用于手动标记情绪的完整句子.

|* 我没有想到任何科学出版物,但也许只使用词干或引理而不是单词就足够了。它会减小字典的大小。

|** 如果这个操作杀死了你的数据库,你可以在本地应用程序中创建一个字典——它使用一个文本索引引擎(例如,apache lucene)——并且只将结果存储在你的数据库中。

于 2010-11-24T18:28:41.900 回答