基于朴素贝叶斯算法的新闻提要分类器

newsFeedClassifierBayesianCS331的Python项目详细描述


新闻提要分类贝叶斯-cs331新闻提要分类贝叶斯-cs331工程
=============


=>又一个通用的朴素贝叶斯分类法。





``巨蟒"
假设你有一些新闻文本,并且知道它们的类别。
你想用这些预先分类/预先分类的文本来训练一个系统。因此,您最好将此数据称为您的培训集。
"
来自NaiveBayesClassifier的导入标记器
来自NaiveBayesClassifier的导入标记器。Trainer导入Trainer
来自NaiveBayesClassifier的导入标记器。分类器导入标记器

NewsTrainer=Trainer(标记器。标记器(stop_words=[],sign_to_remove=["?!%&;"])

ealth'},
{text':'叙利亚是主要问题,奥巴马说,''类别':'政治'},
{text':'吃东西减肥','类别':'健康'},
{text':'你不应该吃太多','类别':'健康'}


雨点数据,您几乎完成了,可以开始使用分类器了。
new分类器=分类器(newstrainer.data,tokenizer.tokenizer(stop_words=[],signs_to_remove=["?!%&;"])

按概率值排序的es打印分类比上面的例子需要更多的训练数据。实际上,像这个例子中这样的几行文字是不可能成为足够的训练集的。





相反,这里引用了一个最有说服力的解释。



>;贝叶斯分类刷新器:假设您有一组类
>;(例如类别)c:={c 1,…,cu n},以及一个文档d,包含单词d:={w1,…,wu k}。我们希望确定文档属于某个C类的概率
>;给定一组与文档和类相关的训练数据。
>;
>;根据贝叶斯定理,我们得到了
>;
>;p(c_j_d)=p(d_c_j)*p(c_j)/p(d)。
>;
>;lhs是文档所属的概率。对于C_j
>;类,考虑到文档本身(实际上是指本文档中出现的单词
>;频率),我们的程序将
>;计算每个j的该概率,并为本文档输出最可能的
>;类。
>;
>;p(c_j)称为"优先"概率,或t一般来说,文档属于C_J的概率
>,而不会先看到
>;文档。p(d c_u j)是看到这种
>;文档的概率,假设它属于c_j。这里,假设单词
>;独立地出现在文档中(这是"天真的"
>;假设),我们可以估计
>;
>>;p(d c_j)~=p(w c_j)**p(w k c_j)
>;
>;这里,通过假设
>;单词独立地出现在文档中(这是"天真的"
>;假设),我们可以估计
>;
>;p(p(w_i_c_j)是概率赛因g给定类的
>;文档中的给定单词。最后,p(d)只能被视为一个
>;比例因子,与分类无关,
>;除非您希望将结果分数标准化并实际看到
>;概率。在这种情况下,请注意,
>;
>;p(d)=和j(p(d c_j)*p(c_j))
>;
>;执行这些计算的一个实际问题是计算p(d c_j)时出现float64下溢的可能性,因为
>;单个单词的概率可以任意小,nd a
>;文档可以包含任意数量的文档。处理此情况的典型方法是将概率转换为
>;日志域并执行加法而不是乘法:
>;
>;log p(c_j d)~log(p(c_j))+sum_i(log p(w_i c_j))
>;
>;其中i=1,…,k。请注意,通过执行t他说,我们放弃了标度因子p(d),分数不再是概率;
>;但是,分数的单调关系由
>;log函数保持。

lpful:

*[昆虫示例][2]
*[斯坦福大学nlp-贝叶斯分类器][3]


改进
这个分类器使用一个非常简单的标记器,它是一个将句子拆分成单词的模块。如果你的训练集很大,你可以依赖可用的标记器,否则你需要一个更好的标记器专门用于你的训练文本的语言。

\references
[1]:https://github.com/jbrukh/bayesian/blob/master/bayesian.go
[2]:http://www.cs.ucr.edu/~eamonn/ce/bayesian%20classification%20with昆虫示例.pdf
[3]:http://nlp.stanford.edu/ir book/html/htmledition/naive-bayes-text-classification-1.html
[4]:https://github.com/muatik/naive-bayes-classifier

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
日期和现在之间的Java时间   java以适当的方式更新jLabel和jTextField   java如何从PQ(单链表)中删除最大值   java可以通过任何方式找出哪些NSF文件属于Domino服务器   java Velocity 2不会设置属性   如何使用java流迭代索引映射列表   maven依赖项在编译期间工作,但在java运行时失败。lang.NoClassDefFoundError&java。lang.ClassNotFoundException   java有没有办法完全隐藏Web应用程序代码?   Android appcompat v7 21库中的java FadingActionBar错误   Eclipse/com中的java AdMob。谷歌。安卓gms。ads.AdView   java My Service表示它正在运行,但其状态尚不清楚,似乎没有绑定   java无法启动Apache Tomcat Web应用程序容器   JDK:java中的命名约定。可丢弃的   Spring SerSecurity中的java身份验证错误   Maven:使用JDK8编译Java7   java在使用ExecutorService时如何管理内存?   comm.jar通信串行端口java   java LibGDX创建动画