我想使用有监督的机器学习算法,根据句子中是否存在单词来预测一组句子的二元函数(真或假)。
理想情况下,我希望避免硬编码用于决定输出的单词集,以便算法自动学习哪些单词(一起?)最有可能触发特定输出。
http://shop.oreilly.com/product/9780596529321.do(编程集体智慧)在第4章中有一个很好的部分,名为“从点击学习”,它描述了如何通过在神经网络中使用1层hiden节点来实现这一点,每个节点都有一个新的隐藏节点输入词的新组合。
类似地,可以为训练数据集中的每个单词创建一个特征,并使用这些特征训练几乎任何经典的机器学习算法。添加新的训练数据将生成新功能,这将需要我从头开始重新训练算法。
这让我想到了我的问题:
答案 0 :(得分:2)
如果您想查找通常一起找到的单词,您可以查看主题建模的一般区域。
最简单的方法是使用潜在语义分析(http://en.wikipedia.org/wiki/Latent_semantic_analysis),这只是将SVD应用于术语文档矩阵。然后,您需要进行一些额外的事后分析,以使其符合您的特定结果。
更复杂,更复杂的方法是使用潜在的dirichlet分配(http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation)
只要你想重新培训,只需添加新功能(单词)即可。您还可以使用TF / IDF在表示矩阵时为该特定单词赋值(而不仅仅是1或0)。
我不知道您正在尝试使用哪种编程语言,但我知道Java中有库,Pythont会执行上述所有操作。